UNPKG

use-stomp

Version:

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

39 lines (34 loc) 4.65 kB
import "core-js/modules/es.object.get-own-property-descriptor"; import _extends from "@babel/runtime/helpers/extends"; import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; 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) { _defineProperty(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; } import React from 'react'; import useStomp from './useStomp'; /** decorator for legacy class-based components; pass the channel to subscribe. * latest message and function for sending message are added to the class */ export default function withUseStomp(channel) { return function (Component) { var WrapperComponent = /*#__PURE__*/React.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 = useStomp(channel), _useStomp2 = _slicedToArray(_useStomp, 2), message = _useStomp2[0], sendMessage = _useStomp2[1]; return /*#__PURE__*/React.createElement(Component, _extends({}, props, { message: message, sendMessage: sendMessage })); })); WrapperComponent.displayName = Component.displayName || 'WithUseStomp'; return WrapperComponent; }; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy93aXRoVXNlU3RvbXAudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RvbXAiLCJ3aXRoVXNlU3RvbXAiLCJjaGFubmVsIiwiQ29tcG9uZW50IiwiV3JhcHBlckNvbXBvbmVudCIsIm1lbW8iLCJwcm9wcyIsIm1lc3NhZ2UiLCJzZW5kTWVzc2FnZSIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLE1BQWtCLE9BQWxCO0FBRUEsT0FBT0MsUUFBUCxNQUFxQixZQUFyQjs7QUFPQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLFNBQVNDLFlBQVQsQ0FBNEJDLE9BQTVCLEVBQTZDO0FBQ3hELFNBQU8sVUFBQ0MsU0FBRCxFQUFlO0FBQ2xCLFFBQU1DLGdCQUFtRCxnQkFBR0wsS0FBSyxDQUFDTSxJQUFOO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLDBCQUN4RCxVQUFDQyxLQUFELEVBQVc7QUFBQSxzQkFDd0JOLFFBQVEsQ0FBQ0UsT0FBRCxDQURoQztBQUFBO0FBQUEsVUFDQUssT0FEQTtBQUFBLFVBQ1NDLFdBRFQ7O0FBR1AsMEJBQ0ksb0JBQUMsU0FBRCxlQUNRRixLQURSO0FBRUksUUFBQSxPQUFPLEVBQUVDLE9BRmI7QUFHSSxRQUFBLFdBQVcsRUFBRUM7QUFIakIsU0FESjtBQU9ILEtBWHVELEVBQTVEO0FBY0FKLElBQUFBLGdCQUFnQixDQUFDSyxXQUFqQixHQUErQk4sU0FBUyxDQUFDTSxXQUFWLElBQXlCLGNBQXhEO0FBRUEsV0FBT0wsZ0JBQVA7QUFDSCxHQWxCRDtBQW1CSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB1c2VTdG9tcCBmcm9tICcuL3VzZVN0b21wJztcblxuZXhwb3J0IHR5cGUgV2l0aFVzZVN0b21wUHJvcHM8VCwgTT4gPSBUICYge1xuICAgIG1lc3NhZ2U6IE07XG4gICAgc2VuZE1lc3NhZ2U6IChtZXNzYWdlOiBNKSA9PiB2b2lkO1xuICAgIGNvbm5lY3RlZDogYm9vbGVhbjtcbn07XG4vKiogZGVjb3JhdG9yIGZvciBsZWdhY3kgY2xhc3MtYmFzZWQgY29tcG9uZW50czsgcGFzcyB0aGUgY2hhbm5lbCB0byBzdWJzY3JpYmUuXG4gKiAgbGF0ZXN0IG1lc3NhZ2UgYW5kIGZ1bmN0aW9uIGZvciBzZW5kaW5nIG1lc3NhZ2UgYXJlIGFkZGVkIHRvIHRoZSBjbGFzc1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB3aXRoVXNlU3RvbXA8VCwgTT4oY2hhbm5lbDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChDb21wb25lbnQpID0+IHtcbiAgICAgICAgY29uc3QgV3JhcHBlckNvbXBvbmVudDogUmVhY3QuRkM8V2l0aFVzZVN0b21wUHJvcHM8VCwgTT4+ID0gUmVhY3QubWVtbyhcbiAgICAgICAgICAgIChwcm9wcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFttZXNzYWdlLCBzZW5kTWVzc2FnZV0gPSB1c2VTdG9tcChjaGFubmVsKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9e21lc3NhZ2UgYXMgTX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRNZXNzYWdlPXtzZW5kTWVzc2FnZX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIFdyYXBwZXJDb21wb25lbnQuZGlzcGxheU5hbWUgPSBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgJ1dpdGhVc2VTdG9tcCc7XG5cbiAgICAgICAgcmV0dXJuIFdyYXBwZXJDb21wb25lbnQ7XG4gICAgfTtcbn1cbiJdfQ==