UNPKG

@tokens-studio/graph-engine

Version:

An execution engine to handle Token Studios generators and resolvers

33 lines 3.61 kB
import { Node } from '../../programmatic/node.js'; import { NumberSchema, createVariadicSchema } from '../../schemas/index.js'; /** * @example * * ```json * {"nodes":[{"id":"69cba311-a27f-4809-8fe4-496d42486c08","type":"studio.tokens.math.addVariadic","inputs":[{"name":"inputs","value":[42,3],"type":{"title":"Number[]","type":"array","items":{"$id":"https://schemas.tokens.studio/number.json","title":"Number","type":"number"},"default":[]},"variadic":true,"visible":true}],"annotations":{"ui.position.x":385.11804199218744,"ui.position.y":160.4004618326823}},{"id":"ec280cbe-bc87-4bff-9cbc-530e511e3cac","type":"studio.tokens.generic.constant","inputs":[{"name":"value","value":42,"type":{"$id":"https://schemas.tokens.studio/any.json","title":"Any"},"dynamicType":{"$id":"https://schemas.tokens.studio/number.json","title":"Number","type":"number"},"annotations":{"ui.resetable":true}}],"annotations":{"ui.position.x":-22.8819580078125,"ui.position.y":359.7337951660156}},{"id":"75487ffd-7671-44a7-88b4-71798cdebf8c","type":"studio.tokens.generic.constant","inputs":[{"name":"value","value":3,"type":{"$id":"https://schemas.tokens.studio/any.json","title":"Any"},"dynamicType":{"$id":"https://schemas.tokens.studio/number.json","title":"Number","type":"number"},"annotations":{"ui.resetable":true}}],"annotations":{"ui.position.x":-22.8819580078125,"ui.position.y":359.7337951660156}},{"id":"9e3bf536-f1ff-49d3-9291-d8ec91dfe916","type":"studio.tokens.generic.constant","inputs":[{"name":"value","value":6,"type":{"$id":"https://schemas.tokens.studio/any.json","title":"Any"},"dynamicType":{"$id":"https://schemas.tokens.studio/number.json","title":"Number","type":"number"},"annotations":{"ui.resetable":true}}],"annotations":{"ui.position.x":-22.8819580078125,"ui.position.y":359.7337951660156}},{"id":"d28e91e4-918f-4928-8221-c33b7fd81ce2","type":"studio.tokens.generic.note","inputs":[],"annotations":{"ui.position.x":136.36369921737844,"ui.position.y":-14.385675110158786,"ui.nodeType":"studio.tokens.generic.note","ui.description":"Try connect the last constant to the `inputs +` handle."}}],"edges":[{"id":"b0c3194a-7817-4724-b51b-aca20af7c2c9","source":"ec280cbe-bc87-4bff-9cbc-530e511e3cac","sourceHandle":"value","target":"69cba311-a27f-4809-8fe4-496d42486c08","targetHandle":"inputs","annotations":{"engine.index":0}},{"id":"ad6e165c-7514-44b1-90f9-9d21df4720cc","source":"75487ffd-7671-44a7-88b4-71798cdebf8c","sourceHandle":"value","target":"69cba311-a27f-4809-8fe4-496d42486c08","targetHandle":"inputs","annotations":{"engine.index":1}}],"annotations":{"engine.id":"f4a6a09d-0550-414f-a183-389a7d241402","engine.capabilities.web-audio":"0.0.0","engine.capabilities.fs":"0.0.0","engine.version":"0.12.0","ui.viewport":{"x":175.36324003942718,"y":143.45803479766573,"zoom":1.1023008602108806},"ui.version":"2.9.4"}} * ``` */ export default class NodeDefinition extends Node { static title = 'Add Node (Variadic)'; static type = 'studio.tokens.math.addVariadic'; static description = 'Add node allows you to add two or more numbers.'; constructor(props) { super(props); this.addInput('inputs', { type: { ...createVariadicSchema(NumberSchema), default: [] }, variadic: true }); this.addOutput('value', { type: NumberSchema }); } execute() { const inputs = this.inputs.inputs.value; const output = inputs.reduce((acc, curr) => acc + curr, 0); this.outputs.value.set(output); } } //# sourceMappingURL=addVariadic.js.map