@randombenj/db
Version:
Display, search and copy LXD-images using a web interface.
42 lines (38 loc) • 1.28 kB
text/typescript
import { PostgresConnectionOptions } from 'typeorm/driver/postgres/PostgresConnectionOptions';
import { SqliteConnectionOptions } from 'typeorm/driver/sqlite/SqliteConnectionOptions';
import { IDatabaseSettings } from '.';
import { LogService } from '../log/log.service';
import * as models from '../models';
/**
* Returns the database configuration
* depending on the settings of
* LXDHubAPI class and the set
* NODE_ENV environment variable.
*/
export function getOrmConfig(settings?: IDatabaseSettings)
: PostgresConnectionOptions | SqliteConnectionOptions {
const entities = Object.values(models);
if (process.env.NODE_ENV !== 'test') {
return {
type: 'postgres',
host: settings.host,
port: settings.port,
username: settings.username,
password: settings.password,
database: settings.database,
entities,
synchronize: true,
logging: true,
logger: new LogService(settings.logLevel)
};
} else {
return {
type: 'sqlite',
database: './db/test-db.sql',
entities,
synchronize: true,
logging: false,
logger: new LogService()
};
}
}