dcard
Version:
👫 Unofficial Dcard API wrapper for Node.js developers.
74 lines (49 loc) • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _promise = require('babel-runtime/core-js/promise');
var _promise2 = _interopRequireDefault(_promise);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
exports.default = filterError;
var _lodash = require('lodash');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ResponseError = function (_Error) {
(0, _inherits3.default)(ResponseError, _Error);
function ResponseError(res, body) {
(0, _classCallCheck3.default)(this, ResponseError);
var _this = (0, _possibleConstructorReturn3.default)(this, (ResponseError.__proto__ || (0, _getPrototypeOf2.default)(ResponseError)).call(this));
_this.name = 'ResponseError';
_this.message = res.statusText;
_this.response = res;
_this.body = body;
return _this;
}
return ResponseError;
}(Error);
/**
* The function to filter out the errors.
*
* @private
*/
function filterError(res) {
if (res.status < 200 || res.status > 300) {
var contentType = res.headers.get('Content-Type');
if (contentType.indexOf('json') < 0) {
return _promise2.default.reject(new ResponseError(res));
}
return res.json().then(function (json) {
return json;
}, _lodash.noop).then(function (json) {
return _promise2.default.reject(new ResponseError(res, json));
});
}
return res;
}