export const isUrlAbsolute = (url: string) => { if (url) { if (url.indexOf("//") === 0) { return true; } // URL is protocol-relative (= absolute) if (url.indexOf("://") === -1) { return false; } // URL has no protocol (= relative) if (url.indexOf(".") === -1) { return false; } // URL does not contain a dot, i.e. no TLD (= relative, possibly REST) if (url.indexOf("/") === -1) { return false; } // URL does not contain a single slash (= relative) if (url.indexOf(":") > url.indexOf("/")) { return false; } // The first colon comes after the first slash (= relative) if (url.indexOf("://") < url.indexOf(".")) { return true; } // Protocol is defined before first dot (= absolute) } return false; // Anything else must be relative };