async function validateURL()

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;
}