import { ClassicPreset } from 'rete'; import type { NodeCategory, NodeMeta, SocketData } from '../types'; export abstract class BaseWorkflowNode extends ClassicPreset.Node { abstract readonly category: NodeCategory; abstract readonly icon: string; abstract readonly description: string; width = 280; height = 140; execStatus: 'idle' | 'running' | 'completed' | 'error' = 'idle'; constructor(label: string) { super(label); } abstract data( inputs: Record ): Promise>; getMeta(): NodeMeta { return { id: this.id, label: this.label, category: this.category, icon: this.icon, description: this.description, }; } }