Gomemextra is a Node.js utility for managing gosumemory processes and configurations. This package provides a clean API to interact with gosumemory, including process management, configuration handling, and data retrieval.
- Process Management: Launch and close gosumemory processes safely
- Configuration Management: Set and get server ports and update intervals
- Data Methods: Fetch real-time data from gosumemory service
- Error Handling: Comprehensive error handling and validation
- Logging Control: Configurable logging and error display
- Testing: Built-in test suite for validation
- Optimized: Minimal dependencies and performance optimizations
-
Install Gomemextra using npm:
npm install gomemextra
-
Run the installation script to download gosumemory.exe:
npm run install
-
Import gomemextra in your Node.js project:
const Gomemextra = require('gomemextra');
Run the test suite to verify everything is working correctly:
npm testCreate a new instance of gomemextra:
const gomemextra = new Gomemextra();
const gomemextra = new Gomemextra(logEnabled, errorEnabled);
// logEnabled (default: true): Set to false to disable logs.
// errorEnabled (default: true): Set to false to disable errors.// Launch gosumemory process
const launched = gomemextra.launch();
console.log('Process launched:', launched);// Check if process is running
const isRunning = gomemextra.isRunning();
console.log('Process running:', isRunning);
// Get process ID
const pid = gomemextra.getProcessId();
console.log('Process ID:', pid);// Close gosumemory process
const closed = gomemextra.close();
console.log('Process closed:', closed);// Get server IP address
const address = gomemextra.getAdress();
console.log('Server IP Address:', address);
// Get update value
const update = gomemextra.getUpdate();
console.log('Update Value:', update);// Set server port (returns true if successful)
const portSet = gomemextra.setPort(8080);
console.log('Port set successfully:', portSet);
// Set update value (returns true if successful)
const updateSet = gomemextra.setUpdate(5000);
console.log('Update interval set successfully:', updateSet);// Retrieve data from gosumemory service
try {
const data = await gomemextra.data();
console.log('Data from gosumemory:', data);
} catch (error) {
console.error('Error retrieving data:', error.message);
}
// With custom retry settings
try {
const data = await gomemextra.data(15, 2000); // 15 attempts, 2s delay
console.log('Data from gosumemory:', data);
} catch (error) {
console.error('Error retrieving data:', error.message);
}This version includes several optimizations:
- Reduced Dependencies: Removed unnecessary native modules from package.json
- Better Error Handling: Comprehensive error handling with proper validation
- Process Management: Improved process lifecycle management with status checking
- Performance Optimizations: Added timeouts, caching, and better resource management
- Code Quality: Added constants, better documentation, and cleaner code structure
- Testing: Built-in test suite for validation
new Gomemextra(logEnabled?, errorEnabled?)- Creates a new instance
launch()- Launches the gosumemory process (returns boolean)close()- Closes the gosumemory process (returns boolean)isRunning()- Checks if process is running (returns boolean)getProcessId()- Gets the process ID (returns number|undefined)
data(maxAttempts?, delayBetweenAttempts?) - Retrieves data from service (returns Promise)
Gosumemory Github for gosumemory project
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by Puparia