// svelte adapter import adapterNode from '@sveltejs/adapter-node' import adapterVercel from '@sveltejs/adapter-vercel' import adapterNetlify from '@sveltejs/adapter-netlify' import adapterCloudflare from '@sveltejs/adapter-cloudflare' import adapterStatic from '@sveltejs/adapter-static' // svelte preprocessor import { mdsvex } from 'mdsvex' import mdsvexConfig from './mdsvex.config.js' // import { vitePreprocess } from '@sveltejs/vite-plugin-svelte' import preprocess from 'svelte-preprocess' function getAdapter() { if (Object.keys(process.env).some(key => key.includes('VERCEL'))) { return adapterVercel() } else if (Object.keys(process.env).some(key => key.includes('NETLIFY'))) { return adapterNetlify() } else if (Object.keys(process.env).some(key => key.includes('CF_PAGES'))) { return adapterCloudflare() } else { return process.env.ADAPTER === 'node' ? adapterNode({ out: 'build' }) : adapterStatic({ pages: 'build', assets: 'build', fallback: undefined }) } } /** @type {import("@svletejs/kit".Config)} */ export default { extensions: ['.svelte', ...(mdsvexConfig.extensions || [])], preprocess: [preprocess({ postcss: true }), mdsvex(mdsvexConfig) /*, vitePreprocess()*/], vitePlugin: { inspector: true }, kit: { adapter: getAdapter(), alias: { $lib: './src/lib', $root: './', $src: './src', $routes: './src/routes', $content: './content' }, csrf: { checkOrigin: process.env.NODE_ENV === 'development' ? false : true }, prerender: { crawl: true, handleMissingId: 'warn', handleHttpError: ({ status, path, referrer, referenceType, message }) => { // Handle blog trying to prerender relative links that it can't if ( (status == 404 && path.startsWith('/blog')) || path.startsWith('/projects') || (path.startsWith('/') && referenceType == 'linked') ) { console.warn(`PRERENDER ignored route ${path}`) return } throw new Error(`${status} ${path} from ${referrer}, ~~~~~~~~~ message: ${message}~~~~~~~~~`) } } } }