Use entries

pull/8570/head
Puru Vijay 3 years ago
parent 6eba8e48cb
commit 5ae46413fa

@ -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' })));
}

@ -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 })));
}

@ -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' })));
}

@ -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 })));
}

@ -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`))
);
}

Loading…
Cancel
Save