export type MiniprogramClientResponse = { status: number; statusText: string; data: Res; config?: any; request?: any; response?: any; headers?: any; }; export type MiniprogramClientRequest = { url: string; method: "GET" | "POST"; body?: any; params?: any; headers?: any; overrides?: any; }; export default function miniprogramClient(options: MiniprogramClientRequest): Promise> { const { params, method, url, headers, body, overrides } = options; const requestConfig = { headers, method, url, data: body ?? params, withCredentials: overrides?.WITH_CREDENTIALS ?? true }; Object.keys(requestConfig.data ?? {}).forEach((key) => { if (requestConfig.data[key] === undefined) { delete requestConfig.data[key]; } }); return new Promise((resolve, reject) => { try { // @ts-ignore wx.request({ ...requestConfig, // @ts-ignore success: (response) => { resolve({ status: response.statusCode, statusText: response.errMsg, data: response.data, headers: response.header, config: response }); }, // @ts-ignore fail: (error) => { reject(error); } }); } catch (error) { reject(error) } }); }