MCPcopy Index your code
hub / github.com/getsentry/XcodeBuildMCP / readEnvSessionDefaults

Function readEnvSessionDefaults

src/utils/config-store.ts:264–313  ·  view source on GitHub ↗
(env: NodeJS.ProcessEnv)

Source from the content-addressed store, hash-verified

262}
263
264function readEnvSessionDefaults(env: NodeJS.ProcessEnv): Partial<SessionDefaults> | undefined {
265 const defaults: Partial<SessionDefaults> = {};
266 let hasAny = false;
267
268 function setString<K extends keyof SessionDefaults>(key: K, value: string | undefined): void {
269 if (value) {
270 (defaults as Record<string, unknown>)[key] = value;
271 hasAny = true;
272 }
273 }
274
275 function setBool<K extends keyof SessionDefaults>(key: K, value: string | undefined): void {
276 const parsed = parseBoolean(value);
277 if (parsed !== undefined) {
278 (defaults as Record<string, unknown>)[key] = parsed;
279 hasAny = true;
280 }
281 }
282
283 setString('workspacePath', env.XCODEBUILDMCP_WORKSPACE_PATH);
284 setString('projectPath', env.XCODEBUILDMCP_PROJECT_PATH);
285 setString('scheme', env.XCODEBUILDMCP_SCHEME);
286 setString('configuration', env.XCODEBUILDMCP_CONFIGURATION);
287 setString('simulatorName', env.XCODEBUILDMCP_SIMULATOR_NAME);
288 setString('simulatorId', env.XCODEBUILDMCP_SIMULATOR_ID);
289 setString('deviceId', env.XCODEBUILDMCP_DEVICE_ID);
290 setString('derivedDataPath', env.XCODEBUILDMCP_DERIVED_DATA_PATH);
291 setString('platform', env.XCODEBUILDMCP_PLATFORM);
292 setString('bundleId', env.XCODEBUILDMCP_BUNDLE_ID);
293 setBool('useLatestOS', env.XCODEBUILDMCP_USE_LATEST_OS);
294 setBool('suppressWarnings', env.XCODEBUILDMCP_SUPPRESS_WARNINGS);
295 setBool('preferXcodebuild', env.XCODEBUILDMCP_PREFER_XCODEBUILD);
296
297 const simulatorPlatform = env.XCODEBUILDMCP_SIMULATOR_PLATFORM;
298 if (simulatorPlatform) {
299 const valid = ['iOS Simulator', 'watchOS Simulator', 'tvOS Simulator', 'visionOS Simulator'];
300 if (valid.includes(simulatorPlatform)) {
301 defaults.simulatorPlatform = simulatorPlatform as SessionDefaults['simulatorPlatform'];
302 hasAny = true;
303 }
304 }
305
306 const arch = env.XCODEBUILDMCP_ARCH;
307 if (arch === 'arm64' || arch === 'x86_64') {
308 defaults.arch = arch;
309 hasAny = true;
310 }
311
312 return hasAny ? defaults : undefined;
313}
314
315function resolveFromLayers<T>(opts: {
316 key: keyof RuntimeConfigOverrides;

Callers 1

resolveSessionDefaultsFunction · 0.85

Calls 2

setStringFunction · 0.85
setBoolFunction · 0.85

Tested by

no test coverage detected