Files
factorio-signal-exporter/web/lib/localeServer.ts
Caesar2011 20ed6ee9fb Initial web
2026-05-17 19:55:53 +02:00

29 lines
924 B
TypeScript

import fs from 'fs';
import path from 'path';
import { parseCsv } from './localization';
import type { LocaleMap } from './localization';
declare global { var __serverLocaleCache: LocaleMap | undefined; }
/**
* Loads and merges EN + DE locale CSVs from the public directory.
* Cached for the lifetime of the server process.
* Server-only — never import from client components.
*/
export function getServerLocaleMap(): LocaleMap {
if (globalThis.__serverLocaleCache) return globalThis.__serverLocaleCache;
const pub = path.join(process.cwd(), 'public');
function load(filename: string): LocaleMap {
try {
return parseCsv(fs.readFileSync(path.join(pub, filename), 'utf8'));
} catch {
return new Map();
}
}
const merged: LocaleMap = new Map([...load('factorio_english_items.csv'), ...load('factorio_german_items.csv')]);
globalThis.__serverLocaleCache = merged;
return merged;
}