UNPKG

json-api-nestjs

Version:
79 lines 3.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.prepareConfig = prepareConfig; exports.createMixinModule = createMixinModule; exports.createAtomicModule = createAtomicModule; exports.entityForClass = entityForClass; const common_1 = require("@nestjs/common"); const constants_1 = require("../constants"); const modules_1 = require("../modules"); const mixin_module_1 = require("../modules/mixin/mixin.module"); const core_1 = require("@nestjs/core"); const constants_2 = require("../modules/micro-orm/constants"); function prepareConfig(moduleOptions, type) { const { options: inputOptions } = moduleOptions; let resulOptions; const configParam = { debug: !!inputOptions.debug, requiredSelectField: !!inputOptions.requiredSelectField, operationUrl: inputOptions.operationUrl || false, overrideRoute: inputOptions.overrideRoute || false, pipeForId: inputOptions.pipeForId || common_1.ParseIntPipe, }; if (type === 'typeOrm') { const { runInTransaction, useSoftDelete } = moduleOptions.options; resulOptions = { ...configParam, useSoftDelete: useSoftDelete ? useSoftDelete : false, runInTransaction: runInTransaction ? runInTransaction : false, }; } else { const { arrayType } = moduleOptions.options; resulOptions = { ...configParam, arrayType: [...constants_2.DEFAULT_ARRAY_TYPE, ...(arrayType || [])], }; } return { connectionName: type === 'typeOrm' ? moduleOptions.connectionName || constants_1.DEFAULT_CONNECTION_NAME : moduleOptions.connectionName, entities: moduleOptions.entities, imports: moduleOptions.imports || [], providers: moduleOptions.providers || [], controllers: moduleOptions.controllers || [], options: resulOptions, }; } function createMixinModule(entity, resultOption, commonOrmModule) { const controller = (resultOption.controllers || []).find((item) => item && Reflect.getMetadata(constants_1.JSON_API_DECORATOR_ENTITY, item) === entity); return mixin_module_1.MixinModule.forRoot({ entity, controller, config: resultOption.options, imports: [commonOrmModule, ...resultOption.imports], ormModule: resultOption.type, }); } function createAtomicModule(options, entitiesMixinModules, commonOrmModule) { const { operationUrl } = options.options; if (!operationUrl) return []; return [ modules_1.AtomicOperationModule.forRoot({ ...options, connectionName: options.connectionName, }, entitiesMixinModules, commonOrmModule), core_1.RouterModule.register([ { module: modules_1.AtomicOperationModule, path: operationUrl, }, ]), ]; } function entityForClass(type) { return Reflect.getMetadata(constants_1.JSON_API_DECORATOR_ENTITY, type); } //# sourceMappingURL=helper.js.map