From ffa5e2ede5c4557b55d37683fb519a3a5769175c Mon Sep 17 00:00:00 2001 From: Daniel Kastl Date: Fri, 4 Oct 2024 12:00:13 +0900 Subject: [PATCH] Adds service worker Signed-off-by: Daniel Kastl --- .gitignore | 1 + index.html | 4 +++- package.json | 1 + public/assets/icon-192x192.png | Bin 0 -> 21696 bytes public/assets/icon-512x512.png | Bin 0 -> 50480 bytes public/manifest.json | 21 +++++++++++++++++++++ public/sw.js | 25 +++++++++++++++++++++++++ src/main.ts | 16 ++++++++++++++++ vite.config.mts | 10 +++++++++- yarn.lock | 5 +++++ 10 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 public/assets/icon-192x192.png create mode 100644 public/assets/icon-512x512.png create mode 100644 public/manifest.json create mode 100644 public/sw.js diff --git a/.gitignore b/.gitignore index 3c3629e..de4d1f0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ +dist node_modules diff --git a/index.html b/index.html index ecfc369..20870a8 100644 --- a/index.html +++ b/index.html @@ -3,8 +3,10 @@ - + + + Meshtastic Configurator diff --git a/package.json b/package.json index 9721b3a..686c032 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "license": "GPL-3.0-or-later", "devDependencies": { "@types/qrcode": "^1.5.5", + "@types/serviceworker": "^0.0.97", "concurrently": "^9.0.1", "http-server": "^14.1.1", "typescript": "^5.6.2", diff --git a/public/assets/icon-192x192.png b/public/assets/icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..5f879357e3e18a6b1c403f6745b6c19a5d4d2e05 GIT binary patch literal 21696 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�b%HCsAS-mNq7i6go)Z{?P|E} zVIgE~fm`Y7F3jQS`7Tm2NW|W*I%(X?{Jv|v=gw=V<`u98HjvbpEg{Aud`=`UX(*YI zgllcc|Jn9pFe5j5fP&s`6{1{0bT`zmZ+RsGst7rF0?fDw^ zA&>;l)B>ivsIHU4Hrr#2n-s%Gw`wypWr;8Fxls(H)_&ptMR)QWG_FB*L$1=teVeai zEfhloP)@W!Q_z>&2;vLk1?`8@Un`E6u;a?Na4uUczQy$CY??$H%-5GzIQspwm8;wF z7yos`{jI?J08`?%dm`8v2-Mql#VI>J9S+J9PKL7FE$WQkdn>-i=zZTE<04X| z4NC@@WzRFpJv1Mg)ZWK;tKbX>TjuBf=RkRBk}w-wCO;a^2EK(FIHjd>oDNtP0Y+r< zDZgOF!3G(t7a6tb5f8ZP+r>T-#1=~0)>cF*uE6uSdQMzlS`re1xl8esI;Ow;?FBn- zKk@huqW&|SoVF)Eze1n;{&y}*$Chy&y#yl2B``l(*@$#_Y}Dgpg7p8wS{btykE@sF z3GZa&@mDdZn4#ypZrd0#3z(Lh|_%H0HP{52N zmIzp;AW#P~Nsl1~h{Uz+3ndqt?9P8#rc6)5Cz@up{->VYAoo{m_wJziVX(J&cN;wB zHJaO3$_5y27DWEp^KT9MKx3-&%flzX2_idDTyX=Ke$8d-ha_1F=TyS~OFo0Xcq{^} z2aO(VPzEE%>>~=O{^{j&(b+=_Gwa&`opASHf_i2#qrTn#=M0)sa)h`Abn-a!?@ndj z_f0_H(ITY@E1)7U!2c^cp5fp)CMUGs7iUIJUuPFYZK-HJ

AG!kM0TwZ}mGi$g5i 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 literal 0 HcmV?d00001 diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..3a79958 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,21 @@ +{ + "name": "Meshtastic Configurator", + "short_name": "Configurator", + "description": "Meshtastic QR Code Generator", + "start_url": "/meshtastic-configurator/", + "display": "standalone", + "background_color": "#ffffff", + "theme_color": "#4CAF50", + "icons": [ + { + "src": "/meshtastic-configurator/assets/icon-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/meshtastic-configurator/assets/icon-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/public/sw.js b/public/sw.js new file mode 100644 index 0000000..0070877 --- /dev/null +++ b/public/sw.js @@ -0,0 +1,25 @@ +const CACHE_NAME = "meshtastic-cache"; +const urlsToCache = [ + "/meshtastic-configurator/", + "/meshtastic-configurator/index.html", + "/meshtastic-configurator/src/styles.css", + "/meshtastic-configurator/src/main.ts", + "/meshtastic-configurator/assets/icon-192x192.png", + "/meshtastic-configurator/assets/icon-512x512.png" +]; + +self.addEventListener("install", event => { + event.waitUntil( + caches.open(CACHE_NAME).then(cache => { + return cache.addAll(urlsToCache); + }) + ); +}); + +self.addEventListener("fetch", event => { + event.respondWith( + caches.match(event.request).then(response => { + return response || fetch(event.request); + }) + ); +}); diff --git a/src/main.ts b/src/main.ts index feb6267..301c578 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,6 +5,22 @@ import { handlePSKTypeChange, handleGeneratePSK } from './pskHandler'; import { loadConfigurationFromHash } from './loadConfigurationFromHash'; import { copyUrlToClipboard } from './utils'; +/** + * Register the service worker in production mode. + */ +if ('serviceWorker' in navigator && process.env.NODE_ENV === 'production') { + window.addEventListener('load', () => { + navigator.serviceWorker + .register('/meshtastic-configurator/sw.js') + .then((registration) => { + console.log('ServiceWorker registration successful with scope: ', registration.scope); + }) + .catch((error) => { + console.log('ServiceWorker registration failed: ', error); + }); + }); +} + /** * Handle the DOMContentLoaded event. * Add event listeners to the buttons and form fields. diff --git a/vite.config.mts b/vite.config.mts index 37830f2..5f756ac 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -1,11 +1,19 @@ import { defineConfig } from 'vite'; +import { resolve } from 'path'; export default defineConfig({ base: '/meshtastic-configurator/', css: { preprocessorOptions: { scss: { - api: 'modern' // Use the modern Sass API + api: 'modern' + } + } + }, + build: { + rollupOptions: { + input: { + main: resolve(__dirname, 'index.html') } } } diff --git a/yarn.lock b/yarn.lock index dfe6cf1..b8ace9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -225,6 +225,11 @@ dependencies: "@types/node" "*" +"@types/serviceworker@^0.0.97": + version "0.0.97" + resolved "https://registry.yarnpkg.com/@types/serviceworker/-/serviceworker-0.0.97.tgz#a0b1a76b2a3a79cc4b624b88717bc73c8ccd246d" + integrity sha512-SGt2lAQ0PcRR392EFNAnmjdZeWrU9o0y09/4xoY7gOunoHTt4nV/Qs2U9RQZlox8suwQnCtNS7rYqr5lNmdJ5w== + ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"