* Resolve and persist edges to database
(
unresolvedRefs: UnresolvedReference[],
onProgress?: (current: number, total: number) => void
)
| 851 | * Resolve and persist edges to database |
| 852 | */ |
| 853 | resolveAndPersist( |
| 854 | unresolvedRefs: UnresolvedReference[], |
| 855 | onProgress?: (current: number, total: number) => void |
| 856 | ): ResolutionResult { |
| 857 | const result = this.resolveAll(unresolvedRefs, onProgress); |
| 858 | |
| 859 | // Create edges from resolved references |
| 860 | const edges = this.createEdges(result.resolved); |
| 861 | |
| 862 | // Insert edges into database |
| 863 | if (edges.length > 0) { |
| 864 | this.queries.insertEdges(edges); |
| 865 | } |
| 866 | |
| 867 | // Clean up resolved refs from unresolved_refs table so metrics are accurate |
| 868 | if (result.resolved.length > 0) { |
| 869 | this.queries.deleteSpecificResolvedReferences( |
| 870 | result.resolved.map((r) => ({ |
| 871 | fromNodeId: r.original.fromNodeId, |
| 872 | referenceName: r.original.referenceName, |
| 873 | referenceKind: r.original.referenceKind, |
| 874 | })) |
| 875 | ); |
| 876 | } |
| 877 | |
| 878 | return result; |
| 879 | } |
| 880 | |
| 881 | /** |
| 882 | * Second resolution pass for chained static-factory / fluent calls whose |
no test coverage detected