@openhps/core
Version:
Open Hybrid Positioning System - Core component
54 lines (47 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.LoaderUtils = void 0;
/**
* A class with loader utility functions.
*/
class LoaderUtils {
/**
* Extracts the base URL from the given URL.
*
* @param {string} url -The URL to extract the base URL from.
* @return {string} The extracted base URL.
*/
static extractUrlBase(url) {
const index = url.lastIndexOf('/');
if (index === -1) return './';
return url.slice(0, index + 1);
}
/**
* Resolves relative URLs against the given path. Absolute paths, data urls,
* and blob URLs will be returned as is. Invalid URLs will return an empty
* string.
*
* @param {string} url -The URL to resolve.
* @param {string} path - The base path for relative URLs to be resolved against.
* @return {string} The resolved URL.
*/
static resolveURL(url, path) {
// Invalid URL
if (typeof url !== 'string' || url === '') return '';
// Host Relative URL
if (/^https?:\/\//i.test(path) && /^\//.test(url)) {
path = path.replace(/(^https?:\/\/[^\/]+).*/i, '$1');
}
// Absolute URL http://,https://,//
if (/^(https?:)?\/\//i.test(url)) return url;
// Data URI
if (/^data:.*,.*$/i.test(url)) return url;
// Blob URL
if (/^blob:.*$/i.test(url)) return url;
// Relative URL
return path + url;
}
}
exports.LoaderUtils = LoaderUtils;