nestjs-typeorm-transactions
Version:
A NestJS module to make transaction management easier across different services
30 lines • 1.46 kB
JavaScript
;
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