From 4280ffe763b7c16e8304ce3fa33f15080fc11768 Mon Sep 17 00:00:00 2001 From: Fred Boniface Date: Thu, 5 Feb 2026 22:02:31 +0000 Subject: [PATCH] Add tunnel component and map connector component --- Dockerfile | 23 ++ src/lib/components/mapIcons/Junction.svelte | 53 ++-- .../components/mapIcons/RouteEndLink.svelte | 93 +++++++ src/lib/components/mapIcons/Tunnel.svelte | 56 ++++ src/lib/mapRegistry.ts | 4 +- src/routes/healthz/+server.ts | 8 + src/routes/map/[slug]/+page.svelte | 9 +- static/mapFiles/yaml/0001.yaml | 251 +++++++++++++----- 8 files changed, 404 insertions(+), 93 deletions(-) create mode 100644 Dockerfile create mode 100644 src/lib/components/mapIcons/RouteEndLink.svelte create mode 100644 src/lib/components/mapIcons/Tunnel.svelte create mode 100644 src/routes/healthz/+server.ts diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ba1869f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM node:20-slim AS builder +WORKDIR /app + +COPY package*.json ./ +RUN npm ci + +COPY . . +RUN node ./scripts/parse-maps.js +RUN npm run build +RUN npm prune --production + +FROM node:20-slim +WORKDIR /app + +COPY --from=builder /app/build ./build +COPY --from=builder /app/node_modules ./node_modules +COPY --from=builder /app/package.json ./package.json + +USER node + +ENV NODE_ENV=production +EXPOSE 3000 +CMD ["node", "build"] \ No newline at end of file diff --git a/src/lib/components/mapIcons/Junction.svelte b/src/lib/components/mapIcons/Junction.svelte index c0edf8e..4a9e401 100644 --- a/src/lib/components/mapIcons/Junction.svelte +++ b/src/lib/components/mapIcons/Junction.svelte @@ -1,36 +1,43 @@ - - + {#each paths as d} + + {/each} + diff --git a/src/lib/components/mapIcons/RouteEndLink.svelte b/src/lib/components/mapIcons/RouteEndLink.svelte new file mode 100644 index 0000000..e9f808a --- /dev/null +++ b/src/lib/components/mapIcons/RouteEndLink.svelte @@ -0,0 +1,93 @@ + + + + + \ No newline at end of file diff --git a/src/lib/components/mapIcons/Tunnel.svelte b/src/lib/components/mapIcons/Tunnel.svelte new file mode 100644 index 0000000..b279252 --- /dev/null +++ b/src/lib/components/mapIcons/Tunnel.svelte @@ -0,0 +1,56 @@ + + + + + + + {#if effectiveType === 'whole'} + + + + {:else if effectiveType === 'start'} + + + {:else if effectiveType === 'end'} + + {/if} + + + {#if feature.tunnelType === 'whole' && feature.length} + + + {feature.length} + + {/if} + + + \ No newline at end of file diff --git a/src/lib/mapRegistry.ts b/src/lib/mapRegistry.ts index 18e3a17..108a5bb 100644 --- a/src/lib/mapRegistry.ts +++ b/src/lib/mapRegistry.ts @@ -8,6 +8,7 @@ import Loop from '$lib/components/mapIcons/Loop.svelte'; import SignallerChange from '$lib/components/mapIcons/SignallerChange.svelte'; import ElectrificationChange from '$lib/components/mapIcons/ElectrificationChange.svelte'; import SiteOf from '$lib/components/mapIcons/SiteOf.svelte'; +import Tunnel from '$lib/components/mapIcons/Tunnel.svelte'; export const components = { station: Station, @@ -21,5 +22,6 @@ export const components = { loops: Loop, signallerChange: SignallerChange, electrificationChange: ElectrificationChange, - default: BaseTrack + default: BaseTrack, + tunnel: Tunnel, }; diff --git a/src/routes/healthz/+server.ts b/src/routes/healthz/+server.ts new file mode 100644 index 0000000..f0df974 --- /dev/null +++ b/src/routes/healthz/+server.ts @@ -0,0 +1,8 @@ +import { json } from '@sveltejs/kit'; +import type { RequestHandler } from './$types'; + +export const GET: RequestHandler = () => { + return json({ status: 'ok', uptime: process.uptime() }, { + status: 200 + }); +}; \ No newline at end of file diff --git a/src/routes/map/[slug]/+page.svelte b/src/routes/map/[slug]/+page.svelte index 42edb45..429d058 100644 --- a/src/routes/map/[slug]/+page.svelte +++ b/src/routes/map/[slug]/+page.svelte @@ -1,5 +1,6 @@