UNPKG

claire-framework

Version:

- được viết bằng TypeScript - hỗ trợ websocket và HTTP request - hỗ trợ CLI để generate base project (claire-cli)

96 lines 8.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const errors_1 = require("../system/errors"); const __1 = require(".."); const GlobalInjection_1 = require("../system/GlobalInjection"); const __2 = require(".."); const HttpControllerMetadata_1 = require("../controller/http/HttpControllerMetadata"); exports.METADATA = "__METADATA__"; const initInjectable = (constructor) => { let injectable = GlobalInjection_1.getGlobalInjection().injectables.find(i => i.name === constructor.name); if (!injectable) { injectable = { name: constructor.name, constructorFn: constructor }; GlobalInjection_1.getGlobalInjection().injectables.push(injectable); } return injectable; }; exports.initMetadata = (prototype, metaPrototype) => { let meta = prototype[exports.METADATA]; if (!meta) { meta = new metaPrototype(); prototype[exports.METADATA] = meta; } return meta; }; exports.Controller = (permissionGroupName) => { return (constructor) => { //-- check controllers let injectable = initInjectable(constructor); let controller = GlobalInjection_1.getGlobalInjection().httpControllers.find(s => s.name === injectable.name); if (controller) { throw new __1.ClaireError(errors_1.DUPLICATED_CONTROLLER_NAME, constructor.name); } const meta = exports.initMetadata(constructor.prototype, HttpControllerMetadata_1.HttpControllerMetadata); meta.permissionGroup = permissionGroupName; GlobalInjection_1.getGlobalInjection().httpControllers.push(injectable); return constructor; }; }; // export const Socket = () => { // return <T extends AbstractSocketController>(constructor: { new(): T }) => { // //-- check controllers // let injectable = initInjectable(constructor); // let controller = getGlobalInjection().socketControllers.find(s => s.name === injectable.name); // if (controller) { // throw new ClaireError(DUPLICATED_CONTROLLER_NAME, constructor.name); // } // initMetadata(constructor.prototype, SocketControllerMetadata); // getGlobalInjection().socketControllers.push(injectable); // return constructor; // }; // }; exports.Service = () => { return (constructor) => { let injectable = initInjectable(constructor); let service = GlobalInjection_1.getGlobalInjection().services.find(s => s.name === injectable.name); if (service) { throw new __1.ClaireError(errors_1.DUPLICATED_SERVICE_NAME, service.name); } GlobalInjection_1.getGlobalInjection().services.push(injectable); return constructor; }; }; exports.Model = (tableName) => { return (constructor) => { //-- check models if (GlobalInjection_1.getGlobalInjection().models.find(c => c.name === constructor.name)) { throw new __1.ClaireError(errors_1.DUPLICATED_MODEL_NAME, constructor.name); } const meta = exports.initMetadata(constructor.prototype, __2.ModelMetadata); meta.modelName = constructor.name; meta.tableName = tableName || constructor.name.toLowerCase(); GlobalInjection_1.getGlobalInjection().models.push({ name: constructor.name, constructorFn: constructor }); return constructor; }; }; exports.Switch = (env) => { return (constructor) => { let injectable = initInjectable(constructor); injectable.env = env; return constructor; }; }; // export const Injectable = () => { // return (constructor: any) => { // initInjectable(constructor); // return constructor; // }; // }; exports.Inject = () => { return (prototype, propertyKey) => { const t = Reflect.getMetadata("design:type", prototype, propertyKey); //-- register to be injected GlobalInjection_1.getGlobalInjection().injectRegistry.push({ prototype, propertyKey, keyPrototype: t }); }; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9kZWNvcmF0b3IvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUkwQjtBQUcxQiwwQkFBK0I7QUFDL0IsK0RBQXFFO0FBQ3JFLDBCQUFpQztBQUNqQyxzRkFBaUY7QUFFcEUsUUFBQSxRQUFRLEdBQUcsY0FBYyxDQUFDO0FBRXZDLE1BQU0sY0FBYyxHQUFHLENBQUMsV0FBZ0IsRUFBZSxFQUFFO0lBQ3JELElBQUksVUFBVSxHQUFHLG9DQUFrQixFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pGLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDYixVQUFVLEdBQUcsRUFBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFDLENBQUM7UUFDbEUsb0NBQWtCLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JEO0lBQ0QsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRVcsUUFBQSxZQUFZLEdBQUcsQ0FBSSxTQUFjLEVBQUUsYUFBeUMsRUFBSyxFQUFFO0lBQzVGLElBQUksSUFBSSxHQUFNLFNBQVMsQ0FBQyxnQkFBUSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNQLElBQUksR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQzNCLFNBQVMsQ0FBQyxnQkFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO0tBQzlCO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRVcsUUFBQSxVQUFVLEdBQUcsQ0FBQyxtQkFBNEIsRUFBRSxFQUFFO0lBQ3ZELE9BQU8sQ0FBQyxXQUFnQixFQUFFLEVBQUU7UUFDeEIsc0JB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