ihub-framework-js
Version:
Legacy version of iHub Framework written in Javascript
40 lines (32 loc) • 1.01 kB
JavaScript
/**
* Load all files (mongoose models) inside a folder
*/
/* eslint-disable global-require */
/* eslint-disable import/no-dynamic-require */
const path = require('path');
const fs = require('fs');
const log = require('../logger');
module.exports = (folder) => {
if (!fs.existsSync(folder)) {
log.debug(`${folder} not found`);
return;
}
const componentModels = fs.readdirSync(folder);
componentModels.forEach((model) => {
/* Debug */
log.debug(`Loading model '${folder}/${model}'`);
const modelPath = path.join(folder, model);
const rResolve = require.resolve(modelPath);
const modelRequired = require(modelPath);
if (typeof modelRequired.base === 'undefined' || typeof modelRequired.base.Mongoose !== 'function') {
log.error(`${folder}/${model} not a mongoose scheme`);
try {
if (require.cache[rResolve]) {
delete require.cache[rResolve];
}
} catch (err) {
log.error(err.message || err);
}
}
});
};