d-render
Version:
数据渲染库 - form、table、search-form
55 lines (54 loc) • 2.17 kB
TypeScript
import { IAnyObject, IRenderConfigDependOn, TFormConfig, IRenderConfigDependOnEffect } from '@d-render/shared';
import { IKey } from './util';
type TEffectFn = ((...args: unknown[]) => unknown | Promise<unknown>) | boolean;
interface IPrivateParam {
keys: Array<string>;
oldValues: Array<unknown>;
}
type TEffect = [
TEffectFn,
IPrivateParam
];
export type IEffects = Array<TEffect>;
export type IExecutor = (values: IAnyObject, outValues: IAnyObject | undefined, effects: IEffects) => void | Promise<void>;
interface IGlobalParam {
values: IAnyObject;
outValues?: IAnyObject;
keys: Array<IKey>;
oldValues: Array<unknown>;
executeChangeValueEffect: boolean;
}
interface IEffectExecutorConfig {
executor: IExecutor;
condition?: (effects: IEffects, executeChangeValueEffect: boolean) => boolean;
transformStrEffect?: (effectStr: string) => Function;
}
export interface IEffectExecutorConfigs {
[propname: string]: IEffectExecutorConfig;
}
interface IEffectConfig {
[propname: string]: IEffects;
}
interface IEffectParam {
keys?: Array<string>;
effect?: IRenderConfigDependOn['effect'];
oldValues?: Array<unknown>;
}
type IEffectParams = Array<IEffectParam>;
export declare class EffectExecutor {
config: IEffectExecutorConfigs;
types: Array<string>;
executeChangeValueEffect?: boolean;
values?: IAnyObject;
outValues?: IAnyObject;
effectsConfig?: IEffectConfig;
constructor(config?: IEffectExecutorConfigs);
setExecutor(type: string, executor: IExecutor): void;
compatibleEffect(effectConfig: IRenderConfigDependOnEffect, type: string, param: IPrivateParam | IGlobalParam): (TEffectFn | IPrivateParam | IGlobalParam)[][];
getGlobalEffect(fieldConfig: TFormConfig, type: string): any;
getExecuteEffect(params: IEffectParams, fieldConfig: TFormConfig, globalParam: IGlobalParam): IEffectConfig;
analysisEffects(effectParams: IEffectParams, config: TFormConfig, globalParam: IGlobalParam): void;
execute(type: string, logKey: string, ...args: [effects: IEffects, executeChangeValueEffect: boolean]): void;
executeAll(logKey: string): void;
}
export {};