(graphNodes: Iterable<GraphNode>)
| 56 | } |
| 57 | |
| 58 | export function deriveChipOptions(graphNodes: Iterable<GraphNode>) { |
| 59 | const families = new Set<string>(); |
| 60 | const languages = new Set<string>(); |
| 61 | for (const node of graphNodes) { |
| 62 | families.add(kindFamily(node.kind)); |
| 63 | languages.add(languageForPath(node.file_path)); |
| 64 | } |
| 65 | return { families: [...families].sort(), languages: [...languages].sort() }; |
| 66 | } |
| 67 | |
| 68 | export function toggleStringSet(values: ReadonlySet<string>, value: string): Set<string> { |
| 69 | const next = new Set(values); |
no test coverage detected