socket.io-request
Version:
bidirectional request-response for socket.io
90 lines (66 loc) • 7.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SocketIOError = exports.TimeoutError = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
exports.convertErrorToObject = convertErrorToObject;
exports.convertObjectToError = convertObjectToError;
var _serializeError = require('serialize-error');
var _serializeError2 = _interopRequireDefault(_serializeError);
var _deserializeError = require('deserialize-error');
var _deserializeError2 = _interopRequireDefault(_deserializeError);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function serializeErrorWithoutStack(err) {
delete err.stack;
return (0, _serializeError2.default)(err);
}
// convert (nested) Error object to Plain object to send via socket.io
function convertErrorToObject(err) {
if (err instanceof Error) return serializeErrorWithoutStack(err);
if (err instanceof Array) return err.map(serializeErrorWithoutStack);
var obj = {};
for (var k in err) {
if (err.hasOwnProperty(k)) {
obj[k] = serializeErrorWithoutStack(err[k]);
}
}
return obj;
}
// convert nested object to Error
function convertObjectToError(obj) {
if (obj instanceof Error) return obj;
if (obj instanceof Array) return obj.map(_deserializeError2.default);
if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object') return obj;
var err = (0, _deserializeError2.default)(obj);
if (err !== obj) return err;
err = {};
for (var k in obj) {
err[k] = (0, _deserializeError2.default)(obj[k]);
}
return err;
}
var TimeoutError = exports.TimeoutError = function (_Error) {
_inherits(TimeoutError, _Error);
function TimeoutError(message) {
_classCallCheck(this, TimeoutError);
var _this = _possibleConstructorReturn(this, (TimeoutError.__proto__ || Object.getPrototypeOf(TimeoutError)).call(this, message));
_this.name = 'TimeoutError';
return _this;
}
return TimeoutError;
}(Error);
var SocketIOError = exports.SocketIOError = function (_Error2) {
_inherits(SocketIOError, _Error2);
function SocketIOError(message) {
_classCallCheck(this, SocketIOError);
var _this2 = _possibleConstructorReturn(this, (SocketIOError.__proto__ || Object.getPrototypeOf(SocketIOError)).call(this, message));
_this2.name = 'SocketIOError';
return _this2;
}
return SocketIOError;
}(Error);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvci5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0RXJyb3JUb09iamVjdCIsImNvbnZlcnRPYmplY3RUb0Vycm9yIiwic2VyaWFsaXplRXJyb3JXaXRob3V0U3RhY2siLCJlcnIiLCJzdGFjayIsIkVycm9yIiwiQXJyYXkiLCJtYXAiLCJvYmoiLCJrIiwiaGFzT3duUHJvcGVydHkiLCJUaW1lb3V0RXJyb3IiLCJtZXNzYWdlIiwibmFtZSIsIlNvY2tldElPRXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztRQVNnQkEsb0IsR0FBQUEsb0I7UUFhQUMsb0IsR0FBQUEsb0I7O0FBdEJoQjs7OztBQUNBOzs7Ozs7Ozs7Ozs7QUFFQSxTQUFTQywwQkFBVCxDQUFxQ0MsR0FBckMsRUFBMEM7QUFDeEMsU0FBT0EsSUFBSUMsS0FBWDtBQUNBLFNBQU8sOEJBQWVELEdBQWYsQ0FBUDtBQUNEOztBQUVEO0FBQ08sU0FBU0gsb0JBQVQsQ0FBK0JHLEdBQS9CLEVBQW9DO0FBQ3pDLE1BQUlBLGVBQWVFLEtBQW5CLEVBQTBCLE9BQU9ILDJCQUEyQkMsR0FBM0IsQ0FBUDtBQUMxQixNQUFJQSxlQUFlRyxLQUFuQixFQUEwQixPQUFPSCxJQUFJSSxHQUFKLENBQVFMLDBCQUFSLENBQVA7QUFDMUIsTUFBSU0sTUFBTSxFQUFWO0FBQ0EsT0FBSyxJQUFJQyxDQUFULElBQWNOLEdBQWQsRUFBbUI7QUFDakIsUUFBSUEsSUFBSU8sY0FBSixDQUFtQkQsQ0FBbkIsQ0FBSixFQUEyQjtBQUN6QkQsVUFBSUMsQ0FBSixJQUFTUCwyQkFBMkJDLElBQUlNLENBQUosQ0FBM0IsQ0FBVDtBQUNEO0FBQ0Y7QUFDRCxTQUFPRCxHQUFQO0FBQ0Q7O0FBRUQ7QUFDTyxTQUFTUCxvQkFBVCxDQUErQk8sR0FBL0IsRUFBb0M7QUFDekMsTUFBSUEsZUFBZUgsS0FBbkIsRUFBMEIsT0FBT0csR0FBUDtBQUMxQixNQUFJQSxlQUFlRixLQUFuQixFQUEwQixPQUFPRSxJQUFJRCxHQUFKLDRCQUFQO0FBQzFCLE1BQUksUUFBT0MsR0FBUCx5Q0FBT0EsR0FBUCxPQUFlLFFBQW5CLEVBQTZCLE9BQU9BLEdBQVA7QUFDN0IsTUFBSUwsTUFBTSxnQ0FBaUJLLEdBQWpCLENBQVY7QUFDQSxNQUFJTCxRQUFRSyxHQUFaLEVBQWlCLE9BQU9MLEdBQVA7QUFDakJBLFFBQU0sRUFBTjtBQUNBLE9BQUssSUFBSU0sQ0FBVCxJQUFjRCxHQUFkLEVBQW1CO0FBQ2pCTCxRQUFJTSxDQUFKLElBQVMsZ0NBQWlCRCxJQUFJQyxDQUFKLENBQWpCLENBQVQ7QUFDRDtBQUNELFNBQU9OLEdBQVA7QUFDRDs7SUFFWVEsWSxXQUFBQSxZOzs7QUFDWCx3QkFBYUMsT0FBYixFQUFzQjtBQUFBOztBQUFBLDRIQUNkQSxPQURjOztBQUVwQixVQUFLQyxJQUFMLEdBQVksY0FBWjtBQUZvQjtBQUdyQjs7O0VBSitCUixLOztJQU9yQlMsYSxXQUFBQSxhOzs7QUFDWCx5QkFBYUYsT0FBYixFQUFzQjtBQUFBOztBQUFBLCtIQUNkQSxPQURjOztBQUVwQixXQUFLQyxJQUFMLEdBQVksZUFBWjtBQUZvQjtBQUdyQjs7O0VBSmdDUixLIiwiZmlsZSI6ImVycm9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNlcmlhbGl6ZUVycm9yIGZyb20gJ3NlcmlhbGl6ZS1lcnJvcidcbmltcG9ydCBkZXNlcmlhbGl6ZUVycm9yIGZyb20gJ2Rlc2VyaWFsaXplLWVycm9yJ1xuXG5mdW5jdGlvbiBzZXJpYWxpemVFcnJvcldpdGhvdXRTdGFjayAoZXJyKSB7XG4gIGRlbGV0ZSBlcnIuc3RhY2tcbiAgcmV0dXJuIHNlcmlhbGl6ZUVycm9yKGVycilcbn1cblxuLy8gY29udmVydCAobmVzdGVkKSBFcnJvciBvYmplY3QgdG8gUGxhaW4gb2JqZWN0IHRvIHNlbmQgdmlhIHNvY2tldC5pb1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRFcnJvclRvT2JqZWN0IChlcnIpIHtcbiAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSByZXR1cm4gc2VyaWFsaXplRXJyb3JXaXRob3V0U3RhY2soZXJyKVxuICBpZiAoZXJyIGluc3RhbmNlb2YgQXJyYXkpIHJldHVybiBlcnIubWFwKHNlcmlhbGl6ZUVycm9yV2l0aG91dFN0YWNrKVxuICBsZXQgb2JqID0ge31cbiAgZm9yIChsZXQgayBpbiBlcnIpIHtcbiAgICBpZiAoZXJyLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICBvYmpba10gPSBzZXJpYWxpemVFcnJvcldpdGhvdXRTdGFjayhlcnJba10pXG4gICAgfVxuICB9XG4gIHJldHVybiBvYmpcbn1cblxuLy8gY29udmVydCBuZXN0ZWQgb2JqZWN0IHRvIEVycm9yXG5leHBvcnQgZnVuY3Rpb24gY29udmVydE9iamVjdFRvRXJyb3IgKG9iaikge1xuICBpZiAob2JqIGluc3RhbmNlb2YgRXJyb3IpIHJldHVybiBvYmpcbiAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSByZXR1cm4gb2JqLm1hcChkZXNlcmlhbGl6ZUVycm9yKVxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHJldHVybiBvYmpcbiAgbGV0IGVyciA9IGRlc2VyaWFsaXplRXJyb3Iob2JqKVxuICBpZiAoZXJyICE9PSBvYmopIHJldHVybiBlcnJcbiAgZXJyID0ge31cbiAgZm9yIChsZXQgayBpbiBvYmopIHtcbiAgICBlcnJba10gPSBkZXNlcmlhbGl6ZUVycm9yKG9ialtrXSlcbiAgfVxuICByZXR1cm4gZXJyXG59XG5cbmV4cG9ydCBjbGFzcyBUaW1lb3V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yIChtZXNzYWdlKSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSAnVGltZW91dEVycm9yJ1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTb2NrZXRJT0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvciAobWVzc2FnZSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgdGhpcy5uYW1lID0gJ1NvY2tldElPRXJyb3InXG4gIH1cbn1cbiJdfQ==