(group: WorkflowGroup, removed: ReadonlySet<string>)
| 800 | * changed. |
| 801 | */ |
| 802 | export function stripGroupDeps(group: WorkflowGroup, removed: ReadonlySet<string>): WorkflowGroup { |
| 803 | const cols = group.dependencies?.columns ?? [] |
| 804 | const mappings = group.inputMappings ?? [] |
| 805 | const filteredDeps = cols.filter((d) => !removed.has(d)) |
| 806 | const filteredMappings = mappings.filter((m) => !removed.has(m.columnName)) |
| 807 | const depsChanged = filteredDeps.length !== cols.length |
| 808 | const mappingsChanged = filteredMappings.length !== mappings.length |
| 809 | if (!depsChanged && !mappingsChanged) return group |
| 810 | const next: WorkflowGroup = { ...group } |
| 811 | if (depsChanged) { |
| 812 | next.dependencies = filteredDeps.length > 0 ? { columns: filteredDeps } : undefined |
| 813 | } |
| 814 | if (mappingsChanged) { |
| 815 | next.inputMappings = filteredMappings.length > 0 ? filteredMappings : undefined |
| 816 | } |
| 817 | return next |
| 818 | } |
| 819 | |
| 820 | /** |
| 821 | * Validates schema-level invariants. Run on every `addTableColumn`, |
no outgoing calls
no test coverage detected