@bian-womp/spark-graph 0.1.11 → 0.1.12

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 CHANGED
@@ -480,16 +480,20 @@ class GraphRuntime {
480
480
  h(payload);
481
481
  }
482
482
  setInput(nodeId, handle, value) {
483
+ this.setInputs(nodeId, { [handle]: value });
484
+ }
485
+ setInputs(nodeId, inputs) {
483
486
  const node = this.nodes.get(nodeId);
484
487
  if (!node)
485
488
  throw new Error(`Node not found: ${nodeId}`);
486
- // If this input has an inbound edge, prefer propagated runtime value over manual input
487
- const hasInbound = this.edges.some((e) => e.target.nodeId === nodeId && e.target.handle === handle);
488
- if (hasInbound)
489
- return; // respect linked value
490
- node.inputs[handle] = value;
491
- // Emit value event for input updates
492
- this.emit("value", { nodeId, handle, value, io: "input" });
489
+ for (const [handle, value] of Object.entries(inputs)) {
490
+ const hasInbound = this.edges.some((e) => e.target.nodeId === nodeId && e.target.handle === handle);
491
+ if (hasInbound)
492
+ continue;
493
+ node.inputs[handle] = value;
494
+ // Emit value event for input updates
495
+ this.emit("value", { nodeId, handle, value, io: "input" });
496
+ }
493
497
  if (!this.paused)
494
498
  this.scheduleInputsChanged(nodeId);
495
499
  }
@@ -1255,7 +1259,10 @@ class AbstractEngine {
1255
1259
  this.graphRuntime.launch();
1256
1260
  }
1257
1261
  setInput(nodeId, handle, value) {
1258
- this.graphRuntime.setInput(nodeId, handle, value);
1262
+ this.setInputs(nodeId, { [handle]: value });
1263
+ }
1264
+ setInputs(nodeId, inputs) {
1265
+ this.graphRuntime.setInputs(nodeId, inputs);
1259
1266
  }
1260
1267
  triggerExternal(nodeId, event) {
1261
1268
  this.graphRuntime.triggerExternal(nodeId, event);
@@ -1318,8 +1325,8 @@ class BatchedEngine extends AbstractEngine {
1318
1325
  this.timer = setInterval(() => this.flush(), this.opts.flushIntervalMs);
1319
1326
  }
1320
1327
  }
1321
- setInput(nodeId, handle, value) {
1322
- super.setInput(nodeId, handle, value);
1328
+ setInputs(nodeId, inputs) {
1329
+ super.setInputs(nodeId, inputs);
1323
1330
  this.dirtyNodes.add(nodeId);
1324
1331
  }
1325
1332
  triggerExternal(nodeId, event) {
@@ -1395,7 +1402,7 @@ class HybridEngine extends AbstractEngine {
1395
1402
  launch() {
1396
1403
  this.graphRuntime.resume();
1397
1404
  }
1398
- setInput(nodeId, handle, value) {
1405
+ setInputs(nodeId, inputs) {
1399
1406
  this.updateWindow();
1400
1407
  this.countInWindow += 1;
1401
1408
  const threshold = this.opts.batchThreshold ?? 5;
@@ -1418,7 +1425,7 @@ class HybridEngine extends AbstractEngine {
1418
1425
  this.flushTimer = undefined;
1419
1426
  }, windowMs);
1420
1427
  }
1421
- super.setInput(nodeId, handle, value);
1428
+ super.setInputs(nodeId, inputs);
1422
1429
  this.dirtyNodes.add(nodeId);
1423
1430
  if (!this.batching)
1424
1431
  this.graphRuntime.__unsafe_scheduleInputsChanged(nodeId);
@@ -1444,8 +1451,8 @@ class StepEngine extends AbstractEngine {
1444
1451
  this.graphRuntime.pause();
1445
1452
  }
1446
1453
  launch() { }
1447
- setInput(nodeId, handle, value) {
1448
- super.setInput(nodeId, handle, value);
1454
+ setInputs(nodeId, inputs) {
1455
+ super.setInputs(nodeId, inputs);
1449
1456
  this.dirtyNodes.add(nodeId);
1450
1457
  }
1451
1458
  triggerExternal(nodeId, event) {