@napp/api-server
Version:
Rest full api. Server
88 lines • 3.43 kB
JavaScript
;
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