( entries: readonly ToolInventoryEntry[], kind: ToolInventoryGapKind, predicate: (entry: ToolInventoryEntry) => boolean, )
| 35 | } |
| 36 | |
| 37 | function collectGap( |
| 38 | entries: readonly ToolInventoryEntry[], |
| 39 | kind: ToolInventoryGapKind, |
| 40 | predicate: (entry: ToolInventoryEntry) => boolean, |
| 41 | ): ToolInventoryGap | null { |
| 42 | const tools = sortToolNames( |
| 43 | entries.filter(predicate).map(entry => entry.name), |
| 44 | ) |
| 45 | return tools.length > 0 ? { kind, tools } : null |
| 46 | } |
| 47 | |
| 48 | export function collectToolInventoryGaps( |
| 49 | entries: readonly ToolInventoryEntry[], |
no test coverage detected