first commit
This commit is contained in:
84
unpackage/dist/dev/mp-weixin/request/luch-request/adapters/index.js
vendored
Normal file
84
unpackage/dist/dev/mp-weixin/request/luch-request/adapters/index.js
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../../common/vendor.js");
|
||||
const request_luchRequest_helpers_buildURL = require("../helpers/buildURL.js");
|
||||
const request_luchRequest_core_buildFullPath = require("../core/buildFullPath.js");
|
||||
const request_luchRequest_core_settle = require("../core/settle.js");
|
||||
const request_luchRequest_utils = require("../utils.js");
|
||||
const mergeKeys = (keys, config2) => {
|
||||
let config = {};
|
||||
keys.forEach((prop) => {
|
||||
if (!request_luchRequest_utils.isUndefined(config2[prop])) {
|
||||
config[prop] = config2[prop];
|
||||
}
|
||||
});
|
||||
return config;
|
||||
};
|
||||
const adapter = (config) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let fullPath = request_luchRequest_helpers_buildURL.buildURL(request_luchRequest_core_buildFullPath.buildFullPath(config.baseURL, config.url), config.params, config.paramsSerializer);
|
||||
const _config = {
|
||||
url: fullPath,
|
||||
header: config.header,
|
||||
complete: (response) => {
|
||||
config.fullPath = fullPath;
|
||||
response.config = config;
|
||||
response.rawData = response.data;
|
||||
try {
|
||||
let jsonParseHandle = false;
|
||||
const forcedJSONParsingType = typeof config.forcedJSONParsing;
|
||||
if (forcedJSONParsingType === "boolean") {
|
||||
jsonParseHandle = config.forcedJSONParsing;
|
||||
} else if (forcedJSONParsingType === "object") {
|
||||
const includesMethod = config.forcedJSONParsing.include || [];
|
||||
jsonParseHandle = includesMethod.includes(config.method);
|
||||
}
|
||||
if (jsonParseHandle && typeof response.data === "string") {
|
||||
response.data = JSON.parse(response.data);
|
||||
}
|
||||
} catch (e) {
|
||||
}
|
||||
request_luchRequest_core_settle.settle(resolve, reject, response);
|
||||
}
|
||||
};
|
||||
let requestTask;
|
||||
if (config.method === "UPLOAD") {
|
||||
delete _config.header["content-type"];
|
||||
delete _config.header["Content-Type"];
|
||||
let otherConfig = {
|
||||
filePath: config.filePath,
|
||||
name: config.name
|
||||
};
|
||||
const optionalKeys = [
|
||||
"timeout",
|
||||
"formData"
|
||||
];
|
||||
requestTask = common_vendor.index.uploadFile({ ..._config, ...otherConfig, ...mergeKeys(optionalKeys, config) });
|
||||
} else if (config.method === "DOWNLOAD") {
|
||||
const optionalKeys = [
|
||||
"timeout",
|
||||
"filePath"
|
||||
];
|
||||
requestTask = common_vendor.index.downloadFile({ ..._config, ...mergeKeys(optionalKeys, config) });
|
||||
} else {
|
||||
const optionalKeys = [
|
||||
"data",
|
||||
"method",
|
||||
"timeout",
|
||||
"dataType",
|
||||
"responseType",
|
||||
"enableHttp2",
|
||||
"enableQuic",
|
||||
"enableCache",
|
||||
"enableHttpDNS",
|
||||
"httpDNSServiceId",
|
||||
"enableChunked",
|
||||
"forceCellularNetwork"
|
||||
];
|
||||
requestTask = common_vendor.index.request({ ..._config, ...mergeKeys(optionalKeys, config) });
|
||||
}
|
||||
if (config.getTask) {
|
||||
config.getTask(requestTask, config);
|
||||
}
|
||||
});
|
||||
};
|
||||
exports.adapter = adapter;
|
||||
Reference in New Issue
Block a user