From 392dfd024c505f5ae1bbb2f0d3e0793c251a1f35 Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Wed, 13 Jun 2018 00:02:55 +1000 Subject: Utils broken down into seperate files and exports --- src/js/utils/urls.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/js/utils/urls.js (limited to 'src/js/utils/urls.js') diff --git a/src/js/utils/urls.js b/src/js/utils/urls.js new file mode 100644 index 00000000..28323a1c --- /dev/null +++ b/src/js/utils/urls.js @@ -0,0 +1,44 @@ +// ========================================================================== +// URL utils +// ========================================================================== + +import is from './is'; + +/** + * Parse a string to a URL object + * @param {string} input - the URL to be parsed + * @param {boolean} safe - failsafe parsing + */ +export function parseUrl(input, safe = true) { + let url = input; + + if (safe) { + const parser = document.createElement('a'); + parser.href = url; + url = parser.href; + } + + try { + return new URL(url); + } catch (e) { + return null; + } +} + +// Convert object to URLSearchParams +export function buildUrlParams(input) { + if (!is.object(input)) { + return ''; + } + + const params = new URLSearchParams(); + + Object.entries(input).forEach(([ + key, + value, + ]) => { + params.set(key, value); + }); + + return params; +} -- cgit v1.2.3 From 5dddf8b0ec5d0c3ad486eef04ec27d3c089d18b3 Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Wed, 13 Jun 2018 00:56:31 +1000 Subject: Logic cleanup --- src/js/utils/urls.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/js/utils/urls.js') diff --git a/src/js/utils/urls.js b/src/js/utils/urls.js index 28323a1c..89bd77ff 100644 --- a/src/js/utils/urls.js +++ b/src/js/utils/urls.js @@ -27,18 +27,16 @@ export function parseUrl(input, safe = true) { // Convert object to URLSearchParams export function buildUrlParams(input) { - if (!is.object(input)) { - return ''; - } - const params = new URLSearchParams(); - Object.entries(input).forEach(([ - key, - value, - ]) => { - params.set(key, value); - }); + if (is.object(input)) { + Object.entries(input).forEach(([ + key, + value, + ]) => { + params.set(key, value); + }); + } return params; } -- cgit v1.2.3 From 6bff6b317d6adcd9f94c8d4d8ee225d39f784e0f Mon Sep 17 00:00:00 2001 From: Albin Larsson Date: Wed, 13 Jun 2018 22:18:57 +0200 Subject: Remove line breaks in arrays --- src/js/utils/urls.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/js/utils/urls.js') diff --git a/src/js/utils/urls.js b/src/js/utils/urls.js index 89bd77ff..3ebe622e 100644 --- a/src/js/utils/urls.js +++ b/src/js/utils/urls.js @@ -30,10 +30,7 @@ export function buildUrlParams(input) { const params = new URLSearchParams(); if (is.object(input)) { - Object.entries(input).forEach(([ - key, - value, - ]) => { + Object.entries(input).forEach(([key, value]) => { params.set(key, value); }); } -- cgit v1.2.3