@fibercom/routeros-api
Version:
Robust MikroTik RouterOS API client for Node.js and TypeScript
36 lines • 2.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RosException = void 0;
const messages_1 = require("./messages");
const messageTemplates = messages_1.default;
/**
* A custom exception class used for handling RouterOS-specific errors.
* Wraps error codes with human-readable messages and formatting support.
*/
class RosException extends Error {
/**
* Construct a RosException with a specific error code and optional context.
* Replaces placeholders in the error message using the extras provided.
*
* @param errno - The error code string (e.g., 'SOCKTMOUT', 'UNREGISTEREDTAG')
* @param extras - Optional values to interpolate into the error message.
*/
constructor(errno, extras) {
super();
// Maintains correct stack trace in V8 environments
Error.captureStackTrace(this, this.constructor);
this.name = this.constructor.name;
this.errno = errno;
let message = messageTemplates[errno];
if (message && extras) {
for (const key in extras) {
if (Object.prototype.hasOwnProperty.call(extras, key)) {
message = message.replace(`{{${key}}}`, extras[key]);
}
}
}
this.message = message || `Unknown RouterOS error: ${errno}`;
}
}
exports.RosException = RosException;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9zRXhjZXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Jvc0V4Y2VwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBa0M7QUFFbEMsTUFBTSxnQkFBZ0IsR0FBMkIsa0JBQVEsQ0FBQztBQUUxRDs7O0dBR0c7QUFDSCxNQUFhLFlBQWEsU0FBUSxLQUFLO0lBR3JDOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBYSxFQUFFLE1BQTRCO1FBQ3JELEtBQUssRUFBRSxDQUFDO1FBRVIsbURBQW1EO1FBQ25ELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsSUFBSSxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7WUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3RELE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxJQUFJLDJCQUEyQixLQUFLLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUEvQkQsb0NBK0JDIn0=