-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
35 lines (29 loc) · 955 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import fs from 'fs-extra';
import path from 'path';
import Sequelize from 'sequelize';
import { dirname, filename } from '../helpers/utilities';
const env = process.env.NODE_ENV || 'development';
import configs from '../config/sequelize';
const config = configs[env];
const db = {};
const sequelize = new Sequelize(config.database, config.username, config.password, config);
const __filename = filename(import.meta);
const __dirname = dirname(import.meta);
const basename = path.basename(__filename);
fs
.readdirSync(__dirname)
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = sequelize.import(path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
export default db;