UNPKG

nestjs-typeorm-transactions

Version:

A NestJS module to make transaction management easier across different services

30 lines 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createProviders = exports.getDataSourceInjectionToken = exports.getRepositoryInjectionToken = void 0; const transactional_repository_1 = require("../transactional.repository"); const datasource_storage_1 = require("./datasource-storage"); /** Retrieves repository injection token */ function getRepositoryInjectionToken(entity) { const name = entity instanceof Function ? entity.name : entity.options.name; return `${name}_TransactionalRepository`; } exports.getRepositoryInjectionToken = getRepositoryInjectionToken; /** Retrieves data source injection token */ function getDataSourceInjectionToken(dataSource = datasource_storage_1.DEFAULT_DATASOURCE_NAME) { return `${dataSource}_TransactionalDataSource`; } exports.getDataSourceInjectionToken = getDataSourceInjectionToken; /** Creates providers for all entities */ function createProviders(entities, ds = datasource_storage_1.DEFAULT_DATASOURCE_NAME) { return entities.map((entity) => { return { useFactory: () => { const dataSource = datasource_storage_1.DataSourceStorage.getDataSource(ds); return new transactional_repository_1.TransactionalRepository(dataSource, entity, ds); }, provide: getRepositoryInjectionToken(entity), }; }); } exports.createProviders = createProviders; //# sourceMappingURL=utils.js.map