UNPKG

@tsclean/core

Version:

Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.

36 lines 4.23 kB
"use strict"; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ModuleCompiler = void 0; const module_token_factory_1 = require("./module-token-factory"); class ModuleCompiler { constructor(moduleTokenFactory = new module_token_factory_1.ModuleTokenFactory()) { this.moduleTokenFactory = moduleTokenFactory; } async compile(metaType) { const { type, dynamicMetadata } = this.extractMetadata(await metaType); const token = this.moduleTokenFactory.create(type, dynamicMetadata); return { type, dynamicMetadata, token }; } extractMetadata(metaType) { if (!this.isDynamicModule(metaType)) return { type: metaType }; const { module: type } = metaType, dynamicMetadata = __rest(metaType, ["module"]); return { type, dynamicMetadata }; } isDynamicModule(module) { return !!module.module; } } exports.ModuleCompiler = ModuleCompiler; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9pbmplY3Rvci9jb21waWxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLGlFQUEwRDtBQUkxRCxNQUFhLGNBQWM7SUFDdkIsWUFDcUIscUJBQXFCLElBQUkseUNBQWtCLEVBQUU7UUFBN0MsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEyQjtJQUVsRSxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUE4RTtRQUMvRixNQUFNLEVBQUMsSUFBSSxFQUFFLGVBQWUsRUFBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxRQUFRLENBQUMsQ0FBQztRQUNyRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUNwRSxPQUFPLEVBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sZUFBZSxDQUFDLFFBQTRDO1FBSS9ELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQztZQUFFLE9BQU8sRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFDLENBQUM7UUFDN0QsTUFBTSxFQUFDLE1BQU0sRUFBRSxJQUFJLEtBQXdCLFFBQVEsRUFBM0IsZUFBZSxVQUFJLFFBQVEsRUFBN0MsVUFBa0MsQ0FBVyxDQUFDO1FBQ3BELE9BQU8sRUFBQyxJQUFJLEVBQUUsZUFBZSxFQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUEwQztRQUM3RCxPQUFPLENBQUMsQ0FBRSxNQUFpQyxDQUFDLE1BQU0sQ0FBQztJQUN2RCxDQUFDO0NBQ0o7QUF4QkQsd0NBd0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVUb2tlbkZhY3Rvcnl9IGZyb20gJy4vbW9kdWxlLXRva2VuLWZhY3RvcnknO1xuaW1wb3J0IHtEeW5hbWljTW9kdWxlSW50ZXJmYWNlLCBNb2R1bGVGYWN0b3J5SW50ZXJmYWNlLCBUeXBlfSBmcm9tIFwiLi4vLi4vY29udHJhY3RzXCI7XG5cblxuZXhwb3J0IGNsYXNzIE1vZHVsZUNvbXBpbGVyIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtb2R1bGVUb2tlbkZhY3RvcnkgPSBuZXcgTW9kdWxlVG9rZW5GYWN0b3J5KClcbiAgICApIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgY29tcGlsZShtZXRhVHlwZTogVHlwZTxhbnk+IHwgRHluYW1pY01vZHVsZUludGVyZmFjZSB8IFByb21pc2U8RHluYW1pY01vZHVsZUludGVyZmFjZT4pOiBQcm9taXNlPE1vZHVsZUZhY3RvcnlJbnRlcmZhY2U+IHtcbiAgICAgICAgY29uc3Qge3R5cGUsIGR5bmFtaWNNZXRhZGF0YX0gPSB0aGlzLmV4dHJhY3RNZXRhZGF0YShhd2FpdCBtZXRhVHlwZSk7XG4gICAgICAgIGNvbnN0IHRva2VuID0gdGhpcy5tb2R1bGVUb2tlbkZhY3RvcnkuY3JlYXRlKHR5cGUsIGR5bmFtaWNNZXRhZGF0YSk7XG4gICAgICAgIHJldHVybiB7dHlwZSwgZHluYW1pY01ldGFkYXRhLCB0b2tlbn07XG4gICAgfVxuXG4gICAgcHVibGljIGV4dHJhY3RNZXRhZGF0YShtZXRhVHlwZTogVHlwZTxhbnk+IHwgRHluYW1pY01vZHVsZUludGVyZmFjZSk6IHtcbiAgICAgICAgdHlwZTogVHlwZTxhbnk+O1xuICAgICAgICBkeW5hbWljTWV0YWRhdGE/OiBQYXJ0aWFsPER5bmFtaWNNb2R1bGVJbnRlcmZhY2U+IHwgdW5kZWZpbmVkO1xuICAgIH0ge1xuICAgICAgICBpZiAoIXRoaXMuaXNEeW5hbWljTW9kdWxlKG1ldGFUeXBlKSkgcmV0dXJuIHt0eXBlOiBtZXRhVHlwZX07XG4gICAgICAgIGNvbnN0IHttb2R1bGU6IHR5cGUsIC4uLmR5bmFtaWNNZXRhZGF0YX0gPSBtZXRhVHlwZTtcbiAgICAgICAgcmV0dXJuIHt0eXBlLCBkeW5hbWljTWV0YWRhdGF9O1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0R5bmFtaWNNb2R1bGUobW9kdWxlOiBUeXBlPGFueT4gfCBEeW5hbWljTW9kdWxlSW50ZXJmYWNlKTogbW9kdWxlIGlzIER5bmFtaWNNb2R1bGVJbnRlcmZhY2Uge1xuICAgICAgICByZXR1cm4gISEobW9kdWxlIGFzIER5bmFtaWNNb2R1bGVJbnRlcmZhY2UpLm1vZHVsZTtcbiAgICB9XG59XG4iXX0=