diff --git a/crates/brk_cli/src/lib.rs b/crates/brk_cli/src/lib.rs index ba0a5e828..7d48b06c9 100644 --- a/crates/brk_cli/src/lib.rs +++ b/crates/brk_cli/src/lib.rs @@ -20,9 +20,9 @@ struct Cli { #[derive(Subcommand, Debug)] enum Commands { - /// Run the indexer, computer and server + /// Run the indexer, computer and server, use `run -h` for more information Run(RunConfig), - /// Query generated datasets via the `run` command in a similar fashion as the server's API + /// Query generated datasets via the `run` command in a similar fashion as the server's API, use `query -h` for more information Query(QueryArgs), } diff --git a/websites/default/index.html b/websites/default/index.html index 7072a4aa9..0d12b7b37 100644 --- a/websites/default/index.html +++ b/websites/default/index.html @@ -1140,9 +1140,22 @@ window.document.documentElement.dataset.display = "standalone"; } - if ("serviceWorker" in navigator) { - navigator.serviceWorker.register("/service-worker.js"); - } + window.addEventListener("load", () => { + navigator.serviceWorker + .register("/service-worker.js") + .then((registration) => { + console.log( + "Service Worker registered with scope:", + registration.scope, + ); + }) + .catch((error) => { + console.error("Service Worker registration failed:", error); + }); + }); + // if ("serviceWorker" in navigator) { + // navigator.serviceWorker.register("/service-worker.js"); + // } diff --git a/websites/default/packages/lightweight-charts/wrapper.js b/websites/default/packages/lightweight-charts/wrapper.js index 388c88844..ceb8b5297 100644 --- a/websites/default/packages/lightweight-charts/wrapper.js +++ b/websites/default/packages/lightweight-charts/wrapper.js @@ -174,8 +174,6 @@ export default import("./v5.0.7-treeshaked/script.js").then((lc) => { ? 120 : 0.5; - console.log({ minBarSpacing, fitContent }); - ichart.applyOptions({ timeScale: { timeVisible: @@ -379,13 +377,13 @@ export default import("./v5.0.7-treeshaked/script.js").then((lc) => { const fetchedKey = vecsResources.defaultFetchedKey; signals.createEffect( () => [ - timeResource.fetched[fetchedKey].vec(), - valuesResource.fetched[fetchedKey].vec(), + timeResource.fetched().get(fetchedKey)?.vec(), + valuesResource.fetched().get(fetchedKey)?.vec(), ], ([indexes, _ohlcs]) => { - if (!indexes || !_ohlcs) return; + if (!indexes?.length || !_ohlcs?.length) return; - const seriesData = series.inner.data(); + // const seriesData = series.inner.data(); // const set = seriesData.length === 0; const ohlcs = /** @type {OHLCTuple[]} */ (_ohlcs); diff --git a/websites/default/packages/solid-signals/wrapper.js b/websites/default/packages/solid-signals/wrapper.js index ee4a52c49..30cd317ba 100644 --- a/websites/default/packages/solid-signals/wrapper.js +++ b/websites/default/packages/solid-signals/wrapper.js @@ -31,13 +31,13 @@ const importSignals = import("./v0.3.2-treeshaked/script.js").then( if (dispose) { dispose(); dispose = null; - console.debug("effectCount = ", --effectCount); + // console.log("effectCount = ", --effectCount); } } // @ts-ignore _signals.createEffect(compute, (v, oldV) => { - console.debug("effectCount = ", ++effectCount); + // console.log("effectCount = ", ++effectCount); cleanup(); signals.createRoot((_dispose) => { dispose = _dispose; diff --git a/websites/default/scripts/main.js b/websites/default/scripts/main.js index 0000c8b73..1b131c496 100644 --- a/websites/default/scripts/main.js +++ b/websites/default/scripts/main.js @@ -1494,8 +1494,11 @@ function createVecsResources(signals, utils) { return signals.runWithOwner(owner, () => { /** @typedef {T extends number ? SingleValueData : CandlestickData} Value */ - const fetchedRecord = - /** @type {Record}>} */ ({}); + const fetchedRecord = signals.createSignal( + /** @type {Map}>} */ ( + new Map() + ), + ); return { url: utils.api.genUrl(index, id, defaultFrom), @@ -1513,12 +1516,18 @@ function createVecsResources(signals, utils) { const from = args?.from ?? defaultFrom; const to = args?.to ?? defaultTo; const fetchedKey = genFetchedKey({ from, to }); - fetchedRecord[fetchedKey] ??= { - loading: false, - at: null, - vec: signals.createSignal(/** @type {T[] | null} */ (null)), - }; - const fetched = fetchedRecord[fetchedKey]; + if (!fetchedRecord().has(fetchedKey)) { + fetchedRecord.set((map) => { + map.set(fetchedKey, { + loading: false, + at: null, + vec: signals.createSignal(/** @type {T[] | null} */ (null)), + }); + return map; + }); + } + const fetched = fetchedRecord().get(fetchedKey); + if (!fetched) throw Error("Unreachable"); if (fetched.loading) return fetched.vec(); if (fetched.at) { const diff = new Date().getTime() - fetched.at.getTime(); @@ -1529,7 +1538,9 @@ function createVecsResources(signals, utils) { const res = /** @type {T[] | null} */ ( await utils.api.fetchVec( (values) => { - fetched.vec.set(/** @type {T[]} */ (values)); + if (values.length || !fetched.vec()) { + fetched.vec.set(values); + } }, index, id, @@ -2268,6 +2279,7 @@ function main() { } } + await utils.next(); await utils.next(); utils.dom diff --git a/websites/default/scripts/options.js b/websites/default/scripts/options.js index 68acf26af..ae0f29a8e 100644 --- a/websites/default/scripts/options.js +++ b/websites/default/scripts/options.js @@ -3106,7 +3106,7 @@ export function initOptions({ summary.append(supCount); signals.createEffect(childOptionsCount, (childOptionsCount) => { - supCount.innerHTML = childOptionsCount.toLocaleString(); + supCount.innerHTML = childOptionsCount.toLocaleString("en-us"); }); details.addEventListener("toggle", () => { diff --git a/websites/default/scripts/table.js b/websites/default/scripts/table.js index 4663ff3e1..ff49b384b 100644 --- a/websites/default/scripts/table.js +++ b/websites/default/scripts/table.js @@ -305,22 +305,25 @@ function createTable({ return l; }); - signals.createEffect(vec.fetched[fetchedKey].vec, (vec) => { - if (!vec) return; + signals.createEffect( + () => vec.fetched().get(fetchedKey)?.vec(), + (vec) => { + if (!vec?.length) return; - const thIndex = colIndex() + 1; + const thIndex = colIndex() + 1; - for (let i = 0; i < rowElements.length; i++) { - const iRev = vec.length - 1 - i; - const value = vec[iRev]; - // @ts-ignore - rowElements[i].childNodes[thIndex].innerHTML = - serializeValue({ - value, - unit, - }); - } - }); + for (let i = 0; i < rowElements.length; i++) { + const iRev = vec.length - 1 - i; + const value = vec[iRev]; + // @ts-ignore + rowElements[i].childNodes[thIndex].innerHTML = + serializeValue({ + value, + unit, + }); + } + }, + ); return () => vecId; }, diff --git a/websites/default/service-worker.js b/websites/default/service-worker.js index 7f452cbfe..a1980141f 100644 --- a/websites/default/service-worker.js +++ b/websites/default/service-worker.js @@ -10,7 +10,7 @@ sw.addEventListener("install", (event) => { sw.addEventListener("activate", (event) => { console.log("sw: active"); - event.waitUntil(sw.clients.claim()); + sw.clients.claim(); event.waitUntil( caches .keys() @@ -42,6 +42,8 @@ sw.addEventListener("fetch", (event) => { return; // let the browser handle it } + const cache = caches.open(CACHE_NAME); + // 2) NAVIGATION: network‐first on your shell if (req.mode === "navigate") { event.respondWith( @@ -52,9 +54,7 @@ sw.addEventListener("fetch", (event) => { if (response.ok || response.status === 304) { if (response.ok) { const clone = response.clone(); - caches - .open(CACHE_NAME) - .then((cache) => cache.put("/index.html", clone)); + cache.then((cache) => cache.put("/index.html", clone)); } return response; } @@ -72,7 +72,7 @@ sw.addEventListener("fetch", (event) => { .then((response) => { if (response.ok) { const clone = response.clone(); - caches.open(CACHE_NAME).then((cache) => cache.put(req, clone)); + cache.then((cache) => cache.put(req, clone)); } return response; })