Improved the vite.config

This commit is contained in:
Samuel Andert 2023-07-31 09:40:54 +02:00
parent 61cb8c8bc3
commit 39071d425e
4 changed files with 15 additions and 58 deletions

0
bugs.md Normal file
View File

View File

@ -27,6 +27,8 @@
"eslint": "^8.46.0", "eslint": "^8.46.0",
"eslint-config-prettier": "^8.9.0", "eslint-config-prettier": "^8.9.0",
"eslint-plugin-svelte": "^2.32.4", "eslint-plugin-svelte": "^2.32.4",
"houdini": "^1.2.8",
"houdini-svelte": "^1.2.8",
"postcss": "^8.4.27", "postcss": "^8.4.27",
"prettier": "^2.8.8", "prettier": "^2.8.8",
"prettier-plugin-svelte": "^2.10.1", "prettier-plugin-svelte": "^2.10.1",
@ -38,9 +40,7 @@
"typescript": "^5.1.6", "typescript": "^5.1.6",
"vite": "^4.4.7", "vite": "^4.4.7",
"vitest": "^0.32.4", "vitest": "^0.32.4",
"zod": "^3.21.4", "zod": "^3.21.4"
"houdini": "^1.2.8",
"houdini-svelte": "^1.2.8"
}, },
"type": "module", "type": "module",
"dependencies": { "dependencies": {
@ -55,6 +55,7 @@
"@sveltejs/vite-plugin-svelte": "^2.4.3", "@sveltejs/vite-plugin-svelte": "^2.4.3",
"@wagmi/core": "^1.3.8", "@wagmi/core": "^1.3.8",
"@xstate/svelte": "^2.1.0", "@xstate/svelte": "^2.1.0",
"chokidar": "^3.5.3",
"viem": "^1.4.2", "viem": "^1.4.2",
"xstate": "^4.38.2" "xstate": "^4.38.2"
} }

View File

@ -34,6 +34,9 @@ dependencies:
'@xstate/svelte': '@xstate/svelte':
specifier: ^2.1.0 specifier: ^2.1.0
version: 2.1.0(svelte@4.1.1)(xstate@4.38.2) version: 2.1.0(svelte@4.1.1)(xstate@4.38.2)
chokidar:
specifier: ^3.5.3
version: 3.5.3
viem: viem:
specifier: ^1.4.2 specifier: ^1.4.2
version: 1.4.2(typescript@5.1.6)(zod@3.21.4) version: 1.4.2(typescript@5.1.6)(zod@3.21.4)
@ -3566,7 +3569,6 @@ packages:
dependencies: dependencies:
normalize-path: 3.0.0 normalize-path: 3.0.0
picomatch: 2.3.1 picomatch: 2.3.1
dev: true
/apg-js@4.1.3: /apg-js@4.1.3:
resolution: {integrity: sha512-XYyDcoBho8OpnWPRnedMwyL+76ovCtsESerHZEfY39dO4IrEqN97mdEYkOyHa0XTX5+3+U5FmpqPLttK0f7n6g==} resolution: {integrity: sha512-XYyDcoBho8OpnWPRnedMwyL+76ovCtsESerHZEfY39dO4IrEqN97mdEYkOyHa0XTX5+3+U5FmpqPLttK0f7n6g==}
@ -3687,7 +3689,6 @@ packages:
/binary-extensions@2.2.0: /binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'} engines: {node: '>=8'}
dev: true
/bind-decorator@1.0.11: /bind-decorator@1.0.11:
resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==} resolution: {integrity: sha512-yzkH0uog6Vv/vQ9+rhSKxecnqGUZHYncg7qS7voz3Q76+TAi1SGiOKk2mlOvusQnFz9Dc4BC/NMkeXu11YgjJg==}
@ -3760,7 +3761,6 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dependencies: dependencies:
fill-range: 7.0.1 fill-range: 7.0.1
dev: true
/brorand@1.1.0: /brorand@1.1.0:
resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==}
@ -3896,7 +3896,6 @@ packages:
readdirp: 3.6.0 readdirp: 3.6.0
optionalDependencies: optionalDependencies:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true
/cliui@6.0.0: /cliui@6.0.0:
resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
@ -4602,7 +4601,6 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dependencies: dependencies:
to-regex-range: 5.0.1 to-regex-range: 5.0.1
dev: true
/filter-obj@1.1.0: /filter-obj@1.1.0:
resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==} resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==}
@ -4721,7 +4719,6 @@ packages:
engines: {node: '>= 6'} engines: {node: '>= 6'}
dependencies: dependencies:
is-glob: 4.0.3 is-glob: 4.0.3
dev: true
/glob-parent@6.0.2: /glob-parent@6.0.2:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
@ -5154,7 +5151,6 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dependencies: dependencies:
binary-extensions: 2.2.0 binary-extensions: 2.2.0
dev: true
/is-callable@1.2.7: /is-callable@1.2.7:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
@ -5173,7 +5169,6 @@ packages:
/is-extglob@2.1.1: /is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true
/is-fullwidth-code-point@3.0.0: /is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
@ -5191,7 +5186,6 @@ packages:
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dependencies: dependencies:
is-extglob: 2.1.1 is-extglob: 2.1.1
dev: true
/is-hex-prefixed@1.0.0: /is-hex-prefixed@1.0.0:
resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==}
@ -5216,7 +5210,6 @@ packages:
/is-number@7.0.0: /is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'} engines: {node: '>=0.12.0'}
dev: true
/is-path-inside@3.0.3: /is-path-inside@3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
@ -5903,7 +5896,6 @@ packages:
/normalize-path@3.0.0: /normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
dev: true
/normalize-range@0.1.2: /normalize-range@0.1.2:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
@ -6104,7 +6096,6 @@ packages:
/picomatch@2.3.1: /picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'} engines: {node: '>=8.6'}
dev: true
/pify@2.3.0: /pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
@ -6515,7 +6506,6 @@ packages:
engines: {node: '>=8.10.0'} engines: {node: '>=8.10.0'}
dependencies: dependencies:
picomatch: 2.3.1 picomatch: 2.3.1
dev: true
/readonly-date@1.0.0: /readonly-date@1.0.0:
resolution: {integrity: sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==} resolution: {integrity: sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==}
@ -7178,7 +7168,6 @@ packages:
engines: {node: '>=8.0'} engines: {node: '>=8.0'}
dependencies: dependencies:
is-number: 7.0.0 is-number: 7.0.0
dev: true
/toggle-selection@1.0.6: /toggle-selection@1.0.6:
resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}

