@nestjs/graphql
Version:
Nest - modern, fast, powerful node.js web framework (@graphql)
34 lines (33 loc) • 1.53 kB
JavaScript
;
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;