use-stomp
Version:
react provider, class decorator, and a hook for websockets using the stomp protocol
53 lines (40 loc) • 4.99 kB
JavaScript
;
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==