UNPKG

ts-api-core

Version:

Nodejs api framework core

65 lines (64 loc) 3.91 kB
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; }