@decorators/server
Version:
node decorators - decorators for express library
45 lines • 5.23 kB
JavaScript
;
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=