(name: string, type: string, file: string, val: number, extraProps: any = {})
| 718 | }; |
| 719 | |
| 720 | const addNode = (name: string, type: string, file: string, val: number, extraProps: any = {}) => { |
| 721 | const maxNodes = indexOptions.maxNodes || 100000; |
| 722 | if (nodes.length >= maxNodes && type !== 'Repository') { |
| 723 | return -1; |
| 724 | } |
| 725 | const id = nodeIdSequence++; |
| 726 | nodes.push({ id, name, type, file, val, ...extraProps }); |
| 727 | const symbolKey = `${type}:${name}`; |
| 728 | if (!nodeSymbolIndex.has(symbolKey)) nodeSymbolIndex.set(symbolKey, []); |
| 729 | nodeSymbolIndex.get(symbolKey)!.push(id); |
| 730 | if (!nodeSymbolIndex.has(name)) nodeSymbolIndex.set(name, []); |
| 731 | nodeSymbolIndex.get(name)!.push(id); |
| 732 | return id; |
| 733 | }; |
| 734 | |
| 735 | /** |
| 736 | * Resolve a symbol name to a single node ID, preferring candidates |
no test coverage detected