pull/8873/head
Puru Vijay 3 years ago
parent e9d7b9dd57
commit 472e38ddaf

@ -2,7 +2,7 @@ import { fileURLToPath } from 'node:url';
import { get_examples_data } from '../src/lib/server/examples/index.js';
import fs from 'node:fs';
const examples_data = get_examples_data(
const examples_data = await get_examples_data(
fileURLToPath(new URL('../../../documentation/examples', import.meta.url))
);

@ -1,5 +1,4 @@
import { CONTENT_BASE_PATHS } from '../../../constants.js';
import fs from 'node:fs';
/**
* @param {import('./types').ExamplesData} examples_data
@ -18,25 +17,28 @@ export function get_example(examples_data, slug) {
}
/**
* @returns {import('./types').ExamplesData}
* @returns {Promise<import('./types').ExamplesData>}
*/
export function get_examples_data(base = CONTENT_BASE_PATHS.EXAMPLES) {
export async function get_examples_data(base = CONTENT_BASE_PATHS.EXAMPLES) {
const { readdir, stat, readFile } = await import('node:fs/promises');
const examples = [];
for (const subdir of fs.readdirSync(base)) {
for (const subdir of await readdir(base)) {
const section = {
title: '', // Initialise with empty
slug: subdir.split('-').slice(1).join('-'),
examples: []
};
if (!(fs.statSync(`${base}/${subdir}`).isDirectory() || subdir.endsWith('meta.json'))) continue;
if (!((await stat(`${base}/${subdir}`)).isDirectory() || subdir.endsWith('meta.json')))
continue;
if (!subdir.endsWith('meta.json'))
section.title =
JSON.parse(fs.readFileSync(`${base}/${subdir}/meta.json`, 'utf-8')).title ?? 'Embeds';
JSON.parse(await readFile(`${base}/${subdir}/meta.json`, 'utf-8')).title ?? 'Embeds';
for (const section_dir of fs.readdirSync(`${base}/${subdir}`)) {
for (const section_dir of await readdir(`${base}/${subdir}`)) {
const match = /\d{2}-(.+)/.exec(section_dir);
if (!match) continue;
@ -46,17 +48,17 @@ export function get_examples_data(base = CONTENT_BASE_PATHS.EXAMPLES) {
// Get title for
const example_title = JSON.parse(
fs.readFileSync(`${example_base_dir}/meta.json`, 'utf-8')
await readFile(`${example_base_dir}/meta.json`, 'utf-8')
).title;
const files = [];
for (const file of fs
.readdirSync(example_base_dir)
.filter((file) => !file.endsWith('meta.json'))) {
for (const file of (await readdir(example_base_dir)).filter(
(file) => !file.endsWith('meta.json')
)) {
files.push({
name: file,
type: file.split('.').at(-1),
content: fs.readFileSync(`${example_base_dir}/${file}`, 'utf-8')
content: await readFile(`${example_base_dir}/${file}`, 'utf-8')
});
}

@ -1,14 +1,15 @@
import { readFileSync } from 'fs';
import { join } from 'path';
import { env } from '$env/dynamic/private';
const local_svelte_path = env.LOCAL_SVELTE_PATH || '../../../svelte';
export function GET({ params: { path } }) {
export async function GET({ params: { path } }) {
if (import.meta.env.PROD || ('/' + path).includes('/.')) {
return new Response(undefined, { status: 403 });
}
return new Response(readFileSync(join(local_svelte_path, path)), {
const { readFile } = await import('node:fs/promises');
return new Response(await readFile(`${local_svelte_path}/${path}`), {
headers: { 'Content-Type': 'text/javascript' }
});
}

@ -4,7 +4,7 @@ import adapter from '@sveltejs/adapter-vercel';
/** @type {import('@sveltejs/kit').Config} */
export default {
kit: {
adapter: adapter({ runtime: 'edge', split: true })
adapter: adapter({ runtime: 'edge' })
},
vitePlugin: {

Loading…
Cancel
Save