34 lines
1.4 KiB
TypeScript
34 lines
1.4 KiB
TypeScript
import React from 'react';
|
|
|
|
/**
|
|
* 按一串中间件(middleware)链式转换数据;每个中间件可以是函数,也可以是要动态加载的
|
|
* 组件名字符串(通过 core.getWidgetComponent 解析),支持嵌套数组表示的中间件组
|
|
*/
|
|
declare class DataConverter {
|
|
static "__#private@#resolver": any;
|
|
static "__#private@#newMiddleware": any;
|
|
/**
|
|
* @param {...(Array|[string|Function, *])} middlewares 中间件列表,每项是
|
|
* [中间件名或函数, 传给中间件的配置],或者是这种元组的嵌套数组(会被展开)
|
|
*/
|
|
constructor(...middlewares: (any[] | [string | Function, any])[]);
|
|
/**
|
|
* 依次跑完所有中间件,把 value 转换成最终结果;单个中间件报错会被跳过,不中断整条链
|
|
* @param {*} value 原始值
|
|
* @param {*} [record] 关联的记录数据,中间件里可通过 this.getRecord() 取到
|
|
* @returns {Promise<*>} 转换后的结果
|
|
*/
|
|
toValue: (value: any, record?: any) => Promise<any>;
|
|
/**
|
|
* 把 toValue 的异步转换结果渲染成 React 元素;转换完成前显示 loading,转换出错则显示错误信息
|
|
* @param {*} value 原始值
|
|
* @param {*} record 关联的记录数据
|
|
* @param {*} [loading] 转换完成前显示的占位内容
|
|
* @returns {React.ReactElement}
|
|
*/
|
|
toRender: (value: any, record: any, loading?: any) => React.ReactElement;
|
|
#private;
|
|
}
|
|
|
|
export { DataConverter as default };
|