@fibercom/routeros-api
Version:
Robust MikroTik RouterOS API client for Node.js and TypeScript
35 lines • 2.48 kB
JavaScript
;
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=