MCPcopy Index your code
hub / github.com/simstudioai/sim / resolveDependencyValue

Function resolveDependencyValue

apps/sim/lib/workflows/subblocks/visibility.ts:389–422  ·  view source on GitHub ↗
(
  dependencyKey: string,
  values: Record<string, unknown>,
  canonicalIndex: CanonicalIndex,
  overrides?: CanonicalModeOverrides
)

Source from the content-addressed store, hash-verified

387 * Resolve the dependency value for a dependsOn key, honoring canonical swaps.
388 */
389export function resolveDependencyValue(
390 dependencyKey: string,
391 values: Record<string, unknown>,
392 canonicalIndex: CanonicalIndex,
393 overrides?: CanonicalModeOverrides
394): unknown {
395 const canonicalId =
396 canonicalIndex.groupsById[dependencyKey]?.canonicalId ||
397 canonicalIndex.canonicalIdBySubBlockId[dependencyKey]
398
399 if (!canonicalId) {
400 return values[dependencyKey]
401 }
402
403 const group = canonicalIndex.groupsById[canonicalId]
404 if (!group) return values[dependencyKey]
405
406 const { basicValue, advancedValue } = getCanonicalValues(group, values)
407 const mode = resolveCanonicalMode(group, values, overrides)
408 const canonicalResult =
409 mode === 'advanced' ? (advancedValue ?? basicValue) : (basicValue ?? advancedValue)
410
411 if (canonicalResult != null) return canonicalResult
412
413 for (const [memberId, memberCanonicalId] of Object.entries(
414 canonicalIndex.canonicalIdBySubBlockId
415 )) {
416 if (memberCanonicalId === canonicalId && isNonEmptyValue(values[memberId])) {
417 return values[memberId]
418 }
419 }
420
421 return values[dependencyKey]
422}
423
424/**
425 * Check if a subblock is gated by a feature flag.

Callers 9

buildSelectorContextFunction · 0.90
combobox.tsxFile · 0.90
dropdown.tsxFile · 0.90
useDependsOnGateFunction · 0.90
workflow-block.tsxFile · 0.90
useReactiveConditionsFunction · 0.90
tool-input.tsxFile · 0.85

Calls 3

getCanonicalValuesFunction · 0.85
resolveCanonicalModeFunction · 0.85
isNonEmptyValueFunction · 0.85

Tested by

no test coverage detected