/* ! /servers/dashboard/routers/index.js – Central Gateway Routing Aggregator ? This module dynamically collects and registeres all modular ".router.js" files within the "routers" directory */ // % import nodejs packages const router = require('express').Router(); const path = require('path'); const fs = require('fs'); // % import external dependencies const rootDir = path.resolve(__dirname, '..', '..', '..'); const { dirs } = require(path.resolve(rootDir, 'configuration', 'mapping.js')); // % read router files recursively const routerRoot = path.resolve(dirs.dashboardDir, 'routers'); const routerFiles = fs.readdirSync(routerRoot) .filter(file => /\.router\.js$/.test(file)) .sort((a, b) => { if (a === 'root.router.js') return 1; if (b === 'root.router.js') return -1; return a.localeCompare(b); }); // $ configure used routers routerFiles.forEach(file => { const routerPath = path.resolve(routerRoot, file); router.use(require(routerPath)); }); // § export router module module.exports = router;