From 39071d425e1babe8ea43b1baa03d2ed8a97fc2ff Mon Sep 17 00:00:00 2001 From: Samuel Andert Date: Mon, 31 Jul 2023 09:40:54 +0200 Subject: [PATCH] Improved the vite.config --- bugs.md | 0 package.json | 7 ++++--- pnpm-lock.yaml | 17 +++-------------- vite.config.ts | 49 ++++++++----------------------------------------- 4 files changed, 15 insertions(+), 58 deletions(-) create mode 100644 bugs.md diff --git a/bugs.md b/bugs.md new file mode 100644 index 0000000..e69de29 diff --git a/package.json b/package.json index 0d26c92..7040cbc 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,8 @@ "eslint": "^8.46.0", "eslint-config-prettier": "^8.9.0", "eslint-plugin-svelte": "^2.32.4", + "houdini": "^1.2.8", + "houdini-svelte": "^1.2.8", "postcss": "^8.4.27", "prettier": "^2.8.8", "prettier-plugin-svelte": "^2.10.1", @@ -38,9 +40,7 @@ "typescript": "^5.1.6", "vite": "^4.4.7", "vitest": "^0.32.4", - "zod": "^3.21.4", - "houdini": "^1.2.8", - "houdini-svelte": "^1.2.8" + "zod": "^3.21.4" }, "type": "module", "dependencies": { @@ -55,6 +55,7 @@ "@sveltejs/vite-plugin-svelte": "^2.4.3", "@wagmi/core": "^1.3.8", "@xstate/svelte": "^2.1.0", + "chokidar": "^3.5.3", "viem": "^1.4.2", "xstate": "^4.38.2" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99f77aa..28b2f66 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,6 +34,9 @@ dependencies: '@xstate/svelte': specifier: ^2.1.0 version: 2.1.0(svelte@4.1.1)(xstate@4.38.2) + chokidar: + specifier: ^3.5.3 + version: 3.5.3 viem: specifier: ^1.4.2 version: 1.4.2(typescript@5.1.6)(zod@3.21.4) @@ -3566,7 +3569,6 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /apg-js@4.1.3: resolution: {integrity: sha512-XYyDcoBho8OpnWPRnedMwyL+76ovCtsESerHZEfY39dO4IrEqN97mdEYkOyHa0XTX5+3+U5FmpqPLttK0f7n6g==} @@ -3687,7 +3689,6 @@ packages: /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: true /bind-decorator@1.0.11: resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==} @@ -3760,7 +3761,6 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true /brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} @@ -3896,7 +3896,6 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 - dev: true /cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} @@ -4602,7 +4601,6 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true /filter-obj@1.1.0: resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} @@ -4721,7 +4719,6 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -5154,7 +5151,6 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} @@ -5173,7 +5169,6 @@ packages: /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -5191,7 +5186,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: true /is-hex-prefixed@1.0.0: resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} @@ -5216,7 +5210,6 @@ packages: /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} @@ -5903,7 +5896,6 @@ packages: /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true /normalize-range@0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} @@ -6104,7 +6096,6 @@ packages: /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} @@ -6515,7 +6506,6 @@ packages: engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true /readonly-date@1.0.0: resolution: {integrity: sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==} @@ -7178,7 +7168,6 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true /toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} diff --git a/vite.config.ts b/vite.config.ts index 1540f05..9262200 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,20 +1,17 @@ import houdini from 'houdini/vite' import { sveltekit } from '@sveltejs/kit/vite' - import { defineConfig } from 'vite' -import { sveltekit } from '@sveltejs/kit/vite'; -import { defineConfig } from 'vite'; import * as fs from 'fs'; import { resolve } from 'path'; -// Utility function to get all .svelte files from a directory recursively -function getRecursiveSvelteFiles(dir) { +// Utility function to get all .svelte or .ts files from a directory recursively +function getRecursiveFiles(dir, extension) { const dirents = fs.readdirSync(dir, { withFileTypes: true }); const files = Array.from(dirents).flatMap((dirent) => { const res = resolve(dir, dirent.name); if (dirent.isDirectory()) { - return getRecursiveSvelteFiles(res); - } else if (res.endsWith('.svelte')) { + return getRecursiveFiles(res, extension); + } else if (res.endsWith(extension)) { return [res]; } else { return []; @@ -23,37 +20,6 @@ function getRecursiveSvelteFiles(dir) { return files; } -function getRecursiveServiceFiles(dir) { - const dirents = fs.readdirSync(dir, { withFileTypes: true }); - const files = Array.from(dirents).flatMap((dirent) => { - const res = resolve(dir, dirent.name); - if (dirent.isDirectory()) { - return getRecursiveServiceFiles(res); - } else if (res.endsWith('.ts')) { - return [res]; - } else { - return []; - } - }); - return files; -} - -function getRecursiveDataFiles(dir) { - const dirents = fs.readdirSync(dir, { withFileTypes: true }); - const files = Array.from(dirents).flatMap((dirent) => { - const res = resolve(dir, dirent.name); - if (dirent.isDirectory()) { - return getRecursiveDataFiles(res); - } else if (res.endsWith('.ts')) { - return [res]; - } else { - return []; - } - }); - return files; -} - - export default defineConfig({ plugins: [ houdini(), @@ -67,7 +33,7 @@ export default defineConfig({ load(id) { if (id === 'virtual:components-list') { const componentsDir = resolve(__dirname, 'src/lib/components'); - const componentsFiles = getRecursiveSvelteFiles(componentsDir); + const componentsFiles = getRecursiveFiles(componentsDir, '.svelte'); const components = componentsFiles.map(file => file @@ -91,7 +57,7 @@ export default defineConfig({ load(id) { if (id === 'virtual:services-list') { const servicesDir = resolve(__dirname, 'src/lib/services'); - const serviceFiles = getRecursiveServiceFiles(servicesDir); + const serviceFiles = getRecursiveFiles(servicesDir, '.ts'); const services = serviceFiles.map(file => file @@ -115,7 +81,7 @@ export default defineConfig({ load(id) { if (id === 'virtual:data-sources-list') { const dataDir = resolve(__dirname, 'src/lib/data'); - const dataFiles = getRecursiveServiceFiles(dataDir); // Use the same function as before + const dataFiles = getRecursiveFiles(dataDir, '.ts'); // Use the same function as before const dataSources = dataFiles.map(file => file @@ -135,3 +101,4 @@ export default defineConfig({ include: ['src/**/*.{test,spec}.{js,ts}'] } }); +