Vite build tools #695
@ -10,7 +10,7 @@ const ErrorPage = () => {
|
|||||||
return (
|
return (
|
||||||
<div className="main-content page">
|
<div className="main-content page">
|
||||||
<h4>
|
<h4>
|
||||||
<FormattedMessage defaultMessage="An error has occured!" />
|
<FormattedMessage defaultMessage="An error has occured!" id="error.title" />
|
||||||
</h4>
|
</h4>
|
||||||
<AsyncButton
|
<AsyncButton
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
@ -18,7 +18,7 @@ const ErrorPage = () => {
|
|||||||
globalThis.localStorage.clear();
|
globalThis.localStorage.clear();
|
||||||
globalThis.location.href = "/";
|
globalThis.location.href = "/";
|
||||||
}}>
|
}}>
|
||||||
<FormattedMessage defaultMessage="Clear cache and reload" />
|
<FormattedMessage defaultMessage="Clear cache and reload" id="error.clear-cache" />
|
||||||
</AsyncButton>
|
</AsyncButton>
|
||||||
{
|
{
|
||||||
<pre>
|
<pre>
|
||||||
|
@ -21,7 +21,7 @@ import {
|
|||||||
encodeTLVEntries,
|
encodeTLVEntries,
|
||||||
socialGraphInstance,
|
socialGraphInstance,
|
||||||
} from "@snort/system";
|
} from "@snort/system";
|
||||||
import PowWorkerURL from '@snort/system/dist/pow-worker.js?worker&url';
|
import PowWorkerURL from '@snort/system/src/pow-worker.ts?worker&url';
|
||||||
import { SnortContext } from "@snort/system-react";
|
import { SnortContext } from "@snort/system-react";
|
||||||
import { removeUndefined, throwIfOffline } from "@snort/shared";
|
import { removeUndefined, throwIfOffline } from "@snort/shared";
|
||||||
|
|
||||||
|
@ -1,36 +1,40 @@
|
|||||||
|
// Import the service worker with Vite's special syntax
|
||||||
|
import ServiceWorkerURL from "./service-worker?worker&url";
|
||||||
|
|
||||||
export function register() {
|
export function register() {
|
||||||
if ("serviceWorker" in navigator) {
|
if ('serviceWorker' in navigator) {
|
||||||
window.addEventListener("load", () => {
|
window.addEventListener('load', () => {
|
||||||
registerValidSW("/service-worker.js");
|
registerValidSW(ServiceWorkerURL);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function registerValidSW(swUrl: string) {
|
async function registerValidSW(swUrl: string) {
|
||||||
try {
|
try {
|
||||||
const registration = await navigator.serviceWorker.register(swUrl);
|
const registration = await navigator.serviceWorker.register(swUrl,
|
||||||
|
{ type: 'module' });
|
||||||
registration.onupdatefound = () => {
|
registration.onupdatefound = () => {
|
||||||
const installingWorker = registration.installing;
|
const installingWorker = registration.installing;
|
||||||
if (installingWorker == null) {
|
if (installingWorker == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
installingWorker.onstatechange = () => {
|
installingWorker.onstatechange = () => {
|
||||||
if (installingWorker.state === "installed") {
|
if (installingWorker.state === 'installed') {
|
||||||
if (navigator.serviceWorker.controller) {
|
if (navigator.serviceWorker.controller) {
|
||||||
console.log("Service worker updated, pending reload");
|
console.log('Service worker updated, pending reload');
|
||||||
} else {
|
} else {
|
||||||
console.log("Content is cached for offline use.");
|
console.log('Content is cached for offline use.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("Error during service worker registration:", e);
|
console.error('Error during service worker registration:', e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function unregister() {
|
export async function unregister() {
|
||||||
if ("serviceWorker" in navigator) {
|
if ('serviceWorker' in navigator) {
|
||||||
const registration = await navigator.serviceWorker.ready;
|
const registration = await navigator.serviceWorker.ready;
|
||||||
await registration.unregister();
|
await registration.unregister();
|
||||||
}
|
}
|
||||||
|
@ -16,9 +16,10 @@ export class PowWorker implements PowMiner {
|
|||||||
#worker: Worker;
|
#worker: Worker;
|
||||||
#queue: Map<string, PowQueue> = new Map();
|
#queue: Map<string, PowQueue> = new Map();
|
||||||
|
|
||||||
constructor(script: string) {
|
constructor(workerPath: string) {
|
||||||
this.#worker = new Worker(script, {
|
this.#worker = new Worker(new URL(workerPath, import.meta.url), {
|
||||||
name: "POW",
|
type: 'module',
|
||||||
|
name: 'POW',
|
||||||
});
|
});
|
||||||
this.#worker.onerror = ev => {
|
this.#worker.onerror = ev => {
|
||||||
console.error(ev);
|
console.error(ev);
|
||||||
|
Loading…
Reference in New Issue
Block a user