gomemextra
v1.2.2
Published
Manipulate Gosumemory
Readme
gomemextra
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.
Features
- Process Management: Launch and close gosumemory processes safely
- Configuration Management: Set and get server ports and update intervals
- Data Retrieval: 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
Installation
Install Gomemextra using npm:
npm install gomemextraRun the installation script to download gosumemory.exe:
npm run installImport gomemextra in your Node.js project:
const Gomemextra = require('gomemextra');
Testing
Run the test suite to verify everything is working correctly:
npm testUsage
Initializing Gomemextra
Create 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
// Launch gosumemory process
const launched = gomemextra.launch();
console.log('Process launched:', launched);Check Process Status
// 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
// Close gosumemory process
const closed = gomemextra.close();
console.log('Process closed:', closed);Getting server IP address and update value
// 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);Setting Server Port and Update Value
// 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);Retrieving Data from gosumemory service
// 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);
}Performance Improvements
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
API Reference
Constructor
new Gomemextra(logEnabled?, errorEnabled?)- Creates a new instance
Process Management
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)
Configuration
setPort(port)- Sets the server port (returns boolean)setUpdate(update)- Sets the update interval (returns boolean)getAdress()- Gets the server address (returns string|undefined)getUpdate()- Gets the update interval (returns number|undefined)
Data Retrieval
data(maxAttempts?, delayBetweenAttempts?)- Retrieves data from service (returns Promise)
Credits
Gosumemory Github for gosumemory project
Contributing
Contributions are welcome! If you find any issues or want to add new features, feel free to submit a pull request.
