@modern-js/runtime-utils
Version:
A Progressive React Framework for modern web development.
42 lines (41 loc) • 1.15 kB
JavaScript
import "node:module";
function parseQuery(req) {
const query = {};
const { url } = req;
const q = url.split('?')[1];
if (q) {
const search = new URLSearchParams(q);
search.forEach((v, k)=>{
query[k] = v;
});
}
return query;
}
function parseHeaders(request) {
const headersData = {};
request.headers.forEach((value, key)=>{
headersData[key] = value;
});
return headersData;
}
function getPathname(request) {
const match = request.url.match(/^https?:\/\/[^/]+(\/[^?]*)/);
return match ? match[1] : '/';
}
function getHost(request) {
const { headers } = request;
let host = headers.get('X-Forwarded-Host');
if (!host) host = headers.get('Host');
host = host?.split(/\s*,\s*/, 1)[0] || 'undefined';
return host;
}
function parseCookie(req) {
const _cookie = req.headers.get('Cookie');
const cookie = {};
_cookie?.trim().split(';').forEach((item)=>{
const [k, v] = item.trim().split('=');
if (k) cookie[k] = v;
});
return cookie;
}
export { getHost, getPathname, parseCookie, parseHeaders, parseQuery };