import { execSync } from 'node:child_process' import { defineConfig } from 'vite' import { svelte } from '@sveltejs/vite-plugin-svelte' import { viteSingleFile } from 'vite-plugin-singlefile' // https://vite.dev/config/ // Bake the commit hash into the bundle at build time so a deployed app can // report exactly which commit produced it (logged via console.info at startup). // CI sets VITE_COMMIT_HASH=${{ github.sha }}; local builds fall back to git HEAD. function getCommitHash() { if (process.env.VITE_COMMIT_HASH) return process.env.VITE_COMMIT_HASH try { return execSync('git rev-parse HEAD').toString().trim() } catch { return 'unknown' } } export default defineConfig(({ command }) => ({ define: { __WEATHER_COMMIT__: JSON.stringify(getCommitHash()), }, plugins: [ svelte(), ...(command === 'build' ? [viteSingleFile({ inlineStyles: true, inlineScripts: true, removeUnusedCss: true, removeViteModuleLoader: true, })] : []), ], build: { target: 'esnext', minify: false, rollupOptions: { treeshake: { moduleSideEffects: true, annotations: false, }, }, }, preview: { allowedHosts: ["dev.thecookiejar.me"] }, test: { environment: 'jsdom', globals: true, setupFiles: ['./tests/setup.js'], include: ['src/**/*.test.js', 'tests/**/*.test.js'], }, }))