Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion __tests__/Str-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,9 @@ describe('Str.sanitizeURL', () => {
expect(Str.sanitizeURL('google.com')).toBe('https://google.com');
expect(Str.sanitizeURL('Https://google.com')).toBe('https://google.com');
expect(Str.sanitizeURL('https://GOOgle.com')).toBe('https://google.com');
expect(Str.sanitizeURL('FOO.com/blah_BLAH')).toBe('https://foo.com/blah_BLAH');
+expect(Str.sanitizeURL('FOO.com/blah_BLAH', 'http')).toBe('http://foo.com/blah_BLAH');
+expect(Str.sanitizeURL('example.com', 'http')).toBe('http://example.com');
expect(Str.sanitizeURL('https://example.com', 'http')).toBe('http://example.com');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
expect(Str.sanitizeURL('https://example.com', 'http')).toBe('http://example.com');
expect(Str.sanitizeURL('https://example.com', 'http')).toBe('https://example.com');

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Krishna2323 Let's finish it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

expect(Str.sanitizeURL('http://FOO.com/blah_BLAH')).toBe('http://foo.com/blah_BLAH');
expect(Str.sanitizeURL('HTtp://FOO.com/blah_BLAH')).toBe('http://foo.com/blah_BLAH');
});
Expand Down
5 changes: 3 additions & 2 deletions lib/str.ts
Original file line number Diff line number Diff line change
Expand Up @@ -971,15 +971,16 @@ const Str = {
* Formats a URL by converting the domain name to lowercase and adding the missing 'https://' protocol.
*
* @param url The URL to be formatted
* @param defaultScheme The Scheme to use in the URL
* @returns The formatted URL
*/
sanitizeURL(url: string): string {
sanitizeURL(url: string, defaultScheme = 'https'): string {
const regex = new RegExp(`^${UrlPatterns.URL_REGEX}$`, 'i');
const match = regex.exec(url);
if (!match) {
return url;
}
const website = match[3] ? match[2] : `https://${match[2]}`;
const website = match[3] ? match[2] : `${defaultScheme}://${match[2]}`;
return website.toLowerCase() + this.cutBefore(match[1], match[2]);
},

Expand Down
Loading