diff options
Diffstat (limited to 'app/app.js')
-rw-r--r-- | app/app.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/app/app.js b/app/app.js new file mode 100644 index 0000000..d9cd39c --- /dev/null +++ b/app/app.js @@ -0,0 +1,50 @@ +"use strict"; + +const http = require("http"); +const fs = require("fs"); + +const argon2 = require("argon2"); + +const Router = require("./lib/router"); +const Static = require("./lib/static"); +//const Socket = require("./lib/socket"); +//const pipe = require("./lib/pipe"); +//const otp = require("./lib/otp"); + +if (!fs.existsSync("./logs")) fs.mkdirSync("./logs"); +if (!fs.existsSync("./users")) fs.mkdirSync("./users"); +if (!fs.existsSync("./private")) fs.mkdirSync("./private"); + +Math.clamp = Math.clamp || ((x,l,h) => Math.max(l,Math.min(x,h))); +const PORT = Math.clamp(+process.env.PORT||8080, 1, 65535); +const HOST = process.env.HOST||"0.0.0.0"; + +const server = http.createServer(); +const stat = new Static("./public"); +//const wss = new Socket(server); +const app = new Router(); + +const cors = fn => (req, res, ...rest) => { + res.setHeader("Access-Control-Allow-Origin", "*"); + res.setHeader("Access-Control-Allow-Methods", "GET, POST"); + fn(req, res, ...rest); }; + +const sj = (res, data) => { + res.setHeader("Content-Type", "application/json"); + res.end(JSON.stringify(data)); }; + +//app.get("/", (req, res) => { +// res.writeHead(302, {"Location":"https://alexishovorka.com/"}); +// res.end(); +//}); + +//await argon2.hash(password, {type: argon2.argon2id}); +//await argon2.verify(hash, password); + +server.on("request", (req, res) => { + console.log(`${Date.now()} ${req.method} ${req.url}`); + app.route(req, res) || stat.route(req, res); +}); + +server.listen(PORT, HOST); +console.log(`${Date.now()} Running on http://${HOST}:${PORT}`); |