@srsl/tools
Version:
JavaScript tools for common interfaces
27 lines (24 loc) • 780 B
JavaScript
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
}