UNPKG

@selenite/graph-editor

Version:

A graph editor for visual programming, based on rete and svelte.

64 lines (63 loc) 2.41 kB
import type { Node } from '../node/Node'; import { NodeComponent } from './NodeComponent'; export type PythonComponentDataType = 'static' | 'dynamic'; export declare class PythonComponentData<T extends PythonComponentDataType = 'static' | 'dynamic', N = T extends 'static' ? unknown : T extends 'dynamic' ? string : unknown> { type: T; data: N; constructor(type: T, data: N); } type ParseArgumentData = { name: string; type: string; required: boolean; help: string; }; export declare class PythonNodeComponent extends NodeComponent { static isDynamicInput(inputs: Record<string, PythonComponentData[]>): boolean; data(inputs: { [x: string]: PythonComponentData[]; }): Promise<Record<string, PythonComponentData>>; dataCodeGetters: Record<string, () => string>; private importsStatements; private code; private createdVariables; private actualCreatedVars; private dynamicOutputs; private classes; private initCode; private parseArguments; private codeTemplateGetters; private newlinesBefore; constructor({ owner }: { owner: Node; }); setDataCodeGetter(key: string, codeGetter: () => string): void; addImportStatement(...statements: string[]): void; addParseArgument(params: ParseArgumentData): void; addClass(code: string): void; addInitCode(code: string): void; addCode(...code: string[]): void; addVariable(...names: string[]): void; addVariables(...names: string[]): void; addDynamicOutput(...name: string[]): void; setCodeTemplateGetter(getter: ({ inputs }: { inputs: Record<string, unknown>; }) => string, key?: string): void; setEmptyNewlinesBefore(numNewlines: number): void; private getCodeTemplate; private assignActualVars; static toPythonData(data: unknown): string; fetch(): Promise<Record<string, PythonComponentData>>; fetchInputs(): Promise<Record<string, PythonComponentData[]>>; private formatPythonVars; static collectPythonData(node: Node | null, nodeInput: string | null, indentation: string, allVars: Set<string>): Promise<{ importsStatements: Set<string>; code: string; allVars: Set<string>; classes: Record<string, string>; initCode: string[]; parserArguments: Map<string, ParseArgumentData>; }>; toPython(): Promise<string>; } export {};