From 2a996f6fda36e00ca82902db6f98c95f31d308ef Mon Sep 17 00:00:00 2001 From: Thomas Jaggi Date: Tue, 10 Oct 2023 11:22:56 +0200 Subject: [PATCH] Refactor search param handling to work with old Node versions --- src/lib/transpile-decl.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/transpile-decl.js b/src/lib/transpile-decl.js index e4d767a..433ac61 100644 --- a/src/lib/transpile-decl.js +++ b/src/lib/transpile-decl.js @@ -47,7 +47,7 @@ export default function transpileDecl(result, promises, decl, opts, cache) { // // param()s const params = { - ...Object.fromEntries(url.searchParams), + ...paramsFromSearchParams(url.searchParams), ...paramsFromNodes( node.nodes.slice(2, -1) ) @@ -143,6 +143,20 @@ function paramsFromNodes(nodes) { return params; } +// params from URL search params +function paramsFromSearchParams(searchParams) { + // valid params as an object + const params = {}; + + // for each search param + searchParams.forEach((value, key) => { + params[key] = value; + }); + + // return valid params as an object + return params; +} + // whether the node is a filled param() function isFilledParam(node) { return node.type === 'func' && node.value === 'param' && node.nodes.length === 4 && node.nodes[1].type === 'word';