detectCycles
Detects cycles in the derivation dependency graph.
Uses Kahn's algorithm variant with DFS to detect cycles. Bidirectional sync patterns (A→B→A) are allowed because they stabilize via the equality check at runtime.
Presentation
function detectCycles (collection: DerivationCollection ): CycleDetectionResult ;Returns
Parameters
| Name | Type | Description |
|---|---|---|
| collection | | The collected derivation entries |
Example usage
const collection = collectDerivations (fields);
const result = detectCycles (collection);
if (result.hasCycle) {
console.error(`Cycle detected: ${result.cyclePath?.join(' -> ')}`);
throw new Error(result.errorMessage);
}