UNPKG

@modern-js/runtime-utils

Version:

A Progressive React Framework for modern web development.

42 lines (41 loc) 1.15 kB
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 };