mirror of
https://github.com/gitpod-io/gitpod.git
synced 2025-12-08 17:36:30 +00:00
43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
/**
|
|
* Copyright (c) 2020 Gitpod GmbH. All rights reserved.
|
|
* Licensed under the GNU Affero General Public License (AGPL).
|
|
* See License.AGPL.txt in the project root for license information.
|
|
*/
|
|
|
|
// @ts-check
|
|
|
|
/**
|
|
* The proxy (shared) worker serving from the workspace origin to fetch content from the blobserve origin.
|
|
*/
|
|
|
|
// TODO(ak) importScripts is not going to work for module workers: https://web.dev/module-workers/
|
|
(function () {
|
|
var originalImportScripts = self.importScripts;
|
|
// hash contains the original worker URL to be used as a base URI to resolve script URLs
|
|
var baseURI = decodeURI(location.hash.substr(1));
|
|
|
|
self.importScripts = function (...scriptUrls) {
|
|
return originalImportScripts(...scriptUrls.map((scriptUrl) => new URL(scriptUrl, baseURI).toString()));
|
|
};
|
|
|
|
var originalFetch = self.fetch;
|
|
self.fetch = function (input, init) {
|
|
if (typeof input === "string") {
|
|
return originalFetch(new URL(input, baseURI).toString(), init);
|
|
}
|
|
return originalFetch(input, init);
|
|
};
|
|
|
|
var originalRequest = self.Request;
|
|
function RequestProxy(input, init) {
|
|
if (typeof input === "string") {
|
|
return new originalRequest(new URL(input, baseURI).toString(), init);
|
|
}
|
|
return new originalRequest(input, init);
|
|
}
|
|
RequestProxy.prototype = Object.create(originalRequest);
|
|
self.Request = RequestProxy;
|
|
|
|
originalImportScripts(baseURI);
|
|
})();
|