@bian-womp/spark-graph 0.3.59 → 0.3.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/index.cjs +10 -32
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/runtime/GraphRuntime.d.ts.map +1 -1
- package/lib/cjs/src/runtime/components/Graph.d.ts +0 -4
- package/lib/cjs/src/runtime/components/Graph.d.ts.map +1 -1
- package/lib/cjs/src/runtime/components/HandleResolver.d.ts.map +1 -1
- package/lib/cjs/src/runtime/components/graph-utils.d.ts +2 -2
- package/lib/cjs/src/runtime/components/graph-utils.d.ts.map +1 -1
- package/lib/esm/index.js +10 -32
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/runtime/GraphRuntime.d.ts.map +1 -1
- package/lib/esm/src/runtime/components/Graph.d.ts +0 -4
- package/lib/esm/src/runtime/components/Graph.d.ts.map +1 -1
- package/lib/esm/src/runtime/components/HandleResolver.d.ts.map +1 -1
- package/lib/esm/src/runtime/components/graph-utils.d.ts +2 -2
- package/lib/esm/src/runtime/components/graph-utils.d.ts.map +1 -1
- package/package.json +2 -2
package/lib/cjs/index.cjs
CHANGED
|
@@ -919,14 +919,6 @@ class Graph {
|
|
|
919
919
|
setResolvedHandles(nodeId, handles) {
|
|
920
920
|
this.resolvedByNode.set(nodeId, handles);
|
|
921
921
|
}
|
|
922
|
-
/**
|
|
923
|
-
* Iterate over resolved handles safely
|
|
924
|
-
*/
|
|
925
|
-
forEachResolvedHandles(callback) {
|
|
926
|
-
for (const [nodeId, handles] of this.resolvedByNode.entries()) {
|
|
927
|
-
callback(handles, nodeId);
|
|
928
|
-
}
|
|
929
|
-
}
|
|
930
922
|
// ==================== Utility Methods ====================
|
|
931
923
|
/**
|
|
932
924
|
* Check if all inbound edges for a node have values
|
|
@@ -2128,11 +2120,11 @@ function tryHandleResolving(def, registry, environment) {
|
|
|
2128
2120
|
}
|
|
2129
2121
|
return { resolved: out, pending };
|
|
2130
2122
|
}
|
|
2131
|
-
function buildEdges(def, registry,
|
|
2123
|
+
function buildEdges(def, registry, graph) {
|
|
2132
2124
|
return def.edges.map((e) => {
|
|
2133
2125
|
const srcNode = def.nodes.find((n) => n.nodeId === e.source.nodeId);
|
|
2134
2126
|
const dstNode = def.nodes.find((n) => n.nodeId === e.target.nodeId);
|
|
2135
|
-
const { srcDeclared, dstDeclared } = extractEdgeTypes(e.source.nodeId, e.source.handle, e.target.nodeId, e.target.handle,
|
|
2127
|
+
const { srcDeclared, dstDeclared } = extractEdgeTypes(e.source.nodeId, e.source.handle, e.target.nodeId, e.target.handle, registry, graph);
|
|
2136
2128
|
const { convert, convertAsync } = buildEdgeConverters(srcDeclared, dstDeclared, registry, `buildEdges: ${srcNode?.typeId || ""}.${e.source.nodeId}.${e.source.handle} -> ${dstNode?.typeId || ""}.${e.target.nodeId}.${e.target.handle}`);
|
|
2137
2129
|
return {
|
|
2138
2130
|
id: e.id,
|
|
@@ -2152,15 +2144,13 @@ function buildEdges(def, registry, resolvedByNode) {
|
|
|
2152
2144
|
* Used by both buildEdges and updateNodeHandles to avoid duplication
|
|
2153
2145
|
* Now supports union types on both source (output) and destination (input) handles
|
|
2154
2146
|
*/
|
|
2155
|
-
function extractEdgeTypes(sourceNodeId, sourceHandle, targetNodeId, targetHandle,
|
|
2156
|
-
const srcResolved =
|
|
2157
|
-
const dstResolved =
|
|
2147
|
+
function extractEdgeTypes(sourceNodeId, sourceHandle, targetNodeId, targetHandle, registry, graph) {
|
|
2148
|
+
const srcResolved = graph.getResolvedHandles(sourceNodeId);
|
|
2149
|
+
const dstResolved = graph.getResolvedHandles(targetNodeId);
|
|
2158
2150
|
const srcDeclared = srcResolved
|
|
2159
2151
|
? srcResolved.outputs[sourceHandle]
|
|
2160
|
-
:
|
|
2161
|
-
const dstDeclared = dstResolved
|
|
2162
|
-
? getInputDeclaredTypes(dstResolved.inputs, targetHandle)
|
|
2163
|
-
: undefined;
|
|
2152
|
+
: registry.nodes.get(sourceNodeId)?.outputs[sourceHandle];
|
|
2153
|
+
const dstDeclared = getInputDeclaredTypes(dstResolved ? dstResolved.inputs : registry.nodes.get(targetNodeId)?.inputs, targetHandle);
|
|
2164
2154
|
return {
|
|
2165
2155
|
srcDeclared,
|
|
2166
2156
|
dstDeclared,
|
|
@@ -2426,10 +2416,6 @@ class HandleResolver {
|
|
|
2426
2416
|
if (!node)
|
|
2427
2417
|
return;
|
|
2428
2418
|
this.graph.setResolvedHandles(nodeId, handles);
|
|
2429
|
-
const resolvedByNode = new Map();
|
|
2430
|
-
this.graph.forEachResolvedHandles((handles, nodeId) => {
|
|
2431
|
-
resolvedByNode.set(nodeId, handles);
|
|
2432
|
-
});
|
|
2433
2419
|
const registry = this.registry; // Store for use in callback
|
|
2434
2420
|
this.graph.forEachEdge((e, _index) => {
|
|
2435
2421
|
// Only update edges that touch the changed node
|
|
@@ -2440,7 +2426,7 @@ class HandleResolver {
|
|
|
2440
2426
|
const dstNode = this.graph.getNode(e.target.nodeId);
|
|
2441
2427
|
const oldDstDeclared = e.dstDeclared;
|
|
2442
2428
|
// Extract edge types using shared helper (handles both source and target updates)
|
|
2443
|
-
const { srcDeclared, dstDeclared } = extractEdgeTypes(e.source.nodeId, e.source.handle, e.target.nodeId, e.target.handle,
|
|
2429
|
+
const { srcDeclared, dstDeclared } = extractEdgeTypes(e.source.nodeId, e.source.handle, e.target.nodeId, e.target.handle, registry, this.graph);
|
|
2444
2430
|
// Update converters
|
|
2445
2431
|
const conv = buildEdgeConverters(srcDeclared, dstDeclared, registry, `updateNodeHandles: ${srcNode?.typeId || ""}.${e.source.nodeId}.${e.source.handle} -> ${dstNode?.typeId || ""}.${e.target.nodeId}.${e.target.handle}`);
|
|
2446
2432
|
// Update edge properties via Graph
|
|
@@ -3737,11 +3723,7 @@ class GraphRuntime {
|
|
|
3737
3723
|
gr.graph.setNode(n.nodeId, rn);
|
|
3738
3724
|
}
|
|
3739
3725
|
// Instantiate edges
|
|
3740
|
-
const
|
|
3741
|
-
gr.graph.forEachResolvedHandles((handles, nodeId) => {
|
|
3742
|
-
resolvedByNode.set(nodeId, handles);
|
|
3743
|
-
});
|
|
3744
|
-
const edges = buildEdges(def, registry, resolvedByNode);
|
|
3726
|
+
const edges = buildEdges(def, registry, gr.graph);
|
|
3745
3727
|
gr.graph.setEdges(edges);
|
|
3746
3728
|
// Schedule async recompute only for nodes that indicated Promise-based resolveHandles
|
|
3747
3729
|
for (const nodeId of initial.pending) {
|
|
@@ -4249,11 +4231,7 @@ class GraphRuntime {
|
|
|
4249
4231
|
for (const [nodeId, handles] of result.resolved) {
|
|
4250
4232
|
this.graph.setResolvedHandles(nodeId, handles);
|
|
4251
4233
|
}
|
|
4252
|
-
const
|
|
4253
|
-
this.graph.forEachResolvedHandles((handles, nodeId) => {
|
|
4254
|
-
resolvedByNode.set(nodeId, handles);
|
|
4255
|
-
});
|
|
4256
|
-
const afterEdges = buildEdges(def, registry, resolvedByNode);
|
|
4234
|
+
const afterEdges = buildEdges(def, registry, this.graph);
|
|
4257
4235
|
this.graph.setEdges(afterEdges);
|
|
4258
4236
|
for (const nodeId of result.pending) {
|
|
4259
4237
|
this.handleResolver.scheduleRecomputeHandles(nodeId);
|