UNPKG

@nestjs/core

Version:

Nest - modern, fast, powerful node.js web framework (@core)

27 lines (26 loc) 1.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); 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 } = await this.extractMetadata(metatype); const token = this.moduleTokenFactory.create(type, dynamicMetadata); return { type, dynamicMetadata, token }; } async extractMetadata(metatype) { metatype = await metatype; if (!this.isDynamicModule(metatype)) { return { type: metatype }; } const { module: type } = metatype, dynamicMetadata = tslib_1.__rest(metatype, ["module"]); return { type, dynamicMetadata }; } isDynamicModule(module) { return !!module.module; } } exports.ModuleCompiler = ModuleCompiler;