UNPKG

socket.io-request

Version:

bidirectional request-response for socket.io

90 lines (66 loc) 7.22 kB
'use strict'; 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==