import { readdirSync } from 'node:fs';
import tailwindcss from '@tailwindcss/vite';
import adapter from '@sveltejs/adapter-static';
import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';

// Background photos live in static/photos so Vite copies them verbatim
// (original filenames, no content hash) instead of running them through the
// module asset pipeline.
const photoFiles = readdirSync('static/photos').filter((name) =>
	/\.(jpe?g|png)$/i.test(name)
);

export default defineConfig({
	server: {
		fs: { allow: ['assets'] }
	},
	define: {
		__PHOTO_FILES__: JSON.stringify(photoFiles)
	},
	plugins: [
		tailwindcss(),
		sveltekit({
			compilerOptions: {
				// Force runes mode for the project, except for libraries. Can be removed in svelte 6.
				runes: ({ filename }) => filename.split(/[/\\]/).includes('node_modules') ? undefined : true
			},
			adapter: adapter()
		})
	]
});
