summaryrefslogtreecommitdiff
path: root/app/utils.js
blob: 2ff2b9c26249f48f99b97bee987a2eba6b6409c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"use strict";

const ct = module.exports.ct = (res, mime, code, head) =>
  res.writeHead(code||200, Object.apply({"Content-Type": mime||"application/json"}, head));
module.exports.sj = (res, data, {code, head}={}) => { ct(res, null, code, head); res.end(JSON.stringify(data)); }

module.exports.res204 = (res) => { res.statusCode = 204; res.end(); }
module.exports.err400 = (res, msg) => { ct(res, "text/plain", 400); res.end(""+(msg||"400 Bad Request")); }
module.exports.err401 = (res, msg) => { ct(res, "text/plain", 401); res.end(""+(msg||"401 Unauthorized")); }
module.exports.err403 = (res, msg) => { ct(res, "text/plain", 403); res.end(""+(msg||"403 Forbidden")); }
module.exports.err404 = (res, msg) => { ct(res, "text/plain", 404); res.end(""+(msg||"404 Not Found")); }
module.exports.err500 = (res, msg) => { ct(res, "text/plain", 500); res.end(""+(msg||"500 Internal Server Error"));
                                        console.log(Date.now+" [ERROR] 500"); }

module.exports.cors = fn => (req, res, ...rest) => {
  res.setHeader("Access-Control-Allow-Origin", "*");
  res.setHeader("Access-Control-Allow-Methods", "GET, POST");
  fn(req, res, ...rest); };

module.exports.parseCookies = req =>
  req.headers.cookie?.split(";")
    .map(c => c.split("=").map(s => decodeURIComponent(s.trim())))
    .reduce((a,c) => (a[c[0]]=c[1],a), {});