UNPKG

@scefira/dfw-nodejs

Version:
50 lines (36 loc) 1.47 kB
import DFWModule from "./DFWModule."; import { DFWScheme } from "../.."; import { Sequelize , SequelizeOptions } from "sequelize-typescript"; import path from "path"; import DFWInstance from "../system/DFWInstance"; export default class DatabaseManager extends DFWModule{ private databases:{[id:string]:Database} = {}; public constructor(instance:DFWInstance){ super(instance); var cfgkeys = Object.keys(instance.config.databases); cfgkeys.forEach((key:string) => { var dbcfg = instance.config.databases[key]; this.databases[key] = new Database(dbcfg); }); } public async touchAsync(dfw:DFWScheme){ } public getDatabase(name:string = "default"){ return this.databases[name]; } } export class Database{ public connection: Sequelize; public constructor(config:SequelizeOptions){ config.modelMatch = (filename,member) =>{ console.log("-" + filename); return filename.substring(0, filename.indexOf('.model')) === member.toLowerCase(); } this.connection = new Sequelize(config); if(process.env.NODE_ENV === "dfw_development") { this.connection.addModels([path.join(__dirname, '../../model', "/*.model.ts")]); }else{ this.connection.addModels([path.join(__dirname, '../../model', "/*.model.js")]); } } }