From 24af6f54e44691278fb453828f7d55bff05093ed Mon Sep 17 00:00:00 2001 From: Ax333l Date: Fri, 6 Jan 2023 17:13:27 +0100 Subject: [PATCH] afn will explod --- src/_vercel-moment.js | 82 ------------------------------------------- src/routes/+layout.ts | 1 + svelte.config.js | 8 ++--- 3 files changed, 4 insertions(+), 87 deletions(-) delete mode 100644 src/_vercel-moment.js create mode 100644 src/routes/+layout.ts diff --git a/src/_vercel-moment.js b/src/_vercel-moment.js deleted file mode 100644 index 01e681c..0000000 --- a/src/_vercel-moment.js +++ /dev/null @@ -1,82 +0,0 @@ -import fs from 'fs'; - -// This code was stolen from https://github.com/sveltejs/kit/blob/master/packages/adapter-static/platforms.js - -// sveltekit does things like this instead of actually just using ts for some reason. -/** @param {import('@sveltejs/kit').Builder} builder */ -function vercel_routes(builder) { - /** @type {any[]} */ - const routes = [ - { - src: `/${builder.config.kit.appDir}/immutable/.+`, - headers: { - 'cache-control': 'public, immutable, max-age=31536000' - } - } - ]; - - // explicit redirects - for (const [src, redirect] of builder.prerendered.redirects) { - routes.push({ - src, - headers: { - Location: redirect.location - }, - status: redirect.status - }); - } - - // prerendered pages - for (const [src, page] of builder.prerendered.pages) { - routes.push({ - src, - dest: `${builder.config.kit.appDir}/prerendered/${page.file}` - }); - } - - // implicit redirects (trailing slashes) - for (const [src] of builder.prerendered.pages) { - if (src !== '/') { - routes.push({ - src: src.endsWith('/') ? src.slice(0, -1) : src + '/', - headers: { - location: src - }, - status: 308 - }); - } - } - - routes.push({ - handle: 'filesystem' - }); - - return routes; -} - -export function wrap(adapter, opts) { - if (!process.env.VERCEL) { - // we don't have to bother :) - return adapter(opts); - } - - // Not exactly what adapter-static does, but it works. - opts.pages = '.vercel/output/static'; - - adapter = adapter(opts); - - const adapt_fn = adapter.adapt; - adapter.adapt = async (builder) => { - const result = await adapt_fn(builder); - fs.writeFileSync( - '.vercel/output/config.json', - JSON.stringify({ - version: 3, - routes: vercel_routes(builder) - }) - ); - return result; - } - - return adapter; -} diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts new file mode 100644 index 0000000..189f71e --- /dev/null +++ b/src/routes/+layout.ts @@ -0,0 +1 @@ +export const prerender = true; diff --git a/svelte.config.js b/svelte.config.js index b5327fd..5911b76 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,8 +1,6 @@ import adapter from '@sveltejs/adapter-static'; import preprocess from 'svelte-preprocess'; -import { wrap } from './src/_vercel-moment.js'; - /** @type {import('@sveltejs/kit').Config} */ const config = { // Consult https://github.com/sveltejs/svelte-preprocess @@ -12,9 +10,9 @@ const config = { kit: { // adapter-static has vercel detection, but that does not let you set a custom 404 page easily. // Instead, we have to use a wrapper that generates a vercel config if on vercel... - adapter: wrap(adapter, { - pages: "public", - fallback: "404.html" + adapter: adapter({ + pages: 'public', + fallback: '404.html' }), } };