Files
goto/apps/web/vite.config.ts
eleith c0723a6bf9
ci/woodpecker/pr/cli Pipeline was successful
ci/woodpecker/pr/config Pipeline was successful
ci/woodpecker/pr/db Pipeline was successful
ci/woodpecker/pr/web Pipeline was successful
ci/woodpecker/pr/worker Pipeline was successful
ci/woodpecker/push/cli Pipeline was successful
ci/woodpecker/push/config Pipeline was successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/worker Pipeline was successful
fix(ui): simplify theme controls
2026-11-10 11:47:02 -08:00

55 lines
1.3 KiB
TypeScript

import adapter from './server/adapter.ts';
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vitest/config';
import Icons from 'unplugin-icons/vite';
const allowedHosts = (process.env.GOTO_ALLOWED_HOSTS ?? '')
.split(',')
.map((host) => host.trim())
.filter(Boolean);
export default defineConfig(({ command }) => {
const connectSources: ('self' | 'ws:' | 'wss:')[] = ['self'];
if (command === 'serve' && !process.env.VITEST) {
connectSources.push('ws:', 'wss:');
}
return {
plugins: [
sveltekit({
adapter: adapter(),
compilerOptions: {
runes: ({ filename }) =>
filename.split(/[/\\]/).includes('node_modules') ? undefined : true
},
inlineStyleThreshold: 10240,
csp: {
directives: {
'default-src': ['self'],
'script-src': ['self'],
'style-src': ['self', 'unsafe-inline'],
'img-src': ['self'],
'font-src': ['self'],
'connect-src': connectSources,
'object-src': ['none'],
'base-uri': ['self'],
'form-action': ['self'],
'frame-ancestors': ['none']
}
}
}),
Icons({ compiler: 'svelte' })
],
server: { allowedHosts },
test: {
include: ['src/**/*.test.ts', 'server/**/*.test.ts'],
environment: 'node',
coverage: {
provider: 'v8',
include: ['src/**/*.ts'],
exclude: ['src/**/*.test.ts']
}
}
};
});