UNPKG

@decorators/server

Version:

node decorators - decorators for express library

45 lines 5.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Application = void 0; const di_1 = require("@decorators/di"); const http_1 = require("http"); const helpers_1 = require("./helpers"); const providers_1 = require("./providers"); class Application { static async create(rootModule, server) { const containerManger = new helpers_1.ContainerManager(); const container = containerManger.create(Application); container.setParent(di_1.RootContainer); container.provide([ { provide: helpers_1.APP_SERVER, useValue: server !== null && server !== void 0 ? server : (0, http_1.createServer)(), }, { provide: helpers_1.ContainerManager, useValue: containerManger, }, { provide: helpers_1.ROOT_MODULE, useValue: rootModule, }, ...providers_1.DEFAULT_PROVIDERS, ]); const moduleResolver = await container.get(helpers_1.ModuleResolver); const application = new Application(containerManger); moduleResolver.prepareModule(rootModule, container); await moduleResolver.resolveModule(rootModule); return application; } constructor(containerManager) { this.containerManager = containerManager; } inject(target) { return this.containerManager.scan(target); } scan(target) { return this.containerManager.scan(target, true); } } exports.Application = Application; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29yZS9hcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1Q0FBK0Q7QUFDL0QsK0JBQW9DO0FBRXBDLHVDQUFzRjtBQUN0RiwyQ0FBZ0Q7QUFHaEQsTUFBYSxXQUFXO0lBQ3RCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQTRCLEVBQUUsTUFBZTtRQUMvRCxNQUFNLGVBQWUsR0FBRyxJQUFJLDBCQUFnQixFQUFFLENBQUM7UUFDL0MsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV0RCxTQUFTLENBQUMsU0FBUyxDQUFDLGtCQUFhLENBQUMsQ0FBQztRQUVuQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQ2hCO2dCQUNFLE9BQU8sRUFBRSxvQkFBVTtnQkFDbkIsUUFBUSxFQUFFLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLElBQUEsbUJBQVksR0FBRTthQUNuQztZQUNEO2dCQUNFLE9BQU8sRUFBRSwwQkFBZ0I7Z0JBQ3pCLFFBQVEsRUFBRSxlQUFlO2FBQzFCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLHFCQUFXO2dCQUNwQixRQUFRLEVBQUUsVUFBVTthQUNyQjtZQUNELEdBQUcsNkJBQWlCO1NBQ3JCLENBQUMsQ0FBQztRQUVILE1BQU0sY0FBYyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBaUIsd0JBQWMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXJELGNBQWMsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXBELE1BQU0sY0FBYyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQyxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBSSxDQUFDO0lBRTNELE1BQU0sQ0FBSSxNQUF5QztRQUNqRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUksTUFBTSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQUksQ0FBSSxNQUF5QztRQUMvQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQU0sTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQTFDRCxrQ0EwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgUm9vdENvbnRhaW5lciB9IGZyb20gJ0BkZWNvcmF0b3JzL2RpJztcbmltcG9ydCB7IGNyZWF0ZVNlcnZlciB9IGZyb20gJ2h0dHAnO1xuXG5pbXBvcnQgeyBBUFBfU0VSVkVSLCBDb250YWluZXJNYW5hZ2VyLCBNb2R1bGVSZXNvbHZlciwgUk9PVF9NT0RVTEUgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgREVGQVVMVF9QUk9WSURFUlMgfSBmcm9tICcuL3Byb3ZpZGVycyc7XG5pbXBvcnQgeyBDbGFzc0NvbnN0cnVjdG9yLCBTZXJ2ZXIgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uIHtcbiAgc3RhdGljIGFzeW5jIGNyZWF0ZShyb290TW9kdWxlOiBDbGFzc0NvbnN0cnVjdG9yLCBzZXJ2ZXI/OiBTZXJ2ZXIpIHtcbiAgICBjb25zdCBjb250YWluZXJNYW5nZXIgPSBuZXcgQ29udGFpbmVyTWFuYWdlcigpO1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lck1hbmdlci5jcmVhdGUoQXBwbGljYXRpb24pO1xuXG4gICAgY29udGFpbmVyLnNldFBhcmVudChSb290Q29udGFpbmVyKTtcblxuICAgIGNvbnRhaW5lci5wcm92aWRlKFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogQVBQX1NFUlZFUixcbiAgICAgICAgdXNlVmFsdWU6IHNlcnZlciA/PyBjcmVhdGVTZXJ2ZXIoKSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IENvbnRhaW5lck1hbmFnZXIsXG4gICAgICAgIHVzZVZhbHVlOiBjb250YWluZXJNYW5nZXIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBST09UX01PRFVMRSxcbiAgICAgICAgdXNlVmFsdWU6IHJvb3RNb2R1bGUsXG4gICAgICB9LFxuICAgICAgLi4uREVGQVVMVF9QUk9WSURFUlMsXG4gICAgXSk7XG5cbiAgICBjb25zdCBtb2R1bGVSZXNvbHZlciA9IGF3YWl0IGNvbnRhaW5lci5nZXQ8TW9kdWxlUmVzb2x2ZXI+KE1vZHVsZVJlc29sdmVyKTtcbiAgICBjb25zdCBhcHBsaWNhdGlvbiA9IG5ldyBBcHBsaWNhdGlvbihjb250YWluZXJNYW5nZXIpO1xuXG4gICAgbW9kdWxlUmVzb2x2ZXIucHJlcGFyZU1vZHVsZShyb290TW9kdWxlLCBjb250YWluZXIpO1xuXG4gICAgYXdhaXQgbW9kdWxlUmVzb2x2ZXIucmVzb2x2ZU1vZHVsZShyb290TW9kdWxlKTtcblxuICAgIHJldHVybiBhcHBsaWNhdGlvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGFpbmVyTWFuYWdlcjogQ29udGFpbmVyTWFuYWdlcikgeyB9XG5cbiAgaW5qZWN0PFQ+KHRhcmdldDogSW5qZWN0aW9uVG9rZW4gfCBDbGFzc0NvbnN0cnVjdG9yKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyTWFuYWdlci5zY2FuPFQ+KHRhcmdldCk7XG4gIH1cblxuICBzY2FuPFQ+KHRhcmdldDogSW5qZWN0aW9uVG9rZW4gfCBDbGFzc0NvbnN0cnVjdG9yKTogUHJvbWlzZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5jb250YWluZXJNYW5hZ2VyLnNjYW48VFtdPih0YXJnZXQsIHRydWUpO1xuICB9XG59XG4iXX0=