aboutsummaryrefslogtreecommitdiff
path: root/node_modules/istanbul-reports/lib/html-spa/src/routing.js
diff options
context:
space:
mode:
authorJoel Kronqvist <work.joelkronqvist@pm.me>2022-03-11 20:46:06 +0200
committerJoel Kronqvist <work.joelkronqvist@pm.me>2022-03-11 20:46:06 +0200
commit080c5819d87b933816d724a83f3bf4f1686770a7 (patch)
tree4a2ccc68b27edf7d4cbc586c932cc7542b655e19 /node_modules/istanbul-reports/lib/html-spa/src/routing.js
parent5ac7049a9d30733165cc212dee308163c2a14644 (diff)
parentd003b82235a9329f912522a2f70aa950dfce4998 (diff)
downloadLYLLRuoka-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.js52
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;
+ }
+};