MCPcopy Create free account
hub / github.com/heygen-com/hyperframes / resolveConfig

Function resolveConfig

packages/engine/src/config.ts:321–464  ·  view source on GitHub ↗
(overrides?: Partial<EngineConfig>)

Source from the content-addressed store, hash-verified

319 * takes precedence over everything.
320 */
321export function resolveConfig(overrides?: Partial<EngineConfig>): EngineConfig {
322 const env = (key: string): string | undefined => process.env[key];
323 const envNum = (key: string, fallback: number): number => {
324 const raw = env(key);
325 if (raw === undefined || raw === "") return fallback;
326 const n = Number(raw);
327 return Number.isFinite(n) ? n : fallback;
328 };
329 const envBool = (key: string, fallback: boolean): boolean => {
330 const raw = env(key);
331 if (raw === undefined) return fallback;
332 return raw === "true";
333 };
334 const envVp9CpuUsed = (): number => {
335 const raw = env("PRODUCER_VP9_CPU_USED");
336 if (raw === undefined || raw === "") return DEFAULT_CONFIG.vp9CpuUsed;
337 return normalizeVp9CpuUsed(Number(raw));
338 };
339 const envBrowserGpuMode = (): EngineConfig["browserGpuMode"] => {
340 const raw = env("PRODUCER_BROWSER_GPU_MODE");
341 if (raw === "hardware" || raw === "software" || raw === "auto") return raw;
342 return DEFAULT_CONFIG.browserGpuMode;
343 };
344 // Tri-state: explicit on/off via env, otherwise auto-detect from total RAM.
345 const resolveLowMemoryMode = (): boolean => {
346 const raw = env("PRODUCER_LOW_MEMORY_MODE")?.toLowerCase();
347 if (raw === "true" || raw === "on" || raw === "1") return true;
348 if (raw === "false" || raw === "off" || raw === "0") return false;
349 return isLowMemorySystem();
350 };
351 // Opt-OUT: default ON, disabled only by an explicit falsey value.
352 const resolveStaticFrameDedup = (): boolean => {
353 const raw = env("HF_STATIC_DEDUP")?.trim().toLowerCase();
354 return !(raw === "false" || raw === "off" || raw === "0");
355 };
356
357 // Env-var layer (backward compat)
358 const fromEnv: Partial<EngineConfig> = {
359 concurrency: env("PRODUCER_MAX_WORKERS") ? Number(env("PRODUCER_MAX_WORKERS")) : undefined,
360 coresPerWorker: envNum("PRODUCER_CORES_PER_WORKER", DEFAULT_CONFIG.coresPerWorker),
361 minParallelFrames: envNum("PRODUCER_MIN_PARALLEL_FRAMES", DEFAULT_CONFIG.minParallelFrames),
362 largeRenderThreshold: envNum(
363 "PRODUCER_LARGE_RENDER_THRESHOLD",
364 DEFAULT_CONFIG.largeRenderThreshold,
365 ),
366
367 chromePath: env("PRODUCER_HEADLESS_SHELL_PATH"),
368 disableGpu: envBool("PRODUCER_DISABLE_GPU", DEFAULT_CONFIG.disableGpu),
369 browserGpuMode: envBrowserGpuMode(),
370 enableBrowserPool: envBool("PRODUCER_ENABLE_BROWSER_POOL", DEFAULT_CONFIG.enableBrowserPool),
371 browserTimeout: envNum("PRODUCER_PUPPETEER_LAUNCH_TIMEOUT_MS", DEFAULT_CONFIG.browserTimeout),
372 protocolTimeout: envNum(
373 "PRODUCER_PUPPETEER_PROTOCOL_TIMEOUT_MS",
374 DEFAULT_CONFIG.protocolTimeout,
375 ),
376 expectedChromiumMajor: env("PRODUCER_EXPECTED_CHROMIUM_MAJOR")
377 ? Number(env("PRODUCER_EXPECTED_CHROMIUM_MAJOR"))
378 : undefined,

Callers 5

executeRenderJobFunction · 0.90
planFunction · 0.90
renderChunkFunction · 0.90
runEncodeStageFunction · 0.90
config.test.tsFile · 0.85

Calls 11

envFunction · 0.85
envNumFunction · 0.85
envBoolFunction · 0.85
envBrowserGpuModeFunction · 0.85
resolveStaticFrameDedupFunction · 0.85
resolveLowMemoryModeFunction · 0.85
envVp9CpuUsedFunction · 0.85
memoryAdaptiveCacheLimitFunction · 0.85
normalizeVp9CpuUsedFunction · 0.85
entriesMethod · 0.80

Tested by

no test coverage detected