// Copied from axios library because these functions haven't been exported. // Why can't axios put constructed fullURL into the config object or in an additional meta information? // TODO: axios feature request function isAbsoluteURL(url: string) { // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed // by any combination of letters, digits, plus, period, or hyphen. return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); }; function combineURLs(baseURL: string, relativeURL: string) { return relativeURL ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') : baseURL; }; export function buildFullPath(baseURL: string | undefined, requestedURL: string) { if (baseURL && !isAbsoluteURL(requestedURL)) { return combineURLs(baseURL, requestedURL); } return requestedURL; };