Compare commits

...
4 changed files with 1008 additions and 1163 deletions

No files matched your search

File diff suppressed because it is too large. Load diff
+2 -1
View File
@@ -7,7 +7,8 @@
"author": "Fluxer Platform AB <[email protected]>",
"sideEffects": [
"*.css",
"**/*.css"
"**/*.css",
"./src/app/AbortSignalPolyfill.ts"
],
"type": "module",
"exports": {
+32
View File
@@ -0,0 +1,32 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
function abortSignalTimeout(milliseconds: number): AbortSignal {
const controller = new AbortController();
setTimeout(() => controller.abort(new DOMException('The operation timed out.', 'TimeoutError')), milliseconds);
return controller.signal;
}
function abortSignalAny(signals: Iterable<AbortSignal>): AbortSignal {
const controller = new AbortController();
const sources = [...signals];
const aborted = sources.find((source) => source.aborted);
if (aborted) {
controller.abort(aborted.reason);
return controller.signal;
}
for (const source of sources) {
source.addEventListener('abort', () => controller.abort(source.reason), {once: true, signal: controller.signal});
}
return controller.signal;
}
export function installAbortSignalPolyfill(target: typeof AbortSignal = AbortSignal): void {
if (typeof target.timeout !== 'function') {
target.timeout = abortSignalTimeout;
}
if (typeof target.any !== 'function') {
target.any = abortSignalAny;
}
}
installAbortSignalPolyfill();
+1
View File
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: AGPL-3.0-or-later
import '@app/app/AbortSignalPolyfill';
import '@app/app/BootShell.css';
import {startAppStorage} from '@app/features/platform/state/AppStorageBootstrap';
import {installBrowserStorageAccessProtection} from '@app/features/platform/state/ProtectedWebStorage';