UNPKG

@innv/nest-initializer

Version:

Uma plataforma fluente e opinativa para inicializar e configurar aplicações NestJS com as melhores práticas.

44 lines 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.discoverComponents = discoverComponents; const path_1 = require("path"); const glob_1 = require("glob"); const nexus_1 = require("@innv/nexus"); function discoverComponents(basePath, reflectorInst, requireFn = require) { const providers = []; const controllers = []; const nexusClients = []; const files = (0, glob_1.globSync)((0, path_1.join)(basePath, '**/*.{ts,js}'), { ignore: [ '**/*.module.{ts,js}', '**/*.spec.{ts,js}', '**/node_modules/**', '**/features/**', '**/plugins/**', ], absolute: true, }); for (const file of files) { try { const exports = requireFn(file); for (const key in exports) { const exportedClass = exports[key]; if (typeof exportedClass === 'function' && exportedClass.prototype) { if (reflectorInst.get('path', exportedClass)) { controllers.push(exportedClass); } else if (reflectorInst.get('__injectable__', exportedClass)) { providers.push(exportedClass); } else if (reflectorInst.get(nexus_1.API_CLIENT_META_KEY, exportedClass)) { nexusClients.push(exportedClass); } } } } catch (_) { } } return { providers, controllers, nexusClients }; } //# sourceMappingURL=auto-discovery.helper.js.map