MCPcopy
hub / github.com/microsoft/vscode-js-debug / resolveVariableInConfig

Function resolveVariableInConfig

src/configuration.ts:1218–1250  ·  view source on GitHub ↗
(
  config: T,
  varName: string,
  varValue: string | undefined,
)

Source from the content-addressed store, hash-verified

1216}
1217
1218export function resolveVariableInConfig<T>(
1219 config: T,
1220 varName: string,
1221 varValue: string | undefined,
1222): T {
1223 let out: unknown;
1224 if (typeof config === 'string') {
1225 out = config.replace(new RegExp(`\\$\\{${varName}\\}`, 'g'), () => {
1226 if (!varValue) {
1227 throw new Error(
1228 `Unable to resolve \${${varName}} in configuration (${JSON.stringify(varName)})`,
1229 );
1230 }
1231 return varValue;
1232 });
1233 } else if (config instanceof Array) {
1234 out = config.map(cfg => resolveVariableInConfig(cfg, varName, varValue));
1235 } else if (typeof config === 'object' && config) {
1236 const obj: { [key: string]: unknown } = {};
1237 for (const [key, value] of Object.entries(config)) {
1238 obj[resolveVariableInConfig(key, varName, varValue)] = resolveVariableInConfig(
1239 value,
1240 varName,
1241 varValue,
1242 );
1243 }
1244 out = obj;
1245 } else {
1246 out = config;
1247 }
1248
1249 return out as T;
1250}
1251
1252export const breakpointLanguages: ReadonlyArray<string> = [
1253 'javascript',

Callers 3

getAbsoluteLocationFunction · 0.90
readExtensionPackageJsonFunction · 0.90
resolveWorkspaceInConfigFunction · 0.85

Calls 3

mapMethod · 0.80
entriesMethod · 0.80
replaceMethod · 0.65

Tested by

no test coverage detected