routeros-api
Version:
Mikrotik Routerboard RouterOS API for NodeJS
54 lines • 2.74 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.RosApiMenu = void 0;
const RosApiCommands_1 = require("./RosApiCommands");
const RosApiModel_1 = require("./RosApiModel");
class RosApiMenu {
/**
* Creates a handler for the menus
* and creates Models
*
* @param rosApi The raw api
*/
constructor(rosApi) {
/**
* Toggles snake_case mode, defaults to camelCase
*/
this.snakeCase = false;
this.rosApi = rosApi;
}
/**
* Returns a set of operations to do over
* the menu provided
*
* @param path The menu you want to do actions
*/
menu(path) {
return new RosApiCommands_1.RosApiCommands(this.rosApi, path, this.snakeCase);
}
/**
* Instead of transforming the routeros properties
* to camelCase, transforms to snake_case
*/
useSnakeCase() {
this.snakeCase = true;
}
/**
* Creates a model of pre-made actions to do
* with an item from any menu that has lists
*
* @param item The item of a menu (Ex: a single firewall rule, or an IP address)
*/
model(item) {
if (Array.isArray(item)) {
const items = [];
for (const i of item) {
items.push(new RosApiModel_1.RosApiModel(this.rosApi, i, this.snakeCase));
}
return items;
}
return new RosApiModel_1.RosApiModel(this.rosApi, item, this.snakeCase);
}
}
exports.RosApiMenu = RosApiMenu;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9zQXBpTWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Sb3NBcGlNZW51LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRDtBQUNsRCwrQ0FBNEM7QUFHNUMsTUFBYSxVQUFVO0lBWW5COzs7OztPQUtHO0lBQ0gsWUFBWSxNQUFtQjtRQVgvQjs7V0FFRztRQUNLLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFTL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksSUFBSSxDQUFDLElBQVk7UUFDcEIsT0FBTyxJQUFJLCtCQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZO1FBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLElBQVM7UUFDbEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sS0FBSyxHQUFrQixFQUFFLENBQUM7WUFDaEMsS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUU7Z0JBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSx5QkFBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2FBQy9EO1lBQ0QsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNKO0FBeERELGdDQXdEQyJ9
;