From 32b5593d07b55a37b8905cb21c08b94bb67f700a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sat, 13 Dec 2025 13:16:42 -0600 Subject: [PATCH] feat: lenient strings --- packages/scripts/src/protos.ts | 4 +- packages/website-ue/src/core/api/server.ts | 47 +++++++++++++--------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/packages/scripts/src/protos.ts b/packages/scripts/src/protos.ts index 92939a171..d84c3100f 100644 --- a/packages/scripts/src/protos.ts +++ b/packages/scripts/src/protos.ts @@ -11,7 +11,7 @@ const TS_PROTO_EXECUTABLE_LOCATIONS = [ const roots = [ // "../../packages/core/src/protos", - // "../../packages/closed/protos", + "../../packages/closed/protos", "../../packages/website-ue/src/protos", ]; @@ -67,7 +67,7 @@ for (const root of roots) { if (command.length + newLine.length < MAX_COMMAND_LENGTH) { command += newLine; - files.pop(); + console.log(` ${files.pop()}`); } else { break; } diff --git a/packages/website-ue/src/core/api/server.ts b/packages/website-ue/src/core/api/server.ts index 8c45f4575..05bda47d2 100644 --- a/packages/website-ue/src/core/api/server.ts +++ b/packages/website-ue/src/core/api/server.ts @@ -53,30 +53,37 @@ export class ServerAPI extends AbstractAPI { throw new Error("No suitable production remote storage found"); } - const config = await fetch( - `${remoteStorage.url}/${remoteStorage.relative_path}/config.yaml` - ) - .then((response) => response.text()) - .then((text) => parse(text) as LocalizationConfig); const strings: Record = {}; + const configPath = `${remoteStorage.url}/${remoteStorage.relative_path}/config.yaml`; - for (const namespace of config.namespaces) { - Object.assign( - strings, - await fetch( - `${remoteStorage.url}/${remoteStorage.relative_path}/${namespace}/${locale}.yaml` - ) - .then((response) => response.text()) - .then((text) => { - const strings: Record = {}; - const parsed = parse(text) as Record; + try { + const config = await fetch(configPath) + .then((response) => response.text()) + .then((text) => parse(text) as LocalizationConfig); - for (const key in parsed) { - strings[key] = parsed[key].replaceAll('\\"', '"'); - } + for (const namespace of config.namespaces) { + Object.assign( + strings, + await fetch( + `${remoteStorage.url}/${remoteStorage.relative_path}/${namespace}/${locale}.yaml` + ) + .then((response) => response.text()) + .then((text) => { + const strings: Record = {}; + const parsed = parse(text) as Record; - return strings; - }) + for (const key in parsed) { + strings[key] = parsed[key].replaceAll('\\"', '"'); + } + + return strings; + }) + ); + } + } catch (error) { + console.warn( + `Failed to fetch config from ${configPath}. Returning empty strings. This will throw an error in production. Error:`, + error ); }