View File

@ -1,20 +1,17 @@
import houdini from 'houdini/vite' import houdini from 'houdini/vite'
import { sveltekit } from '@sveltejs/kit/vite' import { sveltekit } from '@sveltejs/kit/vite'
import { defineConfig } from 'vite' import { defineConfig } from 'vite'
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
import * as fs from 'fs'; import * as fs from 'fs';
import { resolve } from 'path'; import { resolve } from 'path';
// Utility function to get all .svelte files from a directory recursively // Utility function to get all .svelte or .ts files from a directory recursively
function getRecursiveSvelteFiles(dir) { function getRecursiveFiles(dir, extension) {
const dirents = fs.readdirSync(dir, { withFileTypes: true }); const dirents = fs.readdirSync(dir, { withFileTypes: true });
const files = Array.from(dirents).flatMap((dirent) => { const files = Array.from(dirents).flatMap((dirent) => {
const res = resolve(dir, dirent.name); const res = resolve(dir, dirent.name);
if (dirent.isDirectory()) { if (dirent.isDirectory()) {
return getRecursiveSvelteFiles(res); return getRecursiveFiles(res, extension);
} else if (res.endsWith('.svelte')) { } else if (res.endsWith(extension)) {
return [res]; return [res];
} else { } else {
return []; return [];
@ -23,37 +20,6 @@ function getRecursiveSvelteFiles(dir) {
return files; 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({ export default defineConfig({
plugins: [ plugins: [
houdini(), houdini(),
@ -67,7 +33,7 @@ export default defineConfig({
load(id) { load(id) {
if (id === 'virtual:components-list') { if (id === 'virtual:components-list') {
const componentsDir = resolve(__dirname, 'src/lib/components'); const componentsDir = resolve(__dirname, 'src/lib/components');
const componentsFiles = getRecursiveSvelteFiles(componentsDir); const componentsFiles = getRecursiveFiles(componentsDir, '.svelte');
const components = componentsFiles.map(file => const components = componentsFiles.map(file =>
file file
@ -91,7 +57,7 @@ export default defineConfig({
load(id) { load(id) {
if (id === 'virtual:services-list') { if (id === 'virtual:services-list') {
const servicesDir = resolve(__dirname, 'src/lib/services'); const servicesDir = resolve(__dirname, 'src/lib/services');
const serviceFiles = getRecursiveServiceFiles(servicesDir); const serviceFiles = getRecursiveFiles(servicesDir, '.ts');
const services = serviceFiles.map(file => const services = serviceFiles.map(file =>
file file
@ -115,7 +81,7 @@ export default defineConfig({
load(id) { load(id) {
if (id === 'virtual:data-sources-list') { if (id === 'virtual:data-sources-list') {
const dataDir = resolve(__dirname, 'src/lib/data'); 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 => const dataSources = dataFiles.map(file =>
file file
@ -135,3 +101,4 @@ export default defineConfig({
include: ['src/**/*.{test,spec}.{js,ts}'] include: ['src/**/*.{test,spec}.{js,ts}']
} }
}); });