@softkit/typeorm
Version:
This library has some useful utilities for typeorm, entities, repositories, useful subscribers, interceptors.
45 lines • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AppDataSource = void 0;
const tslib_1 = require("tslib");
const common_1 = require("@nestjs/common");
const path = tslib_1.__importStar(require("node:path"));
require("reflect-metadata");
const typeorm_1 = require("typeorm");
const db_1 = require("../config/db");
const core_1 = require("@nestjs/core");
const config_1 = require("@softkit/config");
const validation_1 = require("@softkit/validation");
const sourceDir = path.join(process.cwd(),
// todo figure out how to improve it using nx
`apps/${process.env['MIGRATION_APP_NAME']}/src`);
class RootConfig {
}
tslib_1.__decorate([
(0, validation_1.ValidateNestedProperty)({ classType: db_1.DbConfig }),
tslib_1.__metadata("design:type", db_1.DbConfig)
], RootConfig.prototype, "db", void 0);
let DatabaseMigrationModule = class DatabaseMigrationModule {
};
DatabaseMigrationModule = tslib_1.__decorate([
(0, common_1.Module)({
imports: [(0, config_1.setupYamlBaseConfigModule)(`${sourceDir}/app`, RootConfig)],
})
], DatabaseMigrationModule);
async function bootstrap() {
const app = await core_1.NestFactory.createApplicationContext(DatabaseMigrationModule, {
logger: ['warn', 'error', 'fatal', 'verbose'],
});
return app.get(RootConfig).db;
}
const appDir = path.join(sourceDir, 'app');
exports.AppDataSource = bootstrap().then((db) => {
return new typeorm_1.DataSource({
...db,
entities: [path.join(appDir, 'database/entities/**/*{.ts,.js}')],
migrations: [
path.join(appDir, 'database/migrations/**/!(*index){.ts,.js}'),
],
});
});
//# sourceMappingURL=migration-data-source.js.map