UNPKG

1.46 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const tslib_1 = require("tslib");
4const common_1 = require("@nestjs/common");
5const modules_container_1 = require("../injector/modules-container");
6let DiscoveryService = class DiscoveryService {
7 constructor(modulesContainer) {
8 this.modulesContainer = modulesContainer;
9 }
10 getProviders(options = {}, modules = this.getModules(options)) {
11 const providers = modules.map(item => [...item.providers.values()]);
12 return common_1.flatten(providers);
13 }
14 getControllers(options = {}, modules = this.getModules(options)) {
15 const controllers = modules.map(item => [...item.controllers.values()]);
16 return common_1.flatten(controllers);
17 }
18 getModules(options = {}) {
19 if (!options.include) {
20 const moduleRefs = [...this.modulesContainer.values()];
21 return moduleRefs;
22 }
23 const whitelisted = this.includeWhitelisted(options.include);
24 return whitelisted;
25 }
26 includeWhitelisted(include) {
27 const moduleRefs = [...this.modulesContainer.values()];
28 return moduleRefs.filter(({ metatype }) => include.some(item => item === metatype));
29 }
30};
31DiscoveryService = tslib_1.__decorate([
32 common_1.Injectable(),
33 tslib_1.__metadata("design:paramtypes", [modules_container_1.ModulesContainer])
34], DiscoveryService);
35exports.DiscoveryService = DiscoveryService;