claire-framework
Version:
- được viết bằng TypeScript - hỗ trợ websocket và HTTP request - hỗ trợ CLI để generate base project (claire-cli)
41 lines • 5.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const AbstractController_1 = require("../AbstractController");
const core_1 = require("../../decorator/core");
const __1 = require("../..");
const Utils_1 = require("../../system/Utils");
class AbstractHttpController extends AbstractController_1.AbstractController {
get controllerMetadata() {
if (!this._controllerMetadata) {
this._controllerMetadata = Object.getPrototypeOf(this)[core_1.METADATA];
if (!this._controllerMetadata.handlers) {
this._controllerMetadata.handlers = [];
}
}
return this._controllerMetadata;
}
get handlers() {
return this.controllerMetadata.handlers.filter(h => !h.noAccess).map(h => (Object.assign(Object.assign({}, h), { permissionGroup: h.permissionGroup || this.controllerMetadata.permissionGroup, permissionName: h.permissionName || h.handlerFn, permissionType: h.method === __1.HTTP.GET ? __1.PermissionType.READ : __1.PermissionType.WRITE })));
}
static mergeWithSuperHandlers(superHandlers, handlers) {
const result = handlers.slice();
for (let superHandler of superHandlers.handlers) {
const index = result.findIndex(h => h.handlerFn === superHandler.handlerFn || (h.method === superHandler.method && h.url === superHandler.url));
if (index < 0) {
//-- insert
if (superHandler.url && superHandler.method) {
result.push(superHandler);
}
}
else {
//-- clean superHandler before merging
superHandler = Utils_1.Utils.getCleanObject(superHandler);
//-- merge
result[index] = Object.assign(Object.assign(Object.assign({}, result[index]), superHandler), (superHandler.handlerFn !== result[index].handlerFn ? { permissionName: superHandler.handlerFn } : {}));
}
}
return result.map(r => (Object.assign(Object.assign({}, r), { permissionGroup: r.permissionGroup || superHandlers.permissionGroup, permissionName: r.permissionName || r.handlerFn, permissionType: r.method === __1.HTTP.GET ? __1.PermissionType.READ : __1.PermissionType.WRITE })));
}
}
exports.AbstractHttpController = AbstractHttpController;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RIdHRwQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb250cm9sbGVyL2h0dHAvQWJzdHJhY3RIdHRwQ29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDhEQUF5RDtBQUV6RCwrQ0FBOEM7QUFDOUMsNkJBQWdFO0FBQ2hFLDhDQUF5QztBQUV6QyxNQUFzQixzQkFBdUIsU0FBUSx1Q0FBa0I7SUFJbkUsSUFBVyxrQkFBa0I7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUMzQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFRLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7YUFDMUM7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsaUNBQ25FLENBQUMsS0FDSixlQUFlLEVBQUUsQ0FBQyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUM3RSxjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUMvQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWMsQ0FBQyxLQUFLLElBQ3BGLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFUyxNQUFNLENBQUMsc0JBQXNCLENBQUMsYUFBcUMsRUFBRSxRQUErQjtRQUMxRyxNQUFNLE1BQU0sR0FBMEIsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZELEtBQUssSUFBSSxZQUFZLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUM3QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxZQUFZLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEosSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO2dCQUNYLFdBQVc7Z0JBQ1gsSUFBSSxZQUFZLENBQUMsR0FBRyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7b0JBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQzdCO2FBQ0o7aUJBQU07Z0JBQ0gsc0NBQXNDO2dCQUN0QyxZQUFZLEdBQUcsYUFBSyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDbEQsVUFBVTtnQkFDVixNQUFNLENBQUMsS0FBSyxDQUFDLGlEQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FDYixZQUFZLEdBRVosQ0FBQyxZQUFZLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxTQUFTLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQzFHLENBQUM7YUFDTDtTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsaUNBQ2hCLENBQUMsS0FDSixlQUFlLEVBQUUsQ0FBQyxDQUFDLGVBQWUsSUFBSSxhQUFhLENBQUMsZUFBZSxFQUNuRSxjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUMvQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxrQkFBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsa0JBQWMsQ0FBQyxLQUFLLElBQ3BGLENBQUMsQ0FBQztJQUNSLENBQUM7Q0FDSjtBQW5ERCx3REFtREMifQ==