UNPKG

use-stomp

Version:

react provider, class decorator, and a hook for websockets using the stomp protocol

53 lines (40 loc) 4.99 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); require("core-js/modules/es.object.get-own-property-descriptor"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = withUseStomp; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _useStomp3 = _interopRequireDefault(require("./useStomp")); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } /** decorator for legacy class-based components; pass the channel to subscribe. * latest message and function for sending message are added to the class */ function withUseStomp(channel) { return function (Component) { var WrapperComponent = /*#__PURE__*/_react.default.memo(function (name, callable) { callable.displayName = name; Object.defineProperty(callable, "name", _objectSpread(_objectSpread({}, Object.getOwnPropertyDescriptor(callable, "name")), {}, { value: name })); return callable; }("WrapperComponent", function (props) { var _useStomp = (0, _useStomp3.default)(channel), _useStomp2 = (0, _slicedToArray2.default)(_useStomp, 2), message = _useStomp2[0], sendMessage = _useStomp2[1]; return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, props, { message: message, sendMessage: sendMessage })); })); WrapperComponent.displayName = Component.displayName || 'WithUseStomp'; return WrapperComponent; }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy93aXRoVXNlU3RvbXAudHN4Il0sIm5hbWVzIjpbIndpdGhVc2VTdG9tcCIsImNoYW5uZWwiLCJDb21wb25lbnQiLCJXcmFwcGVyQ29tcG9uZW50IiwiUmVhY3QiLCJtZW1vIiwicHJvcHMiLCJtZXNzYWdlIiwic2VuZE1lc3NhZ2UiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7Ozs7O0FBT0E7QUFDQTtBQUNBO0FBQ2UsU0FBU0EsWUFBVCxDQUE0QkMsT0FBNUIsRUFBNkM7QUFDeEQsU0FBTyxVQUFDQyxTQUFELEVBQWU7QUFDbEIsUUFBTUMsZ0JBQW1ELGdCQUFHQyxlQUFNQyxJQUFOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDBCQUN4RCxVQUFDQyxLQUFELEVBQVc7QUFBQSxzQkFDd0Isd0JBQVNMLE9BQVQsQ0FEeEI7QUFBQTtBQUFBLFVBQ0FNLE9BREE7QUFBQSxVQUNTQyxXQURUOztBQUdQLDBCQUNJLDZCQUFDLFNBQUQsNkJBQ1FGLEtBRFI7QUFFSSxRQUFBLE9BQU8sRUFBRUMsT0FGYjtBQUdJLFFBQUEsV0FBVyxFQUFFQztBQUhqQixTQURKO0FBT0gsS0FYdUQsRUFBNUQ7O0FBY0FMLElBQUFBLGdCQUFnQixDQUFDTSxXQUFqQixHQUErQlAsU0FBUyxDQUFDTyxXQUFWLElBQXlCLGNBQXhEO0FBRUEsV0FBT04sZ0JBQVA7QUFDSCxHQWxCRDtBQW1CSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB1c2VTdG9tcCBmcm9tICcuL3VzZVN0b21wJztcblxuZXhwb3J0IHR5cGUgV2l0aFVzZVN0b21wUHJvcHM8VCwgTT4gPSBUICYge1xuICAgIG1lc3NhZ2U6IE07XG4gICAgc2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBNKSA9PiB2b2lkO1xuICAgIGNvbm5lY3RlZDogYm9vbGVhbjtcbn07XG4vKiogZGVjb3JhdG9yIGZvciBsZWdhY3kgY2xhc3MtYmFzZWQgY29tcG9uZW50czsgcGFzcyB0aGUgY2hhbm5lbCB0byBzdWJzY3JpYmUuXG4gKiAgbGF0ZXN0IG1lc3NhZ2UgYW5kIGZ1bmN0aW9uIGZvciBzZW5kaW5nIG1lc3NhZ2UgYXJlIGFkZGVkIHRvIHRoZSBjbGFzc1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoVXNlU3RvbXA8VCwgTT4oY2hhbm5lbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChDb21wb25lbnQpID0+IHtcbiAgICAgICAgY29uc3QgV3JhcHBlckNvbXBvbmVudDogUmVhY3QuRkM8V2l0aFVzZVN0b21wUHJvcHM8VCwgTT4+ID0gUmVhY3QubWVtbyhcbiAgICAgICAgICAgIChwcm9wcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFttZXNzYWdlLCBzZW5kTWVzc2FnZV0gPSB1c2VTdG9tcChjaGFubmVsKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9e21lc3NhZ2UgYXMgTX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRNZXNzYWdlPXtzZW5kTWVzc2FnZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIFdyYXBwZXJDb21wb25lbnQuZGlzcGxheU5hbWUgPSBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgJ1dpdGhVc2VTdG9tcCc7XG5cbiAgICAgICAgcmV0dXJuIFdyYXBwZXJDb21wb25lbnQ7XG4gICAgfTtcbn1cbiJdfQ==