UNPKG

2.04 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.ListenerMetadataExplorer = void 0;
4const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
5const constants_1 = require("./constants");
6const pattern_handler_enum_1 = require("./enums/pattern-handler.enum");
7class ListenerMetadataExplorer {
8 constructor(metadataScanner) {
9 this.metadataScanner = metadataScanner;
10 }
11 explore(instance) {
12 const instancePrototype = Object.getPrototypeOf(instance);
13 return this.metadataScanner.scanFromPrototype(instance, instancePrototype, method => this.exploreMethodMetadata(instancePrototype, method));
14 }
15 exploreMethodMetadata(instancePrototype, methodKey) {
16 const targetCallback = instancePrototype[methodKey];
17 const handlerType = Reflect.getMetadata(constants_1.PATTERN_HANDLER_METADATA, targetCallback);
18 if (shared_utils_1.isUndefined(handlerType)) {
19 return;
20 }
21 const pattern = Reflect.getMetadata(constants_1.PATTERN_METADATA, targetCallback);
22 const transport = Reflect.getMetadata(constants_1.TRANSPORT_METADATA, targetCallback);
23 return {
24 methodKey,
25 targetCallback,
26 pattern,
27 transport,
28 isEventHandler: handlerType === pattern_handler_enum_1.PatternHandler.EVENT,
29 };
30 }
31 *scanForClientHooks(instance) {
32 for (const propertyKey in instance) {
33 if (shared_utils_1.isFunction(propertyKey)) {
34 continue;
35 }
36 const property = String(propertyKey);
37 const isClient = Reflect.getMetadata(constants_1.CLIENT_METADATA, instance, property);
38 if (shared_utils_1.isUndefined(isClient)) {
39 continue;
40 }
41 const metadata = Reflect.getMetadata(constants_1.CLIENT_CONFIGURATION_METADATA, instance, property);
42 yield { property, metadata };
43 }
44 }
45}
46exports.ListenerMetadataExplorer = ListenerMetadataExplorer;