@tsclean/core
Version:
Plugin for API Rest Full development, based on Clean Architecture, IoC and Dependency Injection.
36 lines • 4.23 kB
JavaScript
;
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=