UNPKG

@decorators/server

Version:

node decorators - decorators for express library

55 lines 6.96 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __param = (this && this.__param) || function (paramIndex, decorator) { return function (target, key) { decorator(target, key, paramIndex); } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventResolver = void 0; const di_1 = require("@decorators/di"); const core_1 = require("../../../core"); const constants_1 = require("./constants"); const event_handler_1 = require("./event-handler"); const sockets_application_adapter_1 = require("./sockets-application-adapter"); let EventResolver = exports.EventResolver = class EventResolver { constructor(adapter, containerManager, metadataScanner, eventHandler) { this.adapter = adapter; this.containerManager = containerManager; this.metadataScanner = metadataScanner; this.eventHandler = eventHandler; } async resolve() { const metadatas = this.metadataScanner.scan() .filter(meta => (0, core_1.isEnum)(constants_1.EventType, meta.type)); const events = []; for (const metadata of metadatas) { const container = this.containerManager.get(metadata.module); const controller = await container.get(metadata.controller); const eventPipes = await (0, core_1.asyncMap)(metadata.pipes, (pipe) => container.get(pipe)); const handler = this.eventHandler.createHandler(controller, metadata.methodName, metadata.type, metadata.params, eventPipes); events.push({ event: metadata.event, handler, type: metadata.type, url: metadata.url, }); } this.adapter.events(events); } }; exports.EventResolver = EventResolver = __decorate([ (0, di_1.Injectable)(), __param(0, (0, di_1.Inject)(constants_1.SOCKETS_ADAPTER)), __metadata("design:paramtypes", [sockets_application_adapter_1.SocketsApplicationAdapter, core_1.ContainerManager, core_1.MetadataScanner, event_handler_1.EventHandler]) ], EventResolver); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGxhdGZvcm1zL3NvY2tldHMvaGVscGVycy9ldmVudC1yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBb0Q7QUFFcEQsd0NBQW1IO0FBRW5ILDJDQUF5RDtBQUN6RCxtREFBK0M7QUFDL0MsK0VBQTBFO0FBR25FLElBQU0sYUFBYSwyQkFBbkIsTUFBTSxhQUFhO0lBQ3hCLFlBQ21DLE9BQWtDLEVBQzNELGdCQUFrQyxFQUNsQyxlQUFnQyxFQUNoQyxZQUEwQjtRQUhELFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQzNELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2hDLENBQUM7SUFFTCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFpQjthQUN6RCxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFBLGFBQU0sRUFBQyxxQkFBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRWhELE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVsQixLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRTtZQUNoQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3RCxNQUFNLFVBQVUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQWlDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1RixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsZUFBUSxFQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFzQixFQUFFLEVBQUUsQ0FDM0UsU0FBUyxDQUFDLEdBQUcsQ0FBYyxJQUFJLENBQUMsQ0FDakMsQ0FBQztZQUVGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUM3QyxVQUFVLEVBQ1YsUUFBUSxDQUFDLFVBQVUsRUFDbkIsUUFBUSxDQUFDLElBQWlCLEVBQzFCLFFBQVEsQ0FBQyxNQUFNLEVBQ2YsVUFBVSxDQUNYLENBQUM7WUFFRixNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNWLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztnQkFDckIsT0FBTztnQkFDUCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQ25CLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRzthQUNsQixDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRixDQUFBO3dCQXZDWSxhQUFhO0lBRHpCLElBQUEsZUFBVSxHQUFFO0lBR1IsV0FBQSxJQUFBLFdBQU0sRUFBQywyQkFBZSxDQUFDLENBQUE7cUNBQWtCLHVEQUF5QjtRQUN6Qyx1QkFBZ0I7UUFDakIsc0JBQWU7UUFDbEIsNEJBQVk7R0FMekIsYUFBYSxDQXVDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAZGVjb3JhdG9ycy9kaSc7XG5cbmltcG9ydCB7IGFzeW5jTWFwLCBDbGFzc0NvbnN0cnVjdG9yLCBDb250YWluZXJNYW5hZ2VyLCBpc0VudW0sIE1ldGFkYXRhU2Nhbm5lciwgUHJvY2Vzc1BpcGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IEV2ZW50TWV0YWRhdGEgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBFdmVudFR5cGUsIFNPQ0tFVFNfQURBUFRFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IEV2ZW50SGFuZGxlciB9IGZyb20gJy4vZXZlbnQtaGFuZGxlcic7XG5pbXBvcnQgeyBTb2NrZXRzQXBwbGljYXRpb25BZGFwdGVyIH0gZnJvbSAnLi9zb2NrZXRzLWFwcGxpY2F0aW9uLWFkYXB0ZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRSZXNvbHZlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoU09DS0VUU19BREFQVEVSKSBwcml2YXRlIGFkYXB0ZXI6IFNvY2tldHNBcHBsaWNhdGlvbkFkYXB0ZXIsXG4gICAgcHJpdmF0ZSBjb250YWluZXJNYW5hZ2VyOiBDb250YWluZXJNYW5hZ2VyLFxuICAgIHByaXZhdGUgbWV0YWRhdGFTY2FubmVyOiBNZXRhZGF0YVNjYW5uZXIsXG4gICAgcHJpdmF0ZSBldmVudEhhbmRsZXI6IEV2ZW50SGFuZGxlcixcbiAgKSB7IH1cblxuICBhc3luYyByZXNvbHZlKCkge1xuICAgIGNvbnN0IG1ldGFkYXRhcyA9IHRoaXMubWV0YWRhdGFTY2FubmVyLnNjYW48RXZlbnRNZXRhZGF0YT4oKVxuICAgICAgLmZpbHRlcihtZXRhID0+IGlzRW51bShFdmVudFR5cGUsIG1ldGEudHlwZSkpO1xuXG4gICAgY29uc3QgZXZlbnRzID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG1ldGFkYXRhIG9mIG1ldGFkYXRhcykge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5jb250YWluZXJNYW5hZ2VyLmdldChtZXRhZGF0YS5tb2R1bGUpO1xuICAgICAgY29uc3QgY29udHJvbGxlciA9IGF3YWl0IGNvbnRhaW5lci5nZXQ8SW5zdGFuY2VUeXBlPENsYXNzQ29uc3RydWN0b3I+PihtZXRhZGF0YS5jb250cm9sbGVyKTtcbiAgICAgIGNvbnN0IGV2ZW50UGlwZXMgPSBhd2FpdCBhc3luY01hcChtZXRhZGF0YS5waXBlcywgKHBpcGU6IENsYXNzQ29uc3RydWN0b3IpID0+XG4gICAgICAgIGNvbnRhaW5lci5nZXQ8UHJvY2Vzc1BpcGU+KHBpcGUpLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuZXZlbnRIYW5kbGVyLmNyZWF0ZUhhbmRsZXIoXG4gICAgICAgIGNvbnRyb2xsZXIsXG4gICAgICAgIG1ldGFkYXRhLm1ldGhvZE5hbWUsXG4gICAgICAgIG1ldGFkYXRhLnR5cGUgYXMgRXZlbnRUeXBlLFxuICAgICAgICBtZXRhZGF0YS5wYXJhbXMsXG4gICAgICAgIGV2ZW50UGlwZXMsXG4gICAgICApO1xuXG4gICAgICBldmVudHMucHVzaCh7XG4gICAgICAgIGV2ZW50OiBtZXRhZGF0YS5ldmVudCxcbiAgICAgICAgaGFuZGxlcixcbiAgICAgICAgdHlwZTogbWV0YWRhdGEudHlwZSxcbiAgICAgICAgdXJsOiBtZXRhZGF0YS51cmwsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmFkYXB0ZXIuZXZlbnRzKGV2ZW50cyk7XG4gIH1cbn1cbiJdfQ==