35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import {Options} from '@mikro-orm/core';
|
|
import {PostgreSqlDriver} from "@mikro-orm/postgresql";
|
|
import {EnvVars, getEnvVar, getNumericEnvVar} from "./util/envvars";
|
|
import {SqliteDriver} from "@mikro-orm/sqlite";
|
|
|
|
const entities = ['dist/**/*.entity.js'];
|
|
const entitiesTs = ['src/**/*.entity.ts'];
|
|
function config(testingMode: boolean = false): Options {
|
|
if (testingMode) {
|
|
return {
|
|
driver: SqliteDriver,
|
|
dbName: getEnvVar(EnvVars.DbName),
|
|
entities: entities,
|
|
entitiesTs: entitiesTs,
|
|
|
|
// Workaround: vitest: `TypeError: Unknown file extension ".ts"` (ERR_UNKNOWN_FILE_EXTENSION)
|
|
// (see https://mikro-orm.io/docs/guide/project-setup#testing-the-endpoint)
|
|
dynamicImportProvider: id => import(id)
|
|
};
|
|
} else {
|
|
return {
|
|
driver: PostgreSqlDriver,
|
|
host: getEnvVar(EnvVars.DbHost),
|
|
port: getNumericEnvVar(EnvVars.DbPort),
|
|
dbName: getEnvVar(EnvVars.DbName),
|
|
user: getEnvVar(EnvVars.DbUsername),
|
|
password: getEnvVar(EnvVars.DbPassword),
|
|
entities: entities,
|
|
entitiesTs: entitiesTs,
|
|
debug: true
|
|
};
|
|
}
|
|
}
|
|
|
|
export default config;
|