π File detail
services/mcp/envExpansion.ts
π§© .tsπ 39 linesπΎ 1,047 bytesπ text
β Back to All Filesπ― Use case
This file lives under βservices/β, which covers long-lived services (LSP, MCP, OAuth, tool execution, memory, compaction, voice, settings sync, β¦). On the API surface it exposes expandEnvVarsInString β mainly functions, hooks, or classes. What the file header says: Shared utilities for expanding environment variables in MCP server configurations.
Generated from folder role, exports, dependency roots, and inline comments β not hand-reviewed for every path.
π§ Inline summary
Shared utilities for expanding environment variables in MCP server configurations
π€ Exports (heuristic)
expandEnvVarsInString
π₯οΈ Source preview
/**
* 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,
}
}