UNPKG

@softkit/typeorm

Version:

This library has some useful utilities for typeorm, entities, repositories, useful subscribers, interceptors.

39 lines 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupTypeormModule = void 0; const typeorm_1 = require("@nestjs/typeorm"); const typeorm_2 = require("typeorm"); const common_1 = require("typeorm-transactional/dist/common"); const typeorm_transactional_1 = require("typeorm-transactional"); const setup_typeorm_options_1 = require("./vo/setup-typeorm-options"); function setupTypeormModule(options) { const optionsWithDefault = { ...setup_typeorm_options_1.DEFAULT_SETUP_TYPEORM_OPTIONS, ...options, }; return typeorm_1.TypeOrmModule.forRootAsync({ useClass: optionsWithDefault.optionsFactory, dataSourceFactory: async (baseOptions) => { /* istanbul ignore next */ if (!baseOptions) { // this will be a startup error we don't need to cover it with tests throw new Error(`Can not initialize data source, options are empty`); } // it's needed only for e2e tests const existDatasource = (0, common_1.getDataSourceByName)('default'); if (existDatasource) { return existDatasource; } const options = { ...baseOptions, // eslint-disable-next-line @typescript-eslint/ban-types migrations: optionsWithDefault.migrations, }; const dataSource = new typeorm_2.DataSource(options); (0, typeorm_transactional_1.addTransactionalDataSource)(dataSource); return await dataSource.initialize(); }, }); } exports.setupTypeormModule = setupTypeormModule; //# sourceMappingURL=setup-typeorm-module.js.map