Refactor units to be generic; start bundles; start app index.ts
This commit is contained in:
31
orm/src/DatabaseUnit.ts
Normal file
31
orm/src/DatabaseUnit.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import LifecycleUnit from '../../lib/src/lifecycle/Unit.ts'
|
||||
import Config from '../../lib/src/unit/Config.ts'
|
||||
import {Unit} from '../../lib/src/lifecycle/decorators.ts'
|
||||
import Database from './service/Database.ts'
|
||||
|
||||
@Unit()
|
||||
export class DatabaseUnit extends LifecycleUnit {
|
||||
constructor(
|
||||
protected config: Config,
|
||||
protected db: Database,
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
public async up() {
|
||||
const connections: { [key: string]: any } = this.config.get('db.connections')
|
||||
|
||||
for ( const conn_name in connections ) {
|
||||
if ( !connections.hasOwnProperty(conn_name) ) continue
|
||||
const config = connections[conn_name]
|
||||
|
||||
switch(config.type) {
|
||||
case 'postgres':
|
||||
await this.db.postgres(conn_name, config)
|
||||
break
|
||||
default:
|
||||
throw new TypeError(`Invalid database driver type: ${config.type}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user