diff options
author | Joel Kronqvist <work.joelkronqvist@pm.me> | 2022-03-11 20:46:06 +0200 |
---|---|---|
committer | Joel Kronqvist <work.joelkronqvist@pm.me> | 2022-03-11 20:46:06 +0200 |
commit | 080c5819d87b933816d724a83f3bf4f1686770a7 (patch) | |
tree | 4a2ccc68b27edf7d4cbc586c932cc7542b655e19 /node_modules/istanbul-reports/lib/html-spa/src/routing.js | |
parent | 5ac7049a9d30733165cc212dee308163c2a14644 (diff) | |
parent | d003b82235a9329f912522a2f70aa950dfce4998 (diff) | |
download | LYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.tar.gz LYLLRuoka-080c5819d87b933816d724a83f3bf4f1686770a7.zip |
Merge branch 'master' of https://github.com/JoelHMikael/FoodJS
Updating remote changes
Diffstat (limited to 'node_modules/istanbul-reports/lib/html-spa/src/routing.js')
-rw-r--r-- | node_modules/istanbul-reports/lib/html-spa/src/routing.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/node_modules/istanbul-reports/lib/html-spa/src/routing.js b/node_modules/istanbul-reports/lib/html-spa/src/routing.js new file mode 100644 index 0000000..a4d0bc7 --- /dev/null +++ b/node_modules/istanbul-reports/lib/html-spa/src/routing.js @@ -0,0 +1,52 @@ +exports.setLocation = function setLocation( + isReplace, + activeSort, + isFlat, + activeFilters, + fileFilter, + expandedLines +) { + const params = [ + activeSort.sortKey, + activeSort.order, + isFlat, + activeFilters.low, + activeFilters.medium, + activeFilters.high, + encodeURIComponent(fileFilter), + expandedLines.map(encodeURIComponent).join(',') + ]; + const newUrl = `#${params.join('/')}`; + + if (newUrl === location.hash) { + return; + } + + window.history[isReplace ? 'replaceState' : 'pushState'](null, '', newUrl); +}; + +exports.decodeLocation = function decodeLocation() { + const items = location.hash.substr(1).split('/'); + if (items.length !== 8) { + return null; + } + + try { + return { + activeSort: { + sortKey: items[0], + order: items[1] + }, + isFlat: JSON.parse(items[2]), + activeFilters: { + low: JSON.parse(items[3]), + medium: JSON.parse(items[4]), + high: JSON.parse(items[5]) + }, + fileFilter: decodeURIComponent(items[6]), + expandedLines: items[7].split(',').map(decodeURIComponent) + }; + } catch (e) { + return null; + } +}; |