foca-openapi
Version:
根据openapi文档生成请求客户端
42 lines • 1.44 kB
JavaScript
// src/adapters/taro.ts
var taroAdapter = (opts) => {
const {
returningData = (result) => result.data,
getStatusCode = (result) => result.statusCode,
onFail = (_, config) => {
throw new Error(`\u8BF7\u6C42\u63A5\u53E3"${config.uri}"\u5931\u8D25\uFF0C\u72B6\u6001\u7801\uFF1A${config.statusCode}`);
},
request,
baseURL = "",
requestOptions
} = opts;
return {
async request(opts2, utils) {
const body = utils.formatBody(opts2.requestBodyType, opts2.body);
const credentials = typeof opts2.credentials === "string" ? opts2.credentials : opts2.credentials === true ? "same-origin" : "omit";
const config = {
...requestOptions,
url: baseURL + utils.uriConcatQuery(opts2.uri, opts2.query),
method: opts2.method.toUpperCase(),
data: body,
header: { ...requestOptions?.header, ...opts2.headers },
timeout: opts2.timeout,
credentials,
responseType: opts2.responseType === "text" ? "text" : void 0
};
const result = await request(opts2.onBeforeRequest?.(config) || config);
const statusCode = getStatusCode(result);
if (statusCode >= 400) {
return Promise.reject(
onFail(result, { uri: opts2.uri, method: opts2.method, statusCode })
);
} else {
return returningData(result);
}
}
};
};
export {
taroAdapter
};
//# sourceMappingURL=taro.js.map