@nodescript/core
Version:
Visual programming language for Browser and Node
62 lines (61 loc) • 2.25 kB
TypeScript
import { Event } from 'nanoevent';
import * as t from '../types/index.js';
import { SchemaSpec } from '../types/index.js';
export declare const SYM_DEFERRED: unique symbol;
export declare const SYM_PENDING: unique symbol;
export declare const SYM_SKIPPED: unique symbol;
/**
* GraphEvalContext provides runtime tools for graph computation,
* node caching, introspection, etc.
*/
export declare class GraphEvalContext implements t.GraphEvalContext {
readonly parent: GraphEvalContext | null;
readonly lib: t.RuntimeLib;
nodeEvaluated: Event<t.NodeResult>;
scopeCaptured: Event<t.ScopeData>;
pendingNodeUids: Set<string>;
cache: Map<string, any>;
locals: Map<string, any>;
private scopeData;
constructor(parent?: GraphEvalContext | null);
clear(): void;
finalize(): Promise<void>;
get depth(): number;
getLocal<T>(key: string, defaultValue?: T): T | undefined;
setLocal(key: string, value: unknown): void;
newScope(): t.GraphEvalContext;
getScopeData(): any;
setScopeData(data: any): this;
convertType(value: unknown, schema: SchemaSpec): unknown;
get(object: unknown, keyish: string): unknown;
set(object: unknown, keyish: string, value: unknown): void;
toArray(value: unknown): unknown[];
convertAuto(value: string, targetSchema?: SchemaSpec): unknown;
checkPendingNode(nodeUid: string): void;
skipEvaluation(message?: string, token?: string, status?: number): void;
isControlException(error: any): boolean;
deferred(fn: () => unknown): Deferred;
isDeferred(value: unknown): value is t.Deferred;
resolveDeferred(value: unknown): unknown;
/**
* @deprecated kept for backwards compatibility
*/
span(): void;
}
export declare class NodePendingError extends Error {
name: string;
code: string;
get [SYM_PENDING](): boolean;
}
export declare class EvaluationSkippedError extends Error {
code: string;
status: number;
token: string;
constructor(message: string, token?: string, status?: number);
get [SYM_SKIPPED](): boolean;
}
export declare class Deferred implements t.Deferred {
resolve: () => unknown;
constructor(resolve: () => unknown);
get [SYM_DEFERRED](): boolean;
}