UNPKG

ptokens-providers

Version:

repo holding the code related to network providers

105 lines (99 loc) 3.82 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } var _toConsumableArray = _interopDefault(require('@babel/runtime/helpers/toConsumableArray')); var _asyncToGenerator = _interopDefault(require('@babel/runtime/helpers/asyncToGenerator')); var _classCallCheck = _interopDefault(require('@babel/runtime/helpers/classCallCheck')); var _createClass = _interopDefault(require('@babel/runtime/helpers/createClass')); var _regeneratorRuntime = _interopDefault(require('@babel/runtime/regenerator')); var axios = _interopDefault(require('axios')); var DEFAULT_TIMEOUT = 10000; var DEFAULT_HEADERS = { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, OPTIONS', 'Access-Control-Allow-Headers': 'Origin, Content-Type', 'Content-Type': 'application/json' }; var HttpProvider = function () { function HttpProvider(_endpoint, _headers) { _classCallCheck(this, HttpProvider); this.headers = _headers || DEFAULT_HEADERS; this.endpoint = _endpoint || null; this.api = _endpoint ? axios.create({ baseURL: _endpoint, headers: _headers || DEFAULT_HEADERS }) : null; } _createClass(HttpProvider, [{ key: "call", value: function () { var _call = _asyncToGenerator( _regeneratorRuntime.mark(function _callee(_callType, _apiPath) { var _params, _timeout, _this$api, CancelToken, options, details, _yield$this$api$_call, data, _args = arguments; return _regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _params = _args.length > 2 && _args[2] !== undefined ? _args[2] : []; _timeout = _args.length > 3 && _args[3] !== undefined ? _args[3] : DEFAULT_TIMEOUT; _context.prev = 2; CancelToken = axios.CancelToken; options = { cancelToken: _timeout ? new CancelToken(function (_cancel) { return setTimeout(function () { return _cancel("timeout of ".concat(_timeout, "ms exceeded")); }, _timeout); }) : undefined }; details = [_apiPath].concat(_toConsumableArray(_callType === 'GET' ? [options] : [_params, options])); _context.next = 8; return (_this$api = this.api)[_callType.toLowerCase()].apply(_this$api, _toConsumableArray(details)); case 8: _yield$this$api$_call = _context.sent; data = _yield$this$api$_call.data; return _context.abrupt("return", data); case 13: _context.prev = 13; _context.t0 = _context["catch"](2); throw new Error(_context.t0.message); case 16: case "end": return _context.stop(); } } }, _callee, this, [[2, 13]]); })); function call(_x, _x2) { return _call.apply(this, arguments); } return call; }() }, { key: "setEndpoint", value: function setEndpoint(_endpoint) { this.endpoint = _endpoint; this.api = axios.create({ baseURL: _endpoint, headers: this.headers }); } }, { key: "setHeaders", value: function setHeaders(_headers) { this.headers = _headers; this.api = axios.create({ baseURL: this.endpoint, headers: _headers }); } }]); return HttpProvider; }(); exports.HttpProvider = HttpProvider;