nodestability
v1.4.0
Published
The NodeStability module is a powerful tool for enhancing the stability of Node.js applications. It actively prevents crashes by handling and logging various types of errors, providing a robust and reliable foundation for your Node.js projects. With featu
Downloads
28
Maintainers
Readme
NodeStability Module
The NodeStability module is designed to prevent crashes in your Node.js applications by handling and logging various types of errors. It provides an easy-to-use interface for setting up event listeners and integrating with webhooks for error reporting.
Features
- Crash Prevention: The module actively listens for unhandled rejections, uncaught exceptions, and multiple resolves, preventing your application from crashing.
- Webhook Integration: Receive error notifications via webhooks, making it easier to monitor and respond to issues.
- Customizable Options: Configure the module with options such as enabling/disabling crash prevention, specifying webhook details, and controlling error logging.
Installation
npm install nodestability
Usage
const NodeStability = require('nodestability');
// Initialize NodeStability with options
const options = {
enable: true,
withWebhook: true,
webhookURL: 'YOUR_WEBHOOK_URL',
webhookType: 'discord', // or 'selfHosted'
logErrors: true,
};
const nodeStability = new NodeStability(options);
Configuration Options
enable
(boolean): Enable or disable crash prevention.withWebhook
(boolean): Enable or disable webhook integration.webhookURL
(string): Specify the URL of the webhook for error notifications.webhookType
(string): Choose the webhook type (discord
orselfHosted
).logErrors
(boolean): Enable or disable logging errors to the console.
Examples
Below are examples demonstrating how to integrate the Anti-Crash module into a Node.js app and a Discord.js bot. These examples assume you have already installed the anti-crash
module.
Node.js Application Example:
// index.js
const NodeStability = require('nodestability');
// Initialize NodeStability with options
const options = {
enable: true,
withWebhook: true,
webhookURL: 'YOUR_WEBHOOK_URL',
webhookType: 'discord', // or 'selfHosted'
logErrors: true,
};
const nodeStability = new NodeStability(options);
// Simulate an unhandled rejection
setTimeout(() => {
Promise.reject(new Error('Simulated Unhandled Rejection'));
}, 2000);
// Simulate an uncaught exception
setTimeout(() => {
throw new Error('Simulated Uncaught Exception');
}, 4000);
Discord.js Bot Example:
// bot.js
const Discord = require('discord.js');
const NodeStability = require('nodestability');
const client = new Discord.Client();
const nodeStability = new NodeStability({
enable: true,
withWebhook: true,
webhookURL: 'YOUR_WEBHOOK_URL',
webhookType: 'discord',
logErrors: true,
});
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}`);
});
client.on('message', (message) => {
if (message.content.toLowerCase() === '!simulateError') {
// Simulate an unhandled rejection within a command
process.nextTick(() => {
Promise.reject(new Error('Simulated Unhandled Rejection in Command'));
});
}
});
// Log in to Discord
client.login('YOUR_BOT_TOKEN');
Replace 'YOUR_WEBHOOK_URL'
and 'YOUR_BOT_TOKEN'
with your actual webhook URL and Discord bot token, respectively.
Contributing
If you find a bug or have a feature request, please open an issue or submit a pull request. Contributions are welcome!
License
This project is licensed under the MIT License - see the LICENSE file for details.