Socket
Socket
Sign inDemoInstall

axios-apicloud-adapter

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

axios-apicloud-adapter - npm Package Compare versions

Comparing version 0.1.1 to 0.1.2

290

dist/index.js

@@ -14,3 +14,3 @@ "use strict";

var _http = _interopRequireDefault(require("axios/lib/adapters/http"));
var _xhr = _interopRequireDefault(require("axios/lib/adapters/xhr"));

@@ -35,2 +35,6 @@ var _buildURL = _interopRequireDefault(require("axios/lib/helpers/buildURL"));

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }

@@ -40,61 +44,187 @@

function _createForOfIteratorHelper(o) { if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _asyncIterator(iterable) { var method; if (typeof Symbol !== "undefined") { if (Symbol.asyncIterator) { method = iterable[Symbol.asyncIterator]; if (method != null) return method.call(iterable); } if (Symbol.iterator) { method = iterable[Symbol.iterator]; if (method != null) return method.call(iterable); } } throw new TypeError("Object is not async iterable"); }
var transformConfig = function transformConfig(config) {
var fullPath = (0, _buildFullPath["default"])(config.baseURL, config.url);
var url = (0, _buildURL["default"])(fullPath, config.params, config.paramsSerializer);
var params = {
url: url,
method: config.method,
data: {},
encode: config.encode,
tag: config.cancelToken,
cache: config.cache,
timeout: config.timeout,
dataType: config.responseType,
charset: config.responseEncoding,
headers: config.headers,
report: config.report,
certificate: config.certificate,
safeMode: config.safeMode,
proxy: config.proxy,
returnAll: true
};
var writeFile = function writeFile(_ref) {
var path = _ref.path,
data = _ref.data;
return new Promise(function (resolve, reject) {
window.api.writeFile({
path: path,
data: data
}, function (ret, err) {
if (ret.status) {
resolve(path);
} else {
reject(err);
}
});
});
};
if (_utils["default"].isFormData(config.data)) {
params.data.values = {};
params.data.files = {};
var file2Base64 = function file2Base64(file) {
return new Promise(function (resolve) {
var reader = new FileReader();
reader.readAsDataURL(file);
var _iterator = _createForOfIteratorHelper(config.data),
_step;
reader.onload = function () {
resolve(reader.result);
};
});
};
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var data = _step.value;
var transformConfig = /*#__PURE__*/function () {
var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(config) {
var fullPath, url, params, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, data, _data, key, value, base64Data, path;
var _data = _slicedToArray(data, 2),
key = _data[0],
value = _data[1];
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
fullPath = (0, _buildFullPath["default"])(config.baseURL, config.url);
url = (0, _buildURL["default"])(fullPath, config.params, config.paramsSerializer);
params = {
url: url,
method: config.method,
data: {},
encode: config.encode,
tag: config.cancelToken,
cache: config.cache,
timeout: config.timeout,
dataType: config.responseType || 'text',
charset: config.responseEncoding,
headers: config.headers,
report: config.report,
certificate: config.certificate,
safeMode: config.safeMode,
proxy: config.proxy,
returnAll: true
};
if (_utils["default"].isFile(value)) {
params.data.files[key] = value;
} else {
params.data.values[key] = value;
if (!_utils["default"].isFormData(config.data)) {
_context.next = 52;
break;
}
params.data.values = {};
params.data.files = {};
_iteratorNormalCompletion = true;
_didIteratorError = false;
_context.prev = 8;
_iterator = _asyncIterator(config.data);
case 10:
_context.next = 12;
return _iterator.next();
case 12:
_step = _context.sent;
_iteratorNormalCompletion = _step.done;
_context.next = 16;
return _step.value;
case 16:
_value = _context.sent;
if (_iteratorNormalCompletion) {
_context.next = 34;
break;
}
data = _value;
_data = _slicedToArray(data, 2), key = _data[0], value = _data[1];
if (!_utils["default"].isFile(value)) {
_context.next = 30;
break;
}
_context.next = 23;
return file2Base64(value);
case 23:
base64Data = _context.sent;
_context.next = 26;
return writeFile({
path: "cache://".concat(value.name),
data: base64Data
});
case 26:
path = _context.sent;
params.data.files[key] = path;
_context.next = 31;
break;
case 30:
params.data.values[key] = value;
case 31:
_iteratorNormalCompletion = true;
_context.next = 10;
break;
case 34:
_context.next = 40;
break;
case 36:
_context.prev = 36;
_context.t0 = _context["catch"](8);
_didIteratorError = true;
_iteratorError = _context.t0;
case 40:
_context.prev = 40;
_context.prev = 41;
if (!(!_iteratorNormalCompletion && _iterator["return"] != null)) {
_context.next = 45;
break;
}
_context.next = 45;
return _iterator["return"]();
case 45:
_context.prev = 45;
if (!_didIteratorError) {
_context.next = 48;
break;
}
throw _iteratorError;
case 48:
return _context.finish(45);
case 49:
return _context.finish(40);
case 50:
_context.next = 53;
break;
case 52:
params.data.body = config.data;
case 53:
return _context.abrupt("return", params);
case 54:
case "end":
return _context.stop();
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
} else {
params.data.body = config.data;
}
}, _callee, null, [[8, 36, 40, 50], [41,, 45, 49]]);
}));
return params;
};
return function transformConfig(_x) {
return _ref2.apply(this, arguments);
};
}();

@@ -143,26 +273,52 @@ var transformResponse = function transformResponse(rst, config) {

return (0, _axios["default"])(_objectSpread(_objectSpread({}, config), {}, {
adapter: _http["default"]
adapter: _xhr["default"]
}));
}
return new Promise(function (resolve, reject) {
var ajaxParams = transformConfig(config);
window.api.ajax(ajaxParams, function (ret, err) {
if (err) transformError(err, reject, config);
var response = transformResponse(ret, config);
(0, _settle["default"])(resolve, reject, response);
});
return new Promise( /*#__PURE__*/function () {
var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(resolve, reject) {
var ajaxParams;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return transformConfig(config);
if (config.cancelToken) {
// Handle cancellation
config.cancelToken.promise.then(function (cancel) {
window.api.cancelAjax({
tag: config.cancelToken
});
reject(cancel);
});
}
});
case 2:
ajaxParams = _context2.sent;
window.api.ajax(ajaxParams, function (ret, err) {
if (err) {
transformError(err, reject, config);
return;
}
var response = transformResponse(ret, config);
(0, _settle["default"])(resolve, reject, response);
});
if (config.cancelToken) {
// Handle cancellation
config.cancelToken.promise.then(function (cancel) {
window.api.cancelAjax({
tag: config.cancelToken
});
reject(cancel);
});
}
case 5:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return function (_x2, _x3) {
return _ref3.apply(this, arguments);
};
}());
};
exports["default"] = _default;
{
"name": "axios-apicloud-adapter",
"version": "0.1.1",
"version": "0.1.2",
"description": "axios 的 apicloud 适配器,以便于在 app 中使用原生网络请求库",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -22,2 +22,3 @@ # axios-apicloud-adapter

* 通过 `window.api` 检测运行环境,自动切换适配器
* 文件上传通过 Base64 编码文件后实现,需后端配合做相关处理

@@ -24,0 +25,0 @@ ## 参考

import axios from 'axios'
import utils from 'axios/lib/utils'
import settle from 'axios/lib/core/settle'
import httpAdapter from 'axios/lib/adapters/http'
import xhrAdapter from 'axios/lib/adapters/xhr'
import buildURL from 'axios/lib/helpers/buildURL'

@@ -9,3 +9,25 @@ import buildFullPath from 'axios/lib/core/buildFullPath'

const transformConfig = (config) => {
const writeFile = ({ path, data }) => {
return new Promise((resolve, reject) => {
window.api.writeFile({ path, data }, (ret, err) => {
if (ret.status) {
resolve(path)
} else {
reject(err)
}
})
})
}
const file2Base64 = (file) => {
return new Promise((resolve) => {
const reader = new FileReader()
reader.readAsDataURL(file)
reader.onload = () => {
resolve(reader.result)
}
})
}
const transformConfig = async (config) => {
const fullPath = buildFullPath(config.baseURL, config.url)

@@ -22,3 +44,3 @@ const url = buildURL(fullPath, config.params, config.paramsSerializer)

timeout: config.timeout,
dataType: config.responseType,
dataType: config.responseType || 'text',
charset: config.responseEncoding,

@@ -36,6 +58,8 @@ headers: config.headers,

params.data.files = {}
for (const data of config.data) {
for await (const data of config.data) {
const [key, value] = data
if (utils.isFile(value)) {
params.data.files[key] = value
const base64Data = await file2Base64(value)
const path = await writeFile({ path: `cache://${value.name}`, data: base64Data })
params.data.files[key] = path
} else {

@@ -92,8 +116,11 @@ params.data.values[key] = value

if (!window.api) {
return axios({ ...config, adapter: httpAdapter })
return axios({ ...config, adapter: xhrAdapter })
}
return new Promise((resolve, reject) => {
const ajaxParams = transformConfig(config)
return new Promise(async (resolve, reject) => {
const ajaxParams = await transformConfig(config)
window.api.ajax(ajaxParams, (ret, err) => {
if (err) transformError(err, reject, config)
if (err) {
transformError(err, reject, config)
return
}
const response = transformResponse(ret, config)

@@ -100,0 +127,0 @@ settle(resolve, reject, response)

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc