diff --git a/package-lock.json b/package-lock.json index 7ee0077..214f5c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,8 @@ "name": "flanders", "version": "0.0.1", "dependencies": { - "dotenv": "^16.3.1" + "dotenv": "^16.3.1", + "js-yaml": "^4.1.0" }, "devDependencies": { "@modyfi/vite-plugin-yaml": "^1.0.4", @@ -1322,8 +1323,7 @@ "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/aria-query": { "version": "5.3.0", @@ -2443,7 +2443,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "dependencies": { "argparse": "^2.0.1" }, diff --git a/package.json b/package.json index 798a812..24c52c2 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ }, "type": "module", "dependencies": { - "dotenv": "^16.3.1" + "dotenv": "^16.3.1", + "js-yaml": "^4.1.0" } } diff --git a/src/config.yml b/src/config.yml deleted file mode 100644 index a6c81b8..0000000 --- a/src/config.yml +++ /dev/null @@ -1,14 +0,0 @@ -title: 'Hello World !!' -subtitle: 'I am a new pilot.' - -services: - - title: '/Cloud' - subtitle: 'Private Cloud Utilities' - icon: 'fas fa-cloud' - items: - - title: 'NAS' - subtitle: 'Network Attached Storage' - icon: 'fas fa-hard-drive' - target: '_blank' - url: '/NAS' - keywords: 'cloud storage files' diff --git a/src/config.yml b/src/config.yml new file mode 120000 index 0000000..1a3631f --- /dev/null +++ b/src/config.yml @@ -0,0 +1 @@ +../static/config.yml \ No newline at end of file diff --git a/src/config.ts b/src/lib/config.ts similarity index 92% rename from src/config.ts rename to src/lib/config.ts index eb04623..0556740 100644 --- a/src/config.ts +++ b/src/lib/config.ts @@ -1,4 +1,4 @@ -import configData from './config.yml'; +import configData from '../config.yml'; export type Brand = { logo?: string; diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts new file mode 100644 index 0000000..d02d9cc --- /dev/null +++ b/src/routes/+page.server.ts @@ -0,0 +1,20 @@ +import { dev } from '$app/environment'; +import { config, type Config } from '$lib/config'; +import type { PageServerLoad } from './$types'; + +import { readFileSync } from 'fs'; +import * as yml from 'js-yaml'; + +export const load: PageServerLoad = () => { + if (dev) { + return { config: config }; + } + + try { + const dynamic = yml.load(readFileSync('/dynamic/config.yml', 'utf8')); + return { config: { ...config, ...dynamic } as Config }; + } catch (err) { + console.debug("could not read '/dynamic/config.yml': " + err); + return { config: config }; + } +}; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index a0a4d6e..94ee88f 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,8 +1,10 @@ -