@loaders.gl/gltf
Version:
Framework-independent loader for the glTF format
25 lines • 949 B
JavaScript
// Resolves a relative url against a baseUrl
// If url is absolute, return it unchanged
export function resolveUrl(url, options, context) {
// TODO: Use better logic to handle all protocols plus not delay on data
const absolute = url.startsWith('data:') || url.startsWith('http:') || url.startsWith('https:');
if (absolute) {
return url;
}
const baseUrl = context?.baseUrl || getResolveBaseUrl(options?.core?.baseUrl);
if (!baseUrl) {
throw new Error(`'baseUrl' must be provided to resolve relative url ${url}`);
}
return baseUrl.endsWith('/') ? `${baseUrl}${url}` : `${baseUrl}/${url}`;
}
function getResolveBaseUrl(baseUrl) {
if (!baseUrl) {
return undefined;
}
if (baseUrl.endsWith('/')) {
return baseUrl;
}
const slashIndex = baseUrl.lastIndexOf('/');
return slashIndex >= 0 ? baseUrl.slice(0, slashIndex + 1) : '';
}
//# sourceMappingURL=resolve-url.js.map