Try the pre-generate route

pull/8432/head
Puru Vijay 3 years ago
parent 5e6d6f5340
commit 67980b9171

@ -10,3 +10,4 @@
/src/routes/_components/Supporters/donors.jpg /src/routes/_components/Supporters/donors.jpg
/src/routes/_components/Supporters/donors.js /src/routes/_components/Supporters/donors.js
.vercel .vercel
examples-data.js

@ -4,8 +4,8 @@
"description": "Docs and examples for Svelte", "description": "Docs and examples for Svelte",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "node scripts/update.js && vite dev", "dev": "node scripts/generate_examples.js && node scripts/update.js && vite dev",
"build": "node scripts/update.js && vite build", "build": "node scripts/generate_examples.js && node scripts/update.js && vite build",
"update": "node scripts/update.js --force=true", "update": "node scripts/update.js --force=true",
"preview": "vite preview", "preview": "vite preview",
"start": "node build", "start": "node build",

@ -0,0 +1,11 @@
import { get_examples_data } from '../src/lib/server/examples/get-examples.js';
import fs from 'node:fs';
const examples_data = get_examples_data(
new URL('../../../site/content/examples', import.meta.url).pathname
);
fs.writeFileSync(
new URL('../src/routes/(authed)/repl/[id].json/examples-data.js', import.meta.url),
`export default ${JSON.stringify(examples_data)}`
);

@ -2,6 +2,6 @@ import * as session from '$lib/db/session';
export async function load({ request }) { export async function load({ request }) {
return { return {
user: await session.from_cookie(request.headers.get('cookie')) user: session.from_cookie(request.headers.get('cookie')),
}; };
} }

@ -4,6 +4,7 @@ import * as gist from '$lib/db/gist';
import { get_example } from '$lib/server/examples'; import { get_example } from '$lib/server/examples';
import { get_examples_data, get_examples_list } from '$lib/server/examples/get-examples'; import { get_examples_data, get_examples_list } from '$lib/server/examples/get-examples';
import { error, json } from '@sveltejs/kit'; import { error, json } from '@sveltejs/kit';
import examples_data from './examples-data.js';
export const prerender = 'auto'; export const prerender = 'auto';
@ -39,8 +40,6 @@ export async function GET({ params }) {
// We prerender examples pages during build time. That means, when something like `/repl/hello-world.json` // We prerender examples pages during build time. That means, when something like `/repl/hello-world.json`
// is accessed, this function won't be run at all, as it will be served from the filesystem // is accessed, this function won't be run at all, as it will be served from the filesystem
try {
const examples_data = get_examples_data();
examples = new Set( examples = new Set(
get_examples_list(examples_data) get_examples_list(examples_data)
.map((category) => category.examples) .map((category) => category.examples)
@ -59,9 +58,6 @@ export async function GET({ params }) {
components: munge(example.files), components: munge(example.files),
}); });
} }
} catch (e) {
console.warn('Cant use filesystem');
}
if (dev && !client) { if (dev && !client) {
// in dev with no local Supabase configured, proxy to production // in dev with no local Supabase configured, proxy to production

Loading…
Cancel
Save