UNPKG

@srsl/tools

Version:

JavaScript tools for common interfaces

27 lines (24 loc) 780 B
const fs = require('fs') const path = require('path') const readModelFilenamesFromPath = (dirPath) => ( fs .readdirSync(dirPath) .filter(file => (file.indexOf('.') !== 0) && (file !== path.basename(module.filename)) && (file.slice(-3) === '.js') ) ) module.exports = ({ modelsPath, sequelize }) => { const importSequelizeModel = (filename) => sequelize.import(path.resolve(modelsPath, filename)) const modelFilenames = readModelFilenamesFromPath(modelsPath) const models = modelFilenames.map(filename => importSequelizeModel(filename)) const db = {} models.forEach(model => (db[model.name] = model)) Object.keys(db).forEach(modelName => { if (db[modelName].associate) { db[modelName].associate(db) } }) return db }