rjweb-server
Version:
Easy and Robust Way to create a Web Server with Many Easy-to-use Features in NodeJS
33 lines (32 loc) • 1.01 kB
JavaScript
import ValueCollection from "../classes/valueCollection";
const trimString = (str) => {
let start = 0, end = str.length - 1;
while (start < end && str[start] === " ") {
start++;
}
while (end > start && str[end] === " ") {
end--;
}
return str.substring(start, end + 1);
};
function parseKV(keyValue, equal = "=", splitter = "&", decode = decodeURIComponent) {
const values = new ValueCollection();
if (!keyValue)
return values;
let progress = 0;
while (progress < keyValue.length) {
let splitterPos = keyValue.indexOf(splitter, progress);
if (splitterPos === -1)
splitterPos = keyValue.length;
let equalPos = keyValue.slice(progress, splitterPos).indexOf(equal);
if (equalPos === -1)
equalPos = splitterPos;
values.set(trimString(keyValue.slice(progress, progress + equalPos)), decode(keyValue.slice(progress + equalPos + 1, splitterPos)));
progress = splitterPos + 1;
}
return values;
}
export {
parseKV as default,
trimString
};