UNPKG

@urltools/modify-url

Version:
47 lines (46 loc) 1.55 kB
"use strict"; var __spreadArray = (this && this.__spreadArray) || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) to[j] = from[i]; return to; }; Object.defineProperty(exports, "__esModule", { value: true }); var url_1 = require("url"); var modifyPickOmitEntries = function (entries, type, value) { switch (type) { case 'pick': return entries.filter(function (_a) { var key = _a[0]; return value.includes(key); }); case 'omit': return entries.filter(function (_a) { var key = _a[0]; return !value.includes(key); }); } }; var modifyReplaceAppendEntries = function (entries, type, value) { switch (type) { case 'replace': return Object.entries(value); case 'append': return __spreadArray(__spreadArray([], entries), Object.entries(value)); } }; var searchParams = function (url, config) { var _a = config, type = _a.type, value = _a.value; var entries = Array.from(new url_1.URLSearchParams(url.search).entries()); switch (type) { case 'pick': case 'omit': entries = modifyPickOmitEntries(entries, type, value); break; case 'replace': case 'append': entries = modifyReplaceAppendEntries(entries, type, value); } url.search = new url_1.URLSearchParams(entries).toString(); return url; }; exports.default = searchParams;