init claude-code
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* Shared utilities for expanding environment variables in MCP server configurations
|
||||
*/
|
||||
|
||||
/**
|
||||
* Expand environment variables in a string value
|
||||
* Handles ${VAR} and ${VAR:-default} syntax
|
||||
* @returns Object with expanded string and list of missing variables
|
||||
*/
|
||||
export function expandEnvVarsInString(value: string): {
|
||||
expanded: string
|
||||
missingVars: string[]
|
||||
} {
|
||||
const missingVars: string[] = []
|
||||
|
||||
const expanded = value.replace(/\$\{([^}]+)\}/g, (match, varContent) => {
|
||||
// Split on :- to support default values (limit to 2 parts to preserve :- in defaults)
|
||||
const [varName, defaultValue] = varContent.split(':-', 2)
|
||||
const envValue = process.env[varName]
|
||||
|
||||
if (envValue !== undefined) {
|
||||
return envValue
|
||||
}
|
||||
if (defaultValue !== undefined) {
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
// Track missing variable for error reporting
|
||||
missingVars.push(varName)
|
||||
// Return original if not found (allows debugging but will be reported as error)
|
||||
return match
|
||||
})
|
||||
|
||||
return {
|
||||
expanded,
|
||||
missingVars,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user