UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 1.15 kB
import{generateInputPortId,generateOutputPortId,generateParamPortId}from"./NodeView.js";export class EdgeView{id;type;sourceId;destinationId;sourcePortId;destinationPortId;constructor(e,t){const o=generateEdgePortIdsByData(e,t);if(!o)throw new Error("Unable to generate edge port IDs");const{edgeId:d,sourcePortId:r,destinationPortId:n}=o;this.id=d,this.type=t,this.sourceId=e.sourceId,this.destinationId=e.destinationId,this.sourcePortId=r,this.destinationPortId=n}}export const generateEdgePortIdsByData=(e,t)=>{if(!e.sourceId||!e.destinationId)return console.error(`Undefined node message: ${JSON.stringify(e)}`),null;const o=generateOutputPortId(e.sourceId,e.sourceOutputIndex),d=function(e,t){if(t===EdgeTypes.NodeToNode){const t=e;return generateInputPortId(e.destinationId,t.destinationInputIndex)}if(t===EdgeTypes.NodeToParam){const t=e;return generateParamPortId(e.destinationId,t.destinationParamId)}return console.error(`Unknown edge type: ${t}`),""}(e,t);return{edgeId:`${o}->${d}`,sourcePortId:o,destinationPortId:d}};export var EdgeTypes;!function(e){e.NodeToNode="NodeToNode",e.NodeToParam="NodeToParam"}(EdgeTypes||(EdgeTypes={}));