UNPKG

@nestjs/graphql

Version:

Nest - modern, fast, powerful node.js web framework (@graphql)

34 lines (33 loc) 1.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PluginsExplorerService = void 0; const tslib_1 = require("tslib"); const common_1 = require("@nestjs/common"); const modules_container_1 = require("@nestjs/core/injector/modules-container"); const graphql_constants_1 = require("../graphql.constants"); const base_explorer_service_1 = require("./base-explorer.service"); let PluginsExplorerService = class PluginsExplorerService extends base_explorer_service_1.BaseExplorerService { constructor(modulesContainer, gqlOptions) { super(); this.modulesContainer = modulesContainer; this.gqlOptions = gqlOptions; } explore() { const modules = this.getModules(this.modulesContainer, this.gqlOptions.include || []); return this.flatMap(modules, (instance) => this.filterPlugins(instance)); } filterPlugins(wrapper) { const { instance } = wrapper; if (!instance) { return undefined; } const metadata = Reflect.getMetadata(graphql_constants_1.PLUGIN_METADATA, instance.constructor); return metadata ? instance : undefined; } }; PluginsExplorerService = (0, tslib_1.__decorate)([ (0, common_1.Injectable)(), (0, tslib_1.__param)(1, (0, common_1.Inject)(graphql_constants_1.GRAPHQL_MODULE_OPTIONS)), (0, tslib_1.__metadata)("design:paramtypes", [modules_container_1.ModulesContainer, Object]) ], PluginsExplorerService); exports.PluginsExplorerService = PluginsExplorerService;