@selenite/graph-editor
Version:
A graph editor for visual programming, based on rete and svelte.
64 lines (63 loc) • 2.41 kB
TypeScript
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 {};