claire-framework
Version:
- được viết bằng TypeScript - hỗ trợ websocket và HTTP request - hỗ trợ CLI để generate base project (claire-cli)
45 lines • 3.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const AbstractRequestHandler_1 = require("../AbstractRequestHandler");
const BodyParser_1 = require("../../default-implementations/BodyParser");
const GlobalInjection_1 = require("../../system/GlobalInjection");
const CORS_1 = require("../../default-implementations/CORS");
const __1 = require("../..");
const errors_1 = require("../../system/errors");
class AbstractHttpRequestHandler extends AbstractRequestHandler_1.AbstractRequestHandler {
constructor() {
super(...arguments);
this.mountPoint = "";
this.middleware = [
new CORS_1.CORS(),
new BodyParser_1.BodyParser(),
];
}
assertValid() {
const controllers = this.controllers;
const handlers = [];
for (const controller of controllers) {
for (const handler of controller.handlers) {
const index = handlers.findIndex(h => h.method === handler.method && h.url === handler.url);
if (index >= 0 && !handlers[index].override) {
throw new __1.ClaireError(errors_1.NO_IMPLICIT_HTTP_OVERRIDE, {
overrider: handlers[index].permissionName,
overridee: handler.permissionName,
});
}
else {
handlers.push(handler);
}
}
}
}
get controllers() {
if (!this._controllers) {
this._controllers = GlobalInjection_1.getGlobalInjection().httpControllers.map(c => c.instance || new c.constructorFn());
}
return this._controllers;
}
;
}
exports.AbstractHttpRequestHandler = AbstractHttpRequestHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RIdHRwUmVxdWVzdEhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvY29udHJvbGxlci9odHRwL0Fic3RyYWN0SHR0cFJlcXVlc3RIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsc0VBQWlFO0FBR2pFLHlFQUFvRTtBQUNwRSxrRUFBZ0U7QUFDaEUsNkRBQXdEO0FBRXhELDZCQUFrQztBQUNsQyxnREFBOEQ7QUFFOUQsTUFBc0IsMEJBQTJCLFNBQVEsK0NBQXNCO0lBQS9FOztRQUdXLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFeEIsZUFBVSxHQUE2QjtZQUMxQyxJQUFJLFdBQUksRUFBRTtZQUNWLElBQUksdUJBQVUsRUFBRTtTQUNuQixDQUFDO0lBK0JOLENBQUM7SUE3QlUsV0FBVztRQUNkLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDckMsTUFBTSxRQUFRLEdBQTBCLEVBQUUsQ0FBQztRQUMzQyxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRTtZQUNsQyxLQUFLLE1BQU0sT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVGLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUU7b0JBQ3pDLE1BQU0sSUFBSSxlQUFXLENBQUMsa0NBQXlCLEVBQUU7d0JBQzdDLFNBQVMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYzt3QkFDekMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxjQUFjO3FCQUNwQyxDQUFDLENBQUM7aUJBQ047cUJBQU07b0JBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDMUI7YUFDSjtTQUNKO0lBQ0wsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLG9DQUFrQixFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUMxRztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBQUEsQ0FBQztDQU1MO0FBdkNELGdFQXVDQyJ9