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
55 lines
1.3 KiB
TypeScript
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']
|
|
}
|
|
}
|
|
};
|
|
});
|