UNPKG

@fibercom/routeros-api

Version:

Robust MikroTik RouterOS API client for Node.js and TypeScript

35 lines 2.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RosException = void 0; const messages_1 = require("./messages"); /** * 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 = messages_1.default[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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9zRXhjZXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1Jvc0V4Y2VwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBa0M7QUFFbEM7OztHQUdHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsS0FBSztJQUdyQzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWEsRUFBRSxNQUE0QjtRQUNyRCxLQUFLLEVBQUUsQ0FBQztRQUVSLG1EQUFtRDtRQUNuRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVoRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksT0FBTyxHQUFHLGtCQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUIsSUFBSSxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7WUFDdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3RELE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxJQUFJLDJCQUEyQixLQUFLLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0NBQ0Y7QUEvQkQsb0NBK0JDIn0=