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