First release
This commit is contained in:
commit
fa6c85266e
2339 changed files with 761050 additions and 0 deletions
47
node_modules/@videojs/vhs-utils/es/resolve-url.js
generated
vendored
Normal file
47
node_modules/@videojs/vhs-utils/es/resolve-url.js
generated
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
import URLToolkit from 'url-toolkit';
|
||||
import window from 'global/window';
|
||||
var DEFAULT_LOCATION = 'http://example.com';
|
||||
|
||||
var resolveUrl = function resolveUrl(baseUrl, relativeUrl) {
|
||||
// return early if we don't need to resolve
|
||||
if (/^[a-z]+:/i.test(relativeUrl)) {
|
||||
return relativeUrl;
|
||||
} // if baseUrl is a data URI, ignore it and resolve everything relative to window.location
|
||||
|
||||
|
||||
if (/^data:/.test(baseUrl)) {
|
||||
baseUrl = window.location && window.location.href || '';
|
||||
} // IE11 supports URL but not the URL constructor
|
||||
// feature detect the behavior we want
|
||||
|
||||
|
||||
var nativeURL = typeof window.URL === 'function';
|
||||
var protocolLess = /^\/\//.test(baseUrl); // remove location if window.location isn't available (i.e. we're in node)
|
||||
// and if baseUrl isn't an absolute url
|
||||
|
||||
var removeLocation = !window.location && !/\/\//i.test(baseUrl); // if the base URL is relative then combine with the current location
|
||||
|
||||
if (nativeURL) {
|
||||
baseUrl = new window.URL(baseUrl, window.location || DEFAULT_LOCATION);
|
||||
} else if (!/\/\//i.test(baseUrl)) {
|
||||
baseUrl = URLToolkit.buildAbsoluteURL(window.location && window.location.href || '', baseUrl);
|
||||
}
|
||||
|
||||
if (nativeURL) {
|
||||
var newUrl = new URL(relativeUrl, baseUrl); // if we're a protocol-less url, remove the protocol
|
||||
// and if we're location-less, remove the location
|
||||
// otherwise, return the url unmodified
|
||||
|
||||
if (removeLocation) {
|
||||
return newUrl.href.slice(DEFAULT_LOCATION.length);
|
||||
} else if (protocolLess) {
|
||||
return newUrl.href.slice(newUrl.protocol.length);
|
||||
}
|
||||
|
||||
return newUrl.href;
|
||||
}
|
||||
|
||||
return URLToolkit.buildAbsoluteURL(baseUrl, relativeUrl);
|
||||
};
|
||||
|
||||
export default resolveUrl;
|
Loading…
Add table
Add a link
Reference in a new issue