@webex/http-core
Version:
Core HTTP library for the Cisco Webex
47 lines (44 loc) • 1.77 kB
JavaScript
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.default = request;
var _events = require("events");
var _request2 = _interopRequireDefault(require("./request"));
var _utils = require("./utils");
/*!
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
*/
/**
* @param {Object} options
* @returns {Promise}
*/
function request(options) {
if (options.url) {
options.uri = options.url;
options.url = null;
}
options.headers = options.headers || {};
options.download = new _events.EventEmitter();
options.upload = new _events.EventEmitter();
return (0, _utils.intercept)(options, options.interceptors, 'Request').then(function () {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
// if provided own request function, use that instead
// there are use cases where developer may want to provide whatever request promise they wish
// for example, may even use window.postMessages for parent iframe uses cases
if (options.request) {
return options.request.apply(options, [options].concat(args));
}
return _request2.default.apply(void 0, [options].concat(args));
}).then(function () {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
return _utils.intercept.apply(void 0, [options, options.interceptors.slice().reverse(), 'Response'].concat(args));
});
}
//# sourceMappingURL=index.js.map
;