first commit
This commit is contained in:
49
app_vue/node_modules/@polka/url/build.js
generated
vendored
Normal file
49
app_vue/node_modules/@polka/url/build.js
generated
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
const qs = require('querystring');
|
||||
|
||||
/**
|
||||
* @typedef ParsedURL
|
||||
* @type {import('.').ParsedURL}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef Request
|
||||
* @property {string} url
|
||||
* @property {ParsedURL} _parsedUrl
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {Request} req
|
||||
* @returns {ParsedURL|void}
|
||||
*/
|
||||
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, hash;
|
||||
|
||||
if (raw.length > 1) {
|
||||
let idx = raw.indexOf('#', 1);
|
||||
|
||||
if (idx !== -1) {
|
||||
hash = raw.substring(idx);
|
||||
pathname = raw.substring(0, idx);
|
||||
}
|
||||
|
||||
idx = pathname.indexOf('?', 1);
|
||||
|
||||
if (idx !== -1) {
|
||||
search = pathname.substring(idx);
|
||||
pathname = pathname.substring(0, idx);
|
||||
if (search.length > 1) {
|
||||
query = qs.parse(search.substring(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return req._parsedUrl = { pathname, search, query, hash, raw };
|
||||
}
|
||||
|
||||
exports.parse = parse;
|
Reference in New Issue
Block a user