UNPKG

light-ning

Version:

(ALPHA) framework without dependecies...

72 lines (55 loc) 1.49 kB
import Router from './Router'; import Response from './Response'; import Controller from './Controller'; import http from 'http'; import logger from './logger'; export { Router, Response, Controller as BaseController, }; class App { config; port = 6060; prefix = ''; base; portMessage = true; guardian; run() { let controllers; let base = this.base = `${process.cwd()}/${this.prefix}`; controllers = `${base}/controllers`; try { require(`${base}/routes/index.js`); } catch(e) { throw new Error(`cannot find ${base}/routes, or routes contains fatal error`); } try { this.config = require(`${base}/config`); if (this.config) this.port = this.config.port; } catch(e) { console.warn('Config file not found. If you want to use light-ning preferences, create config beside file where are you use "app.run()".') } Router.setControllersPath(controllers); Router.setGuardian(this.guardian); if (this.portMessage) { this.portMessage = false; console.info(``); console.info(`PORT: ${this.port}`); console.info(``); } return http.createServer((req, res) => { logger(req, res); res.setHeader('Content-Type', 'application/json'); Router.route(req, res); }).listen(this.port); } set(key, val) { this[key] = val; } get(key) { if (this[key]) return this[key]; else return undefined; } } export default new App();