diff --git a/sites/svelte.dev/src/routes/(authed)/repl/[id].json/+server.js b/sites/svelte.dev/src/routes/(authed)/repl/[id].json/+server.js index 7b72caa79f..6e933c1cbb 100644 --- a/sites/svelte.dev/src/routes/(authed)/repl/[id].json/+server.js +++ b/sites/svelte.dev/src/routes/(authed)/repl/[id].json/+server.js @@ -1,10 +1,10 @@ import { dev } from '$app/environment'; import { client } from '$lib/db/client'; import * as gist from '$lib/db/gist'; +import examples_data from '$lib/generated/examples-data.js'; import { get_example } from '$lib/server/examples'; -import { 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 examples_data from '$lib/generated/examples-data.js'; export const prerender = 'auto'; @@ -87,9 +87,17 @@ export async function GET({ params }) { return json({ id: params.id, name: app.name, + // @ts-ignore owner: app.userid, relaxed: false, // @ts-expect-error app.files has a `source` property components: munge(app.files) }); } + +/** @type {import('./$types.js').EntryGenerator} */ +export async function entries() { + return get_examples_list(get_examples_data()) + .map(({ examples }) => examples) + .flatMap((val) => val.map(({ slug }) => ({ id: slug + '.json' }))); +} diff --git a/sites/svelte.dev/src/routes/examples/[slug]/+page.server.js b/sites/svelte.dev/src/routes/examples/[slug]/+page.server.js index 9a72d99af7..d525584921 100644 --- a/sites/svelte.dev/src/routes/examples/[slug]/+page.server.js +++ b/sites/svelte.dev/src/routes/examples/[slug]/+page.server.js @@ -15,11 +15,3 @@ export async function load({ params }) { slug: params.slug }; } - -/** @type {import('./$types').EntryGenerator} */ -export async function entries() { - const examples_list = get_examples_list(get_examples_data()); - return examples_list - .map(({ examples }) => examples) - .flatMap((val) => val.map(({ slug }) => ({ slug }))); -} diff --git a/sites/svelte.dev/src/routes/examples/api/[slug].json/+server.js b/sites/svelte.dev/src/routes/examples/api/[slug].json/+server.js index eb5dec4e9e..ad9b3ae141 100644 --- a/sites/svelte.dev/src/routes/examples/api/[slug].json/+server.js +++ b/sites/svelte.dev/src/routes/examples/api/[slug].json/+server.js @@ -1,6 +1,6 @@ import examples_data from '$lib/generated/examples-data.js'; import { get_example } from '$lib/server/examples'; -import { 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'; export const prerender = true; @@ -17,3 +17,10 @@ export const GET = ({ params }) => { return json(get_example(examples_data, params.slug)); }; + +export async function entries() { + const examples_list = get_examples_list(get_examples_data()); + return examples_list + .map(({ examples }) => examples) + .flatMap((val) => val.map(({ slug }) => ({ slug: slug + '.json' }))); +} diff --git a/sites/svelte.dev/src/routes/tutorial/[slug]/+page.server.js b/sites/svelte.dev/src/routes/tutorial/[slug]/+page.server.js index ce56e02ad3..45f8c3e0ec 100644 --- a/sites/svelte.dev/src/routes/tutorial/[slug]/+page.server.js +++ b/sites/svelte.dev/src/routes/tutorial/[slug]/+page.server.js @@ -18,3 +18,10 @@ export async function load({ params }) { slug: params.slug }; } + +export async function entries() { + const tutorials_list = get_tutorial_list(get_tutorial_data()); + return tutorials_list + .map(({ tutorials }) => tutorials) + .flatMap((val) => val.map(({ slug }) => ({ slug }))); +} diff --git a/sites/svelte.dev/svelte.config.js b/sites/svelte.dev/svelte.config.js index 6dd2c2427f..d05335d4e9 100644 --- a/sites/svelte.dev/svelte.config.js +++ b/sites/svelte.dev/svelte.config.js @@ -1,39 +1,9 @@ // @ts-check import adapter from '@sveltejs/adapter-vercel'; -import { get_examples_data, get_examples_list } from './src/lib/server/examples/get-examples.js'; -import { get_tutorial_data, get_tutorial_list } from './src/lib/server/tutorial/get-tutorial.js'; /** @type {import('@sveltejs/kit').Config} */ export default { kit: { - adapter: adapter(), - prerender: { - // TODO use route entries instead, once https://github.com/sveltejs/kit/pull/9571 is merged - entries: ['*', ...repl_json_entries(), ...tutorial_entries(), ...examples_json_entries()] - } + adapter: adapter() } }; - -function repl_json_entries() { - return get_examples_list( - get_examples_data(new URL('../../site/content/examples', import.meta.url).pathname) - ).flatMap(({ examples }) => - examples.map(({ slug }) => /** @type {(`/${string}`)} */ (`/repl/${slug}.json`)) - ); -} - -function tutorial_entries() { - return get_tutorial_list( - get_tutorial_data(new URL('../../site/content/tutorial', import.meta.url).pathname) - ).flatMap(({ tutorials }) => - tutorials.map(({ slug }) => /** @type {(`/${string}`)} */ (`/tutorial/${slug}`)) - ); -} - -function examples_json_entries() { - return get_examples_list( - get_examples_data(new URL('../../site/content/examples', import.meta.url).pathname) - ).flatMap(({ examples }) => - examples.map(({ slug }) => /** @type {(`/${string}`)} */ (`/examples/api/${slug}.json`)) - ); -}