diff --git a/packages/utils/src/runtimeConfigCheck.ts b/packages/utils/src/runtimeConfigCheck.ts new file mode 100644 index 00000000000..311e204c1e0 --- /dev/null +++ b/packages/utils/src/runtimeConfigCheck.ts @@ -0,0 +1,26 @@ +export type RuntimeConfigRequirement = { + key: string; + description: string; +}; + +export function assertRuntimeConfig( + config: Record, + required: RuntimeConfigRequirement[], +): void { + const missing: string[] = []; + + for (const item of required) { + const value = config[item.key]; + if (value === undefined || value === null || value === '') { + missing.push(`${item.key} (${item.description})`); + } + } + + if (missing.length > 0) { + const message = + 'Missing required runtime configuration values:\n' + + missing.map((m) => `- ${m}`).join('\n'); + + throw new Error(message); + } +}