const buildPages = require('./buildpages') // ! Maybe write a library to create html elements class Controller { constructor(data) { this.baseURL = data.baseURL this.data = { req: data.req, res: data.res } this.buildPages = buildPages({ baseURL: data.baseURL, routes: new Map() }) } Init(data) { const template = this.#GetTemplate(data) return template } #GetTemplate(data) { const query = new Map() Object.entries(data.req.query).forEach(([key, value]) => { query.set(key, value) }) const object = {} if (query.size > 0) { object.req = data.req object.res = data.res object.path = data.path object.query = query object.baseURL = data.baseURL const output = JSON.stringify(this.buildPages.Build(object)) return output } else { object.req = data.req object.res = data.res object.path = data.path object.query = null object.baseURL = data.baseURL return this.buildPages.Template(object) } } #GetRoutes() { // ! Check if output is a `Map()` const moduleObject = require(path.resolve(`${__dirname}/../config/routes`)) return moduleObject /* fs.readdirSync(path.resolve(`${__dirname}`)) const object = { modulesDir: path.resolve(`${__dirname}/../routes`), map: new Map() } object.files = fs.readdirSync(object.modulesDir).filter(file => file.endsWith('.js')) const routes = new Map() return */ } } module.exports = (x) => {return new Controller(x)}