Sha256: 94c8e2ada04dad53db1c671dcf917c46222f8d9dcd1fb8710d262d8bde712fcc
Contents?: true
Size: 735 Bytes
Versions: 26
Compression:
Stored size: 735 Bytes
Contents
import * as qs from 'node:querystring'; /** * @typedef ParsedURL * @type {import('.').ParsedURL} */ /** * @typedef Request * @property {string} url * @property {ParsedURL} _parsedUrl */ /** * @param {Request} req * @returns {ParsedURL|void} */ export function parse(req) { let raw = req.url; if (raw == null) return; let prev = req._parsedUrl; if (prev && prev.raw === raw) return prev; let pathname=raw, search='', query; if (raw.length > 1) { let idx = raw.indexOf('?', 1); if (idx !== -1) { search = raw.substring(idx); pathname = raw.substring(0, idx); if (search.length > 1) { query = qs.parse(search.substring(1)); } } } return req._parsedUrl = { pathname, search, query, raw }; }
Version data entries
26 entries across 26 versions & 1 rubygems