From 7968d399f2f8ca979865b384d47e8427f1ab0df1 Mon Sep 17 00:00:00 2001 From: sHa Date: Thu, 12 Jun 2025 01:59:13 +0300 Subject: [PATCH] feat: Add script to generate PWA cache file list and improve SVG circle rendering --- generate-pwa-cache-list.js | 34 +++++++++++++++++++++++++++++++++ src/components/InlineSvg.svelte | 1 - src/utils/colorCircles.js | 15 ++++++++++++++- 3 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 generate-pwa-cache-list.js diff --git a/generate-pwa-cache-list.js b/generate-pwa-cache-list.js new file mode 100644 index 0000000..2de9dd3 --- /dev/null +++ b/generate-pwa-cache-list.js @@ -0,0 +1,34 @@ +// Node.js script to generate a list of all files in public, logos, and logos_gen for PWA caching +const fs = require('fs'); +const path = require('path'); + +const publicDir = path.join(__dirname, 'public'); +const logosDir = path.join(__dirname, 'logos'); +const logosGenDir = path.join(__dirname, 'logos_gen'); + +function walkDir(dir, baseUrl = '') { + let results = []; + fs.readdirSync(dir).forEach(file => { + const filePath = path.join(dir, file); + const relPath = path.join(baseUrl, file).replace(/\\/g, '/'); + if (fs.statSync(filePath).isDirectory()) { + results = results.concat(walkDir(filePath, relPath)); + } else { + results.push('/' + relPath); + } + }); + return results; +} + +const publicFiles = walkDir(publicDir, '').filter(f => !f.endsWith('sw.js')); +const logosFiles = walkDir(logosDir, 'logos'); +const logosGenFiles = walkDir(logosGenDir, 'logos_gen'); + +const allFiles = Array.from(new Set([...publicFiles, ...logosFiles, ...logosGenFiles])); + +fs.writeFileSync( + path.join(publicDir, 'pwa-files-to-cache.json'), + JSON.stringify(allFiles, null, 2) +); + +console.log('PWA files-to-cache list generated with', allFiles.length, 'files.'); diff --git a/src/components/InlineSvg.svelte b/src/components/InlineSvg.svelte index 79b45bf..9851fee 100644 --- a/src/components/InlineSvg.svelte +++ b/src/components/InlineSvg.svelte @@ -125,7 +125,6 @@ } $: path, color, colorConfig, targets, sets, activeSet, colors, fetchAndColorSvg(); -