UNPKG

@bitwild/rockets

Version:

Rockets - Core server functionality for NestJS applications with built-in authentication, user management, and API scaffolding

108 lines 5.25 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.ROCKETS_MODULE_ASYNC_OPTIONS_TYPE = exports.ROCKETS_MODULE_OPTIONS_TYPE = exports.RocketsModuleClass = void 0; exports.createRocketsControllers = createRocketsControllers; exports.createRocketsSettingsProvider = createRocketsSettingsProvider; exports.createRocketsImports = createRocketsImports; exports.createRocketsExports = createRocketsExports; exports.createRocketsProviders = createRocketsProviders; const nestjs_common_1 = require("@concepta/nestjs-common"); const common_1 = require("@nestjs/common"); const core_1 = require("@nestjs/core"); const nestjs_swagger_ui_1 = require("@concepta/nestjs-swagger-ui"); const rockets_constants_1 = require("./rockets.constants"); const me_controller_1 = require("./modules/user/me.controller"); const config_1 = require("@nestjs/config"); const rockets_options_default_config_1 = require("./config/rockets-options-default.config"); const auth_server_guard_1 = require("./guards/auth-server.guard"); const user_metadata_model_service_1 = require("./modules/user-metadata/services/user-metadata.model.service"); const user_metadata_constants_1 = require("./modules/user-metadata/constants/user-metadata.constants"); const nestjs_common_2 = require("@concepta/nestjs-common"); const rockets_tokens_1 = require("./rockets.tokens"); _a = new common_1.ConfigurableModuleBuilder({ moduleName: 'Rockets', optionsInjectionToken: rockets_tokens_1.RAW_OPTIONS_TOKEN, }) .setExtras({ global: false }, definitionTransform) .build(), exports.RocketsModuleClass = _a.ConfigurableModuleClass, exports.ROCKETS_MODULE_OPTIONS_TYPE = _a.OPTIONS_TYPE, exports.ROCKETS_MODULE_ASYNC_OPTIONS_TYPE = _a.ASYNC_OPTIONS_TYPE; function definitionTransform(definition, extras) { const { imports: defImports = [], providers = [], exports = [] } = definition; const baseModule = Object.assign(Object.assign({}, definition), { global: extras.global, imports: [...createRocketsImports({ imports: defImports, extras })], controllers: createRocketsControllers({ extras }) || [], providers: [...createRocketsProviders({ providers, extras })], exports: createRocketsExports({ exports, extras }) }); return baseModule; } function createRocketsControllers(_options) { return (() => { const list = [me_controller_1.MeController]; return list; })(); } function createRocketsSettingsProvider(optionsOverrides) { return (0, nestjs_common_1.createSettingsProvider)({ settingsToken: rockets_constants_1.ROCKETS_MODULE_OPTIONS_DEFAULT_SETTINGS_TOKEN, optionsToken: rockets_tokens_1.RAW_OPTIONS_TOKEN, settingsKey: rockets_options_default_config_1.rocketsOptionsDefaultConfig.KEY, optionsOverrides, }); } function createRocketsImports(options) { var _a; const baseImports = [ config_1.ConfigModule.forFeature(rockets_options_default_config_1.rocketsOptionsDefaultConfig), nestjs_swagger_ui_1.SwaggerUiModule.registerAsync({ inject: [rockets_tokens_1.RAW_OPTIONS_TOKEN], useFactory: (options) => { var _a, _b; return { documentBuilder: (_a = options.swagger) === null || _a === void 0 ? void 0 : _a.documentBuilder, settings: (_b = options.swagger) === null || _b === void 0 ? void 0 : _b.settings, }; }, }), ]; const extraImports = (_a = options.imports) !== null && _a !== void 0 ? _a : []; return [...extraImports, ...baseImports]; } function createRocketsExports(options) { return [ ...(options.exports || []), config_1.ConfigModule, rockets_tokens_1.RAW_OPTIONS_TOKEN, rockets_constants_1.ROCKETS_MODULE_OPTIONS_DEFAULT_SETTINGS_TOKEN, user_metadata_constants_1.UserMetadataModelService, ]; } function createRocketsProviders(options) { var _a, _b; const providers = [ ...((_a = options.providers) !== null && _a !== void 0 ? _a : []), createRocketsSettingsProvider(), core_1.Reflector, { provide: rockets_constants_1.RocketsAuthProvider, inject: [rockets_tokens_1.RAW_OPTIONS_TOKEN], useFactory: (opts) => { return opts.authProvider; }, }, { provide: user_metadata_constants_1.UserMetadataModelService, inject: [ rockets_tokens_1.RAW_OPTIONS_TOKEN, (0, nestjs_common_2.getDynamicRepositoryToken)(user_metadata_constants_1.USER_METADATA_MODULE_ENTITY_KEY), ], useFactory: (opts, repository) => { const { createDto, updateDto } = opts.userMetadata; return new user_metadata_model_service_1.GenericUserMetadataModelService(repository, createDto, updateDto); }, }, ]; if (((_b = options.extras) === null || _b === void 0 ? void 0 : _b.enableGlobalGuard) !== false) { providers.push({ provide: core_1.APP_GUARD, useClass: auth_server_guard_1.AuthServerGuard, }); } return providers; } //# sourceMappingURL=rockets.module-definition.js.map