UNPKG

@napp/api-server

Version:

Rest full api. Server

88 lines 3.43 kB
"use strict"; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AModule = void 0; var action_1 = require("./action"); var AModule = /** @class */ (function () { function AModule(name, opt) { this.name = name; this.opt = opt; this._handlers = new Map(); if (opt.actions) { for (var _i = 0, _a = opt.actions; _i < _a.length; _i++) { var h = _a[_i]; this._register(h); } } } AModule.prototype.register = function () { var handlers = []; for (var _i = 0; _i < arguments.length; _i++) { handlers[_i] = arguments[_i]; } for (var _a = 0, handlers_1 = handlers; _a < handlers_1.length; _a++) { var h = handlers_1[_a]; this._register(h); } return this; }; AModule.prototype._register = function (handler) { var w = new action_1.AHandlerWrap(this, handler); if (this._handlers.has(w.name)) { throw new Error("registered \"" + w.name + "\" the handler"); } this._handlers.set(w.name, w); return this; }; AModule.prototype.getResponseFilters = function () { return this.opt.responseFilters || []; }; AModule.prototype.log = function (level, message, dta) { var logger = this.opt.logger; if (logger) { logger(level, message, dta); } }; AModule.prototype.setup = function (app) { var _this = this; this.log('info', 'setup.module', { name: this.name }); this._handlers.forEach(function (wrap) { _this._setup(app, wrap); }); return app; }; AModule.prototype._setup = function (app, wrap) { var name = wrap.name; var path = wrap.path; var method = wrap.method; var errorHandle = this.opt.errorHandle; var moduleBefores = this.opt.befores || []; var actionBefores = wrap.getBefores(); var befores = __spreadArrays(moduleBefores, actionBefores); if (method === 'get') { app.get(path, befores, function (req, res, next) { return wrap.action(req, res, next, errorHandle); }); } else if (method === 'post') { app.post(path, befores, function (req, res, next) { return wrap.action(req, res, next, errorHandle); }); } else if (method === 'delete') { app.delete(path, befores, function (req, res, next) { return wrap.action(req, res, next, errorHandle); }); } else if (method === 'put') { app.put(path, befores, function (req, res, next) { return wrap.action(req, res, next, errorHandle); }); } else { throw new Error("not suppoered method. handler = " + name); } this.log('info', 'setup.action', { name: name, method: method, path: path }); }; return AModule; }()); exports.AModule = AModule; //# sourceMappingURL=module.js.map