in src/entityExplorer.ts [288:331]
async function validateURL(url: string): Promise<[boolean, string]> {
const baseOptions = {
json: true,
resolveWithFullResponse: true,
};
const falseReturn: [boolean, string] = [false, ''];
let isValid = falseReturn;
if (url.startsWith('https://') || url.startsWith('http://')) {
try {
isValid = await request.get({ ...baseOptions, url }).then((res) => {
if (res.statusCode >= 200 && res.statusCode < 300) {
return [true, url];
}
return falseReturn;
});
} catch (e) {
isValid = falseReturn;
}
} else {
try {
isValid = await request.get({ url: 'https://' + url, ...baseOptions }).then((res) => {
if (res.statusCode >= 200 && res.statusCode < 300) {
return [true, 'https://' + url];
}
return falseReturn;
});
} catch (e) {
try {
isValid = await request
.get({ url: 'http://' + url, ...baseOptions })
.then((res) => {
if (res.statusCode >= 200 && res.statusCode < 300) {
return [true, 'http://' + url];
}
return falseReturn;
});
} catch (e) {
isValid = falseReturn;
}
}
}
return isValid;
}