UNPKG

miniprogram-request

Version:
43 lines (39 loc) 1.5 kB
// import { RequestData, RequestOptions } from './configuration'; import { buildParams, getCommonOptions, Omit } from 'miniprogram-network-utils'; import { FullRequestOption, HttpResponse, wx } from './http'; /** * 微信请求参数 (不包含回调函数) */ export type RequestParams = Omit<wx.RequestOption, 'success' | 'fail' | 'complete'>; /** * 构建请求参数 * @param data - 完整配置参数 */ export function transformRequestSendDefault< T extends {} = {}, // TwxParams extends RequestParams = RequestParams >(data: FullRequestOption<T>): RequestParams { const wxParam: RequestParams = { url: buildParams(data.url, data.params, data.baseURL), header: data.headers }; if (data.responseType === 'arraybuffer') { wxParam.responseType = 'arraybuffer'; } else if (data.responseType === 'json') { wxParam.dataType = 'json'; } return getCommonOptions(wxParam, data, ['data', 'method', 'enableCache', 'enableChunked', 'enableHttp2', 'enableHttpDNS', 'enableQuic', 'httpDNSServiceId']); } /** * 返回请求成功的响应数据data部分 * statusCode 2xx 操作成功仅返回data数据 * 否则抛出错误(rejected) * @param res - 返回结果 * @param config - 完整配置参数 */ export function transformRequestResponseOkData<T = any>(res: HttpResponse, config: FullRequestOption): T { if (res.statusCode >= 200 && res.statusCode < 300) { return res.data as any as T; } throw res; }