mirror of
https://codeberg.org/buzzcode2007/FCC-Project-URLShortener.git
synced 2025-05-21 03:06:34 +00:00
Import and modify URL tester
from https://codeberg.org/buzzcode2007/ShopAI-Extension/src/branch/development-chromium/src/scripts/utils/URLs.js
This commit is contained in:
parent
31e074a5a8
commit
33a4463994
1 changed files with 54 additions and 0 deletions
54
scripts/utilities/URLs.js
Normal file
54
scripts/utilities/URLs.js
Normal file
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
Custom URL tools for ShopAI
|
||||
*/
|
||||
|
||||
class URLs {
|
||||
/*
|
||||
This constructor creates a URL object and is the same as new URL().
|
||||
|
||||
@param {string} PATH the URL
|
||||
*/
|
||||
constructor (PATH) {
|
||||
const URL_OBJECT = new URL(PATH);
|
||||
|
||||
/* Copy the object's data into this object. */
|
||||
(Object.keys(URL_OBJECT)).forEach((NAME, VALUE) => {
|
||||
this[NAME] = VALUE;
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
Remove the protocol from the URL.
|
||||
|
||||
@param {string} URL the URL to clean
|
||||
*/
|
||||
static clean(PATH) {
|
||||
return((PATH.trim().replace(/(^\w+:|^)\/\//, ``).split(`?`))[0]);
|
||||
}
|
||||
|
||||
/*
|
||||
Check if the URL is valid through checking its patterns.
|
||||
|
||||
@param {string} location the URL to check
|
||||
@return {boolean} the state
|
||||
*/
|
||||
static test(location) {
|
||||
let STATE = false;
|
||||
|
||||
// Convert to URL object.
|
||||
|
||||
STATE = !!(new URL(location));
|
||||
|
||||
// Fail the URLs that claim to be invalid.
|
||||
location.split(`.`).forEach((ENTRY) => {
|
||||
[`invalidTLD`].forEach((FRAGMENT) => {
|
||||
STATE = (STATE) ? !(ENTRY.includes(FRAGMENT)) : false;
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
return STATE;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {URLs};
|
Loading…
Add table
Add a link
Reference in a new issue