UNPKG

node-rigorous

Version:
55 lines (44 loc) 1.55 kB
"use strict"; /** * 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 }; };