Do not throw an exception when URI parsing fails

This commit is contained in:
Pavel Djundik 2017-08-14 15:18:41 +03:00 committed by Pavel Djundik
parent 28e32dc558
commit e4ee3fbb3c

View file

@ -23,8 +23,16 @@ function findLinks(text) {
// See https://medialize.github.io/URI.js/docs.html#static-withinString // See https://medialize.github.io/URI.js/docs.html#static-withinString
// In our case, we store each URI encountered in a result array. // In our case, we store each URI encountered in a result array.
URI.withinString(text, function(url, start, end) { URI.withinString(text, function(url, start, end) {
// Extract the scheme of the URL detected, if there is one let parsedScheme;
const parsedScheme = URI(url).scheme().toLowerCase();
try {
// Extract the scheme of the URL detected, if there is one
parsedScheme = URI(url).scheme().toLowerCase();
} catch (e) {
// URI may throw an exception for malfored urls,
// as to why withinString finds these in the first place is a mystery
return;
}
// Check if the scheme of the detected URL matches a common one above. // Check if the scheme of the detected URL matches a common one above.
// In a URL like `foo..http://example.com`, the scheme would be `foo..http`, // In a URL like `foo..http://example.com`, the scheme would be `foo..http`,