From 2fa8a7872e889113161ed96a62aaf0a414752cec Mon Sep 17 00:00:00 2001 From: Fred Boniface Date: Thu, 5 Feb 2026 17:30:44 +0000 Subject: [PATCH] Not allowed to actually do it --- package-lock.json | 1 + package.json | 1 + scripts/parse-maps.js | 16 ++++++++++++++++ src/routes/map/[slug]/+page.svelte | 11 +++++++++++ src/routes/map/[slug]/+page.ts | 29 +++++++++++++++++++++++++++++ 5 files changed, 58 insertions(+) create mode 100644 scripts/parse-maps.js create mode 100644 src/routes/map/[slug]/+page.ts diff --git a/package-lock.json b/package-lock.json index cbd5fcc..afa156a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "eslint-config-prettier": "^10.1.8", "eslint-plugin-svelte": "^3.14.0", "globals": "^17.1.0", + "js-yaml": "^4.1.1", "prettier": "^3.8.1", "prettier-plugin-svelte": "^3.4.1", "svelte": "^5.48.2", diff --git a/package.json b/package.json index 31649d6..1c9a0b0 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "eslint-config-prettier": "^10.1.8", "eslint-plugin-svelte": "^3.14.0", "globals": "^17.1.0", + "js-yaml": "^4.1.1", "prettier": "^3.8.1", "prettier-plugin-svelte": "^3.4.1", "svelte": "^5.48.2", diff --git a/scripts/parse-maps.js b/scripts/parse-maps.js new file mode 100644 index 0000000..bd85601 --- /dev/null +++ b/scripts/parse-maps.js @@ -0,0 +1,16 @@ +import yaml from 'js-yaml'; +import fs from 'fs'; +import path from 'path'; + +const inputDir = '../static/mapFiles/yaml'; +const outputDir = '../static/mapFiles/json'; + +if (!fs.existsSync(outputDir)) fs.mkdirSync(outputDir, {recursive: true}); + +fs.readdirSync(inputDir).forEach(file => { + if (file.endsWith('.yaml')) { + const content = yaml.load(fs.readFileSync(path.join(inputDir, file), 'utf8')); + const fileName = file.replace('.yaml', '.json'); + fs.writeFileSync(path.join(outputDir, fileName), JSON.stringify(content)); + } +}) \ No newline at end of file diff --git a/src/routes/map/[slug]/+page.svelte b/src/routes/map/[slug]/+page.svelte index e69de29..4e08f95 100644 --- a/src/routes/map/[slug]/+page.svelte +++ b/src/routes/map/[slug]/+page.svelte @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/src/routes/map/[slug]/+page.ts b/src/routes/map/[slug]/+page.ts new file mode 100644 index 0000000..00b1129 --- /dev/null +++ b/src/routes/map/[slug]/+page.ts @@ -0,0 +1,29 @@ +import type { PageLoad } from '/$types'; +import { error } from '@sveltejs/kit'; + +export const load: PageLoad = async ({ params, fetch }) => { + const { slug } = params; + + try { + const res = await fetch(`/mapFiles/json/${slug}.json`); + + if (!res.ok) { + throw error(404, { + message: `Route ${slug} not found` + }); + } + + const rawData = await res.json(); + + return { + route: rawData, + slug: slug, + }; + } catch (err) { + console.error(`Error loading map ${slug}: `, err); + + throw error(500, { + message: `Failed to parse map data for ${slug}` + }); + } +}; \ No newline at end of file