UNPKG

json-api-nestjs

Version:
89 lines 3.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CurrentMicroOrmProvider = CurrentMicroOrmProvider; exports.CurrentEntityManager = CurrentEntityManager; exports.CurrentEntityRepository = CurrentEntityRepository; exports.CurrentEntityMetadata = CurrentEntityMetadata; exports.EntityPropsMap = EntityPropsMap; exports.RunInTransactionFactory = RunInTransactionFactory; exports.OrmServiceFactory = OrmServiceFactory; const core_1 = require("@mikro-orm/core"); const nestjs_shared_1 = require("../../../utils/nestjs-shared"); const nestjs_1 = require("@mikro-orm/nestjs"); const constants_1 = require("../../../constants"); const orm_helper_1 = require("../orm-helper"); const helper_1 = require("../../mixin/helper"); const constants_2 = require("../constants"); const service_1 = require("../service"); function CurrentMicroOrmProvider(connectionName) { return { provide: constants_1.CURRENT_DATA_SOURCE_TOKEN, useFactory: (mikroORM) => { return mikroORM; }, inject: [connectionName ? (0, nestjs_1.getMikroORMToken)(connectionName) : core_1.MikroORM], }; } function CurrentEntityManager() { return { provide: constants_1.CURRENT_ENTITY_MANAGER_TOKEN, useFactory: (mikroORM) => mikroORM.em, inject: [constants_1.CURRENT_DATA_SOURCE_TOKEN], }; } function CurrentEntityRepository(entity) { return { provide: constants_1.CURRENT_ENTITY_REPOSITORY, useFactory: (entityManager) => entityManager.getRepository(entity), inject: [constants_1.CURRENT_ENTITY_MANAGER_TOKEN], }; } function CurrentEntityMetadata() { return { provide: constants_2.ENTITY_METADATA_TOKEN, useFactory: (mikroORM) => mikroORM.getMetadata(), inject: [constants_1.CURRENT_DATA_SOURCE_TOKEN], }; } function EntityPropsMap(entities) { return { provide: constants_1.ENTITY_MAP_PROPS, inject: [constants_2.ENTITY_METADATA_TOKEN, constants_1.GLOBAL_MODULE_OPTIONS_TOKEN], useFactory: (metadataStorage, config) => { const mapProperty = new Map(); const arrayConfig = config.options.arrayType; for (const item of entities) { const metadata = metadataStorage.get(item); const className = (0, helper_1.getEntityName)(item); mapProperty.set(item, { props: (0, orm_helper_1.getProps)(metadata), propsType: (0, orm_helper_1.getPropsType)(metadata, arrayConfig), propsNullable: (0, orm_helper_1.getPropsNullable)(metadata), primaryColumnName: (0, orm_helper_1.getPrimaryColumnName)(metadata), primaryColumnType: (0, orm_helper_1.getPrimaryColumnType)(metadata), typeName: (0, nestjs_shared_1.camelToKebab)(className), className: className, relations: (0, orm_helper_1.getRelation)(metadata), relationProperty: (0, orm_helper_1.getRelationProperty)(metadata), }); } return mapProperty; }, }; } function RunInTransactionFactory() { return { provide: constants_1.RUN_IN_TRANSACTION_FUNCTION, inject: [], useFactory() { return async (callback) => callback(); }, }; } function OrmServiceFactory() { return { provide: constants_1.ORM_SERVICE, useClass: service_1.MicroOrmService, }; } //# sourceMappingURL=index.js.map