From cbc07a9ddeb49388945db459643623e4c23c690d Mon Sep 17 00:00:00 2001 From: Corentin Junod Date: Wed, 26 Mar 2025 17:50:28 +0100 Subject: [PATCH 1/5] Handle strings that are URL --- datatypes.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/datatypes.js b/datatypes.js index 8f6f50a..46d2bd4 100644 --- a/datatypes.js +++ b/datatypes.js @@ -26,7 +26,12 @@ const DataTypes = { }, string(str, unit = '') { - return _.unit(_.e(str).replace(/(\r\n|\r|\n){2,}/g, '
'), unit); + try { + const url = new URL(string); + return _.toLink(url.toString(), url.toString()) + } catch (_) { + return _.unit(_.e(str).replace(/(\r\n|\r|\n){2,}/g, '
'), unit); + } }, boolean(bool) { From ca7d3ace3082e40e58a6568a6a978ee36963cee5 Mon Sep 17 00:00:00 2001 From: Corentin Junod Date: Wed, 26 Mar 2025 18:06:17 +0100 Subject: [PATCH 2/5] Handle strings that are URL --- datatypes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datatypes.js b/datatypes.js index 46d2bd4..de4c49e 100644 --- a/datatypes.js +++ b/datatypes.js @@ -29,7 +29,7 @@ const DataTypes = { try { const url = new URL(string); return _.toLink(url.toString(), url.toString()) - } catch (_) { + } catch (exception) { return _.unit(_.e(str).replace(/(\r\n|\r|\n){2,}/g, '
'), unit); } }, From f478632750b69795dbbd3d6b866f0a29465fa6e6 Mon Sep 17 00:00:00 2001 From: Corentin Junod Date: Wed, 26 Mar 2025 18:09:14 +0100 Subject: [PATCH 3/5] Handle strings that are URL --- datatypes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/datatypes.js b/datatypes.js index de4c49e..f322cc9 100644 --- a/datatypes.js +++ b/datatypes.js @@ -27,7 +27,7 @@ const DataTypes = { string(str, unit = '') { try { - const url = new URL(string); + const url = new URL(str); return _.toLink(url.toString(), url.toString()) } catch (exception) { return _.unit(_.e(str).replace(/(\r\n|\r|\n){2,}/g, '
'), unit); From ca3e25205e03750ff64cdedd8e46b95a1bad33a5 Mon Sep 17 00:00:00 2001 From: Corentin Junod Date: Wed, 26 Mar 2025 18:18:57 +0100 Subject: [PATCH 4/5] Handle only links that starts with http or https --- datatypes.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/datatypes.js b/datatypes.js index f322cc9..f60d0bb 100644 --- a/datatypes.js +++ b/datatypes.js @@ -26,12 +26,13 @@ const DataTypes = { }, string(str, unit = '') { - try { - const url = new URL(str); - return _.toLink(url.toString(), url.toString()) - } catch (exception) { - return _.unit(_.e(str).replace(/(\r\n|\r|\n){2,}/g, '
'), unit); + if(str.startsWith("http://") || str.startsWith("https://")){ + try { + const url = new URL(str); + return _.toLink(url.toString(), url.toString()) + } catch (exception) {} } + return _.unit(_.e(str).replace(/(\r\n|\r|\n){2,}/g, '
'), unit); }, boolean(bool) { From b5a038e8a8f64418119be54c764e2de771eac736 Mon Sep 17 00:00:00 2001 From: Corentin Junod Date: Tue, 24 Jun 2025 18:11:39 +0200 Subject: [PATCH 5/5] Update datatypes.js Co-authored-by: Matthias Mohr --- datatypes.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/datatypes.js b/datatypes.js index f60d0bb..62a98bb 100644 --- a/datatypes.js +++ b/datatypes.js @@ -27,10 +27,10 @@ const DataTypes = { string(str, unit = '') { if(str.startsWith("http://") || str.startsWith("https://")){ - try { - const url = new URL(str); - return _.toLink(url.toString(), url.toString()) - } catch (exception) {} + const url = URL.parse(str); + if (url) { + return _.toLink(url.toString()); + } } return _.unit(_.e(str).replace(/(\r\n|\r|\n){2,}/g, '
'), unit); },