UNPKG

@foxpage/foxpage-types

Version:

foxpage sdk types

42 lines (41 loc) 1.25 kB
import { Context } from '../../context'; import { FoxpageHooks } from '../../hook'; import { VariableItem, VariableProps, VariableType } from '../../manager/variable'; export interface VariableParser { preParse(): void; parse(ctx: Context): Promise<void>; register(parser: VariableParseEntity): void; registerDynamic(hooks?: FoxpageHooks): Promise<void>; } export interface SysVariable extends VariableItem { type: 'data.sys'; props: Record<string, any>; } export interface StaticVariable extends VariableItem { type: 'data.static'; props: VariableProps<{ type: 'json'; value: any; } | { type: string; value: any; }>; } export interface FunctionVariable extends VariableItem { type: 'data.function.call'; props: VariableProps<{ function: string; args: any[]; }>; } export interface VariableParseEntity<T = StaticVariable | FunctionVariable | any, R = any> { type: VariableType; parse: (variable: T, context: Context) => R | void; } export interface VariableContext extends Context { [key: string]: any; } export interface SystemVariableProvider<T = unknown> { name: string; get: (context: VariableContext) => T | Promise<T>; }