UNPKG

nodejs-rigorous

Version:
67 lines (52 loc) 2.25 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 isModelDirectory(directory) { return directory.indexOf('.') === -1 && directory.indexOf('__') === -1; } function isRouteFile(file) { return file.indexOf('.js') > -1 && file.indexOf('__') === -1; } function isValidRouteFile(name) { return name !== '' && (name.indexOf('post_') > -1 || name.indexOf('get_') > -1 || name.indexOf('update_') > -1 || name.indexOf('put_') > -1); } function getRoutelFileName(file) { return file.substr(0, file.length - 3); // 3 = .js } module.exports = function (PATH_ROUTES, apiVersion, app) { return new Promise(function (resolve, reject) { fs.readdirSync(PATH_ROUTES).forEach(function (directory) { if (isModelDirectory(directory)) { fs.readdirSync("".concat(PATH_ROUTES, "/").concat(directory)).forEach(function (file) { if (isRouteFile(file)) { var name = getRoutelFileName(file); try { if (isValidRouteFile(name)) { // './post_me.update.byid.title' var indexDelimiter = name.indexOf('_'); // post_me.update.... var typeRequest = name.substr(0, indexDelimiter); // 'post' var partialRouteName = name.substr(indexDelimiter + 1, name.length).split('.').join('/'); // me.update... -> ['me', 'update', 'byid', 'swit_id'] -> me/update/byid/title var routeName = "/api/v".concat(apiVersion, "/").concat(directory, "/").concat(partialRouteName); // /switlist/me/update/byid/title var Route = require("".concat(PATH_ROUTES, "/").concat(directory, "/").concat(name)); console.log('Route ', routeName); new Route().routeIt(app, typeRequest, routeName); } } catch (err) { console.log("Model ".concat(name, " failed to load:'"), err); return reject(err); } } return null; }); } }); return resolve(); }); };