UNPKG

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
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 };