softflow24 / data-river

https://data-river.dev
MIT License
16 stars 5 forks source link

Implement a system for passing values between nodes via their configuration. #38

Closed c0rtexR closed 6 hours ago

c0rtexR commented 3 weeks ago

Subtask: Implement a system for passing values between nodes via their configuration


Task Overview:
Develop a system that allows values to be passed between nodes based on their input/output keys and configuration settings. The system will manage how data flows from one node to the next, ensuring that each node processes its inputs and generates the correct outputs for downstream nodes.


SMART Criteria

Specific 🎯:
Implement a system that:

Measurable 📏:
Success will be measured by:

Achievable 🚀:
This task is achievable by using JavaScript objects to model the workflow configuration and implementing logic that handles the data flow between nodes, possibly using event-driven or callback-based systems to trigger node executions.

Relevant 🎯:
This system is essential for making the data-river editor functional, as it ensures that nodes can communicate effectively and perform tasks based on the flow of data.

Time-bound ⏳:
This task should be completed within 2 weeks to ensure time for testing in various workflow configurations.


Subtasks 📝


Acceptance Criteria ✅


Additional Notes 🗒

Ensure the system is flexible enough to handle future additions, such as more complex nodes or advanced workflow configurations.

iploooox commented 4 days ago

So far it seems to work, we need multiple input, output scenario and then tests to complete this.

const connections: IConnection[] = edges.map((edge) => ({
      from: edge.source,
      to: edge.target,
      inputKey: "data",
      outputKey: "data",
    }));
{
  "result": {
    "0": {
      "nodeType": "blocks/start@0.1",
      "nodeId": "1",
      "outputs": {
        "started": true
      },
      "inputs": {}
    },
    "1": {
      "nodeType": "blocks/input@0.1",
      "nodeId": "2",
      "outputs": {
        "data": "123"
      },
      "inputs": {
        "input": "123"
      }
    },
    "2": {
      "nodeType": "blocks/output@0.1",
      "nodeId": "3",
      "outputs": {
        "data": "123"
      },
      "inputs": {
        "data": "123"
      }
    },
    "3": {
      "nodeType": "blocks/end@0.1",
      "nodeId": "4",
      "outputs": {},
      "inputs": {
        "data": "123"
      }
    }
  },
  "errors": {}
}
c0rtexR commented 6 hours ago

done we will skip tests for now