ts-api-core
Version:
Nodejs api framework core
65 lines (64 loc) • 3.91 kB
TypeScript
import { SrcConverterBase } from '../utils/model.helper';
import { BaseObject, ClassType } from '../context/base.object';
import { RequestContext } from '../context/request.context';
import { RequestResultMerageConditionConfig, RequestItem, RequestItemArgs, RequestItemArgsOption, RequestResultConfig, RequestResultConvert, RequestResultFiled, RequestResultMarageCondition } from '../base/reqest.data';
import { HttpApi, WrapperResult } from "./base.wrapper";
import { BaseMerageCondition } from './helpers/merage.condition';
export interface RawWrapper {
/** 执行请求 */
executeRequest: (context: RequestContext) => Promise<WrapperResult<any | undefined>>;
}
/**
* 自动化 Raw 请求数据加工基类
*/
export declare class BaseRouteRawWrapper extends BaseObject<RequestContext> implements RawWrapper {
/** 执行请求 */
executeRequest(context: RequestContext): Promise<WrapperResult<any | undefined>>;
/** 生成 api 请求 */
protected makeHttpRequest(item: string | RequestItem, index: number, context: RequestContext): HttpApi;
/** 获取请求参数 */
protected getRequestParams(context: RequestContext, api: RequestItem, items: (string | RequestItemArgs)[] | undefined, opt: RequestItemArgsOption | undefined,
/** 是否是优先取 POST 参数 */
flag?: number): any | undefined;
/**
* 获取单个的参数值
* @param context
* @param v
* @param flag 是否是优先取 POST 参数
* @returns
*/
getRequestArgsItem(context: RequestContext, v: RequestItemArgs, flag?: number): any | undefined;
/** 获取对象中指定路径字段(以"`.`"分隔)的值 */
protected getValueByPath(data: any | undefined, path: string, ignoreCase?: boolean, deleteSrc?: boolean): any | undefined;
/**
* 解析返回数据
* @param data RequestApi 返回的 Data
*/
protected parserApiResult(context: RequestContext, respConfig: RequestResultConfig | undefined, data: any | undefined, needHumpConv?: boolean, customValues?: any | undefined, isArrayModel?: boolean, arrayConvert?: (item: any | undefined, itemValue: any | undefined) => any | undefined): any | undefined;
/** 初始化返回数据 */
protected initResultField(obj: Record<string, any> | undefined, field: string | RequestResultFiled,
/** 原始的数据列表 */
datas: any[],
/** 请求上下文 */
context: RequestContext, customValues?: any | undefined): any | undefined;
protected converterResultValue(convert: RequestResultConvert | undefined, convert_param: any[] | undefined, owner: any | undefined, value: any | undefined): any | undefined;
/** 获取转换器 */
protected getConverter(type: RequestResultConvert): ClassType<SrcConverterBase> | undefined;
/**
* 合并的源数据
* @param srcDatas 源数据数组
* @param merage 源数据索引号
* @param condition 合并条件配置
* @param fields 返回配置的字段信息,需要将配置中有命名变换的字段从合并后的结果中排除
* @returns
*/
protected merageData(srcDatas: any[], customValues: any | undefined, curValue: Record<string, any>, merage: number, condition?: RequestResultMerageConditionConfig): void;
/** 获取自动合并条件处理器 */
protected getConditionHandler(type: RequestResultMarageCondition): ClassType<BaseMerageCondition> | undefined;
/** 将数据列表的 key 转为小写 */
protected transKeyToLowercase(datas: any[]): any[];
/** 将对象的关键字 key 转为小写 */
protected toLowercaseKey(dataItem: any | undefined): any | undefined;
/** 获取根据返回配置的字段名称,获取字段配置 */
protected getFieldByName(resp: RequestResultConfig | undefined, name: string): string | RequestResultFiled | undefined;
}