UNPKG

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
"use strict"; 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==