From cd3d718488b4727e10841226b9674c46b61e56b0 Mon Sep 17 00:00:00 2001 From: Okiki Date: Tue, 21 Sep 2021 14:04:41 +0000 Subject: [PATCH] fix: hit counter counting on all pages; chore: update deps: --- pnpm-lock.yaml | 6 +-- src/ts/critical.ts | 16 ------- src/ts/index.ts | 112 ++++++++++++++++++++++----------------------- 3 files changed, 59 insertions(+), 75 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b7a4a2ab..76abe5ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6988,7 +6988,7 @@ packages: jest-worker: 26.6.2 rollup: 2.56.3 serialize-javascript: 4.0.0 - terser: 5.8.0 + terser: 5.9.0 dev: true /rollup/2.56.3: @@ -7717,8 +7717,8 @@ packages: through2: 3.0.2 dev: true - /terser/5.8.0: - resolution: {integrity: sha512-f0JH+6yMpneYcRJN314lZrSwu9eKkUFEHLN/kNy8ceh8gaRiLgFPJqrB9HsXjhEGdv4e/ekjTOFxIlL6xlma8A==} + /terser/5.9.0: + resolution: {integrity: sha512-h5hxa23sCdpzcye/7b8YqbE5OwKca/ni0RQz1uRX3tGh8haaGHqcuSqbGRybuAKNdntZ0mDgFNXPJ48xQ2RXKQ==} engines: {node: '>=10'} hasBin: true dependencies: diff --git a/src/ts/critical.ts b/src/ts/critical.ts index 834f86ae..7c7979d4 100644 --- a/src/ts/critical.ts +++ b/src/ts/critical.ts @@ -2,7 +2,6 @@ import { App } from "@okikio/native"; import { Navbar } from "./services/Navbar"; import { themeSet, themeGet, runTheme } from "./scripts/theme"; -import { hit } from "countapi-js"; import { Workbox } from "workbox-window"; import { animate } from "@okikio/animate"; @@ -20,21 +19,6 @@ try { console.warn("Theming seems to break on this browser.", e); } -// countapi-js hit counter. It counts the number of time the website is loaded -(async () => { - try { - let { value } = await hit("bundle.js.org", "visits"); - let visitCounterEl = document.querySelector("#visit-counter"); - if (visitCounterEl) - visitCounterEl.textContent = `(${value} Page Visits)`; - } catch (err) { - console.warn( - "Visit Counter Error (please create a new issue in the repo)", - err - ); - } -})(); - // navbar focus on scroll effect let canScroll = true; const navbar = document.querySelector(".navbar") as HTMLElement; diff --git a/src/ts/index.ts b/src/ts/index.ts index 6ba123ee..6992f29b 100644 --- a/src/ts/index.ts +++ b/src/ts/index.ts @@ -10,6 +10,8 @@ import { setState, } from "./components/SearchResults"; +import { hit } from "countapi-js"; + import type { editor as Editor } from "monaco-editor"; import ESBUILD_WORKER_URL from "worker:./workers/esbuild.ts"; import WebWorker from "./util/WebWorker"; @@ -259,61 +261,59 @@ BundleEvents.on({ }); })(); -// @ts-ignore -globalThis.requestIdleCallback = - globalThis.requestIdleCallback ?? - function (cb) { - let start = Date.now(); - return setTimeout(function () { - cb({ - didTimeout: false, - timeRemaining: function () { - return Math.max(0, 50 - (Date.now() - start)); - }, - }); - }, 1); - }; +// Bundle worker +(() => { + const BundleWorker = new WebWorker(ESBUILD_WORKER_URL, WorkerArgs); -globalThis.requestIdleCallback( - () => { - const BundleWorker = new WebWorker(ESBUILD_WORKER_URL, WorkerArgs); - - // bundles using esbuild and returns the result - BundleEvents.on("bundle", () => { - if (!initialized) return; - console.log("Bundle"); - value = `` + editor?.getValue(); - - fileSizeEl.innerHTML = `
`; - bundleTime.textContent = ``; - - start = Date.now(); - BundleWorker.postMessage(value); - }); - - // Emit bundle events based on WebWorker messages - BundleWorker.addEventListener( - "message", - ({ data }: MessageEvent<{ event: string; details: any }>) => { - let { event, details } = data; - BundleEvents.emit(event, details); - } - ); + // bundles using esbuild and returns the result + BundleEvents.on("bundle", () => { + if (!initialized) return; + console.log("Bundle"); + value = `` + editor?.getValue(); - window.addEventListener("pageshow", function (event) { - if (!event.persisted) { - BundleWorker?.start(); - } - }); - - window.addEventListener("pagehide", function (event) { - if (event.persisted === true) { - console.log("This page *might* be entering the bfcache."); - } else { - console.log("This page will unload normally and be discarded."); - BundleWorker?.close(); - } - }); - }, - { timeout: 2000 } -); + fileSizeEl.innerHTML = `
`; + bundleTime.textContent = ``; + + start = Date.now(); + BundleWorker.postMessage(value); + }); + + // Emit bundle events based on WebWorker messages + BundleWorker.addEventListener( + "message", + ({ data }: MessageEvent<{ event: string; details: any }>) => { + let { event, details } = data; + BundleEvents.emit(event, details); + } + ); + + window.addEventListener("pageshow", function (event) { + if (!event.persisted) { + BundleWorker?.start(); + } + }); + + window.addEventListener("pagehide", function (event) { + if (event.persisted === true) { + console.log("This page *might* be entering the bfcache."); + } else { + console.log("This page will unload normally and be discarded."); + BundleWorker?.close(); + } + }); +})(); + +// countapi-js hit counter. It counts the number of time the website is loaded +(async () => { + try { + let { value } = await hit("bundle.js.org", "visits"); + let visitCounterEl = document.querySelector("#visit-counter"); + if (visitCounterEl) + visitCounterEl.textContent = `(${value} Page Visits)`; + } catch (err) { + console.warn( + "Visit Counter Error (please create a new issue in the repo)", + err + ); + } +})(); \ No newline at end of file