const fs = require('fs') const path = require('path') class Routes { constructor() { this.routes = new Map() this.pages = new Map() this.allPages = new Map() this.#SetRoutes() this.#SetPages() this.#SetAllPages() } GetRoutes() {return this.routes} GetPages() {return this.pages} GetAllPages() {return this.allPages} #SetRoutes() { const object = {routesDir: path.resolve(`${__dirname}/../routes`)} this.routes = this.#ReadFiles(object) } #SetPages() { const object = {routesDir: path.resolve(`${__dirname}/../pages/nested`)} this.pages = this.#ReadFiles(object) } #SetAllPages() { const object = {routesDir: path.resolve(`${__dirname}/../pages`)} this.allPages = this.#ReadFiles(object) } #ReadFiles(object) { const map = new Map() object.files = fs.readdirSync(object.routesDir).filter(file => file.endsWith('.js')) object.files.forEach(file => { try { const name = file.replace('.js', '') const routePath = path.join(object.routesDir, file) const routeObject = require(routePath) map.set(name, routeObject) } catch (err) { console.error(err) } }) return map } } module.exports = () => {return new Routes()}