24 lines
742 B
TypeScript
24 lines
742 B
TypeScript
import { resolveEnvPlaceholders } from './env.js';
|
|
|
|
// materializeHeaders resolves environment placeholders in server header definitions.
|
|
export function materializeHeaders(
|
|
headers: Record<string, string> | undefined,
|
|
serverName: string
|
|
): Record<string, string> | undefined {
|
|
if (!headers) {
|
|
return undefined;
|
|
}
|
|
|
|
const resolved: Record<string, string> = {};
|
|
for (const [key, value] of Object.entries(headers)) {
|
|
try {
|
|
resolved[key] = resolveEnvPlaceholders(value);
|
|
} catch (error) {
|
|
const message = error instanceof Error ? error.message : String(error);
|
|
throw new Error(`Failed to resolve header '${key}' for server '${serverName}': ${message}`, { cause: error });
|
|
}
|
|
}
|
|
|
|
return resolved;
|
|
}
|