node-rigorous
Version:
Rigorous Framework
55 lines (44 loc) • 1.55 kB
JavaScript
;
/**
* Autoriser le require dynamique
* Impact -> https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-dynamic-require.md
*/
/* eslint global-require: 0 */
// --> OFF
/* eslint import/no-dynamic-require: 0 */
// --> OFF
var fs = require('fs');
function getFileName(file) {
return file.substr(0, file.indexOf('.'));
}
function isAttributeFile(name) {
return name !== '' && name.indexOf('.js') > -1 && name.indexOf('_v.js') === -1;
}
function isVirtualFile(name) {
return name !== '' && name.indexOf('_v.js') > -1;
}
module.exports = function (attributeModelFolderPath) {
var attributesSchema = {};
var virtuals = {};
fs.readdirSync(attributeModelFolderPath).forEach(function (file) {
try {
// Order matter because virtual file detect has more restricted rules
if (isVirtualFile(file)) {
var fileName = getFileName(file);
var virtualObject = require("".concat(attributeModelFolderPath, "/").concat(fileName))["default"];
virtuals[virtualObject.virtualName] = virtualObject;
} else if (isAttributeFile(file)) {
var _fileName = getFileName(file);
var attributeObject = require("".concat(attributeModelFolderPath, "/").concat(_fileName))["default"];
attributesSchema[_fileName] = attributeObject;
}
} catch (err) {
console.log("Attribute ".concat(file, " failed to load: ").concat(err.toString()));
throw err;
}
});
return {
attributesSchema: attributesSchema,
virtuals: virtuals
};
};