@civet/events 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2024 Civet
3
+ Copyright (c) 2025 Aaron Burmeister
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -8,7 +8,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
8
8
  var _EventReceiver = require("./EventReceiver");
9
9
  var _context = require("./context");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
12
  var ConfigProvider = function ConfigProvider(_ref) {
13
13
  var eventReceiver = _ref.eventReceiver,
14
14
  children = _ref.children;
@@ -9,9 +9,9 @@ var _EventReceiver = require("./EventReceiver");
9
9
  var _useEventHandler = _interopRequireDefault(require("./useEventHandler"));
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  var _excluded = ["children"];
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
14
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
14
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
15
15
  var propTypes = {
16
16
  /** EventReceiver to be used */
17
17
  eventReceiver: _EventReceiver.eventReceiverPropType,
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.isEventReceiver = exports.eventReceiverPropType = exports["default"] = void 0;
7
7
  var _propTypes = _interopRequireDefault(require("prop-types"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
9
9
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
12
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
10
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
11
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
12
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
13
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
14
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
15
  var EventReceiver = /*#__PURE__*/function () {
@@ -19,7 +19,9 @@ var EventReceiver = /*#__PURE__*/function () {
19
19
  return _createClass(EventReceiver, [{
20
20
  key: "subscribe",
21
21
  value: function subscribe(resource, options, handler) {
22
- if (typeof handler !== 'function') throw new Error('Handler must be a function');
22
+ if (typeof handler !== 'function') {
23
+ throw new Error('Handler must be a function');
24
+ }
23
25
  var unsubscribe = this.handleSubscribe(resource, options, handler);
24
26
  if (typeof unsubscribe !== 'function') {
25
27
  console.warn('EventReceiver.handleSubscribe should return a callback to cancel the subscription. Ignoring this warning may result in the execution of obsolete handlers and potential memory leaks.');
package/lib/index.js CHANGED
@@ -61,5 +61,5 @@ var _composeHandlers = _interopRequireDefault(require("./composeHandlers"));
61
61
  var _useEventHandler = _interopRequireDefault(require("./useEventHandler"));
62
62
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
63
63
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
64
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
64
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
65
65
  var ConfigConsumer = exports.ConfigConsumer = _context.ConfigContext.Consumer;
@@ -8,13 +8,13 @@ var _core = require("@civet/core");
8
8
  var _fastDeepEqual = _interopRequireDefault(require("fast-deep-equal"));
9
9
  var _react = require("react");
10
10
  var _context = require("./context");
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
13
13
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
14
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
15
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
16
16
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
17
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
18
18
  /**
19
19
  * Enables automatic updating for a Resource component or useResource hook by subscribing to an EventReceiver.
20
20
  *
@@ -47,7 +47,7 @@ function useEventHandler(_ref) {
47
47
  if (!(0, _fastDeepEqual["default"])(options, optionsProp)) {
48
48
  setOptions(optionsProp);
49
49
  }
50
- var isDisabled = !!disabled;
50
+ var isDisabled = Boolean(disabled || (currentResource === null || currentResource === void 0 ? void 0 : currentResource.isEmpty));
51
51
  (0, _react.useEffect)(function () {
52
52
  if (eventReceiver == null || isDisabled) return undefined;
53
53
  var unsubscribe = eventReceiver.subscribe(resource, options, function (data) {
@@ -60,7 +60,9 @@ function useEventHandler(_ref) {
60
60
  } else {
61
61
  unhandledEvents = data;
62
62
  }
63
- if (unhandledEvents.length === 0 || typeof (resource === null || resource === void 0 ? void 0 : resource.notify) !== 'function') return;
63
+ if (unhandledEvents.length === 0 || typeof (resource === null || resource === void 0 ? void 0 : resource.notify) !== 'function') {
64
+ return;
65
+ }
64
66
  var promise = resource.notify();
65
67
  if (typeof onNotify === 'function') {
66
68
  promise.then(function (result) {
package/package.json CHANGED
@@ -1,28 +1,28 @@
1
1
  {
2
2
  "name": "@civet/events",
3
- "version": "1.1.1",
3
+ "version": "1.2.1",
4
4
  "description": "Civet",
5
+ "type": "module",
6
+ "files": [
7
+ "LICENSE",
8
+ "README.md",
9
+ "lib/",
10
+ "src/"
11
+ ],
5
12
  "main": "./lib/index.js",
6
13
  "exports": {
7
- ".": {
8
- "import": "./src/index.js",
9
- "require": "./lib/index.js",
10
- "default": "./lib/index.js"
11
- }
14
+ "import": "./src/index.js",
15
+ "default": "./lib/index.js"
12
16
  },
13
- "files": [
14
- "lib",
15
- "src"
16
- ],
17
17
  "scripts": {
18
- "build:clean": "rimraf ./lib",
19
18
  "prebuild": "npm run build:clean",
19
+ "build:clean": "rimraf ./lib",
20
20
  "build": "babel src -d lib",
21
- "lint": "eslint src --report-unused-disable-directives",
21
+ "lint": "eslint",
22
22
  "prepare": "npm run lint && npm run build",
23
23
  "preversion": "git diff HEAD --name-only --exit-code || (echo -\\> unclean working directory && exit 1)",
24
24
  "postversion": "cross-env git commit -am$npm_package_version",
25
- "prettify": "prettier --write src/**"
25
+ "prettify": "prettier . --write"
26
26
  },
27
27
  "repository": {
28
28
  "type": "git",
@@ -40,33 +40,34 @@
40
40
  "url": "https://github.com/civet-org/events/issues"
41
41
  },
42
42
  "homepage": "https://civet.js.org/",
43
- "devDependencies": {
44
- "@babel/cli": "^7.22.15",
45
- "@babel/core": "^7.24.4",
46
- "@babel/eslint-parser": "^7.22.15",
47
- "@babel/preset-env": "^7.24.4",
48
- "@babel/preset-react": "^7.18.6",
49
- "@civet/core": "^1.3.0",
50
- "cross-env": "^7.0.3",
51
- "eslint": "^8.53.0",
52
- "eslint-config-prettier": "^9.0.0",
53
- "eslint-plugin-import": "^2.29.0",
54
- "eslint-plugin-prettier": "^5.0.1",
55
- "eslint-plugin-react": "^7.33.2",
56
- "eslint-plugin-react-hooks": "^4.6.0",
57
- "eslint-plugin-unused-imports": "^3.0.0",
58
- "prettier": "^3.2.5",
59
- "react": "^18.2.0",
60
- "react-dom": "^18.2.0",
61
- "rimraf": "^5.0.5"
43
+ "dependencies": {
44
+ "fast-deep-equal": "^3.1.3",
45
+ "prop-types": "^15.8.1"
62
46
  },
63
47
  "peerDependencies": {
64
48
  "@civet/core": ">=1.3.0",
65
49
  "react": ">=18.0",
66
50
  "react-dom": ">=18.0"
67
51
  },
68
- "dependencies": {
69
- "fast-deep-equal": "^3.1.3",
70
- "prop-types": "^15.8.1"
52
+ "devDependencies": {
53
+ "@babel/cli": "^7.26.4",
54
+ "@babel/core": "^7.26.10",
55
+ "@babel/eslint-parser": "^7.26.10",
56
+ "@babel/preset-env": "^7.26.9",
57
+ "@babel/preset-react": "^7.26.3",
58
+ "@civet/core": "^1.4.1",
59
+ "cross-env": "^7.0.3",
60
+ "eslint": "^9.20.0",
61
+ "eslint-config-prettier": "^10.1.1",
62
+ "eslint-plugin-import": "^2.31.0",
63
+ "eslint-plugin-prettier": "^5.2.3",
64
+ "eslint-plugin-react": "^7.37.4",
65
+ "eslint-plugin-react-hooks": "^5.2.0-canary-8759c5c8-20250207",
66
+ "eslint-plugin-unused-imports": "^4.1.4",
67
+ "globals": "^16.0.0",
68
+ "prettier": "^3.5.3",
69
+ "react": "^18.3.1",
70
+ "react-dom": "^18.3.1",
71
+ "rimraf": "^6.0.1"
71
72
  }
72
73
  }
@@ -3,7 +3,9 @@ import { eventReceiverPropType } from './EventReceiver';
3
3
  import { ConfigContext } from './context';
4
4
 
5
5
  const ConfigProvider = ({ eventReceiver, children }) => (
6
- <ConfigContext.Provider value={{ eventReceiver }}>{children}</ConfigContext.Provider>
6
+ <ConfigContext.Provider value={{ eventReceiver }}>
7
+ {children}
8
+ </ConfigContext.Provider>
7
9
  );
8
10
 
9
11
  ConfigProvider.propTypes = {
@@ -2,7 +2,9 @@ import PropTypes from 'prop-types';
2
2
 
3
3
  class EventReceiver {
4
4
  subscribe(resource, options, handler) {
5
- if (typeof handler !== 'function') throw new Error('Handler must be a function');
5
+ if (typeof handler !== 'function') {
6
+ throw new Error('Handler must be a function');
7
+ }
6
8
  const unsubscribe = this.handleSubscribe(resource, options, handler);
7
9
  if (typeof unsubscribe !== 'function') {
8
10
  console.warn(
@@ -13,7 +15,8 @@ class EventReceiver {
13
15
  }
14
16
  }
15
17
 
16
- const isEventReceiver = (eventReceiver) => eventReceiver instanceof EventReceiver;
18
+ const isEventReceiver = (eventReceiver) =>
19
+ eventReceiver instanceof EventReceiver;
17
20
 
18
21
  const eventReceiverPropType = PropTypes.instanceOf(EventReceiver);
19
22
 
@@ -2,7 +2,8 @@ const composeHandlers =
2
2
  (...handlers) =>
3
3
  (...args) =>
4
4
  handlers.reduce(
5
- (sum, handler) => sum || (typeof handler === 'function' ? handler(...args) : false),
5
+ (sum, handler) =>
6
+ sum || (typeof handler === 'function' ? handler(...args) : false),
6
7
  false,
7
8
  );
8
9
 
package/src/index.js CHANGED
@@ -3,7 +3,11 @@ import { ConfigContext, useConfigContext } from './context';
3
3
  export const { Consumer: ConfigConsumer } = ConfigContext;
4
4
  export { default as ConfigProvider } from './ConfigProvider';
5
5
  export { default as EventHandler } from './EventHandler';
6
- export { default as EventReceiver, eventReceiverPropType, isEventReceiver } from './EventReceiver';
6
+ export {
7
+ default as EventReceiver,
8
+ eventReceiverPropType,
9
+ isEventReceiver,
10
+ } from './EventReceiver';
7
11
  export { default as composeHandlers } from './composeHandlers';
8
12
  export { default as useEventHandler } from './useEventHandler';
9
13
  export { useConfigContext };
@@ -40,7 +40,7 @@ function useEventHandler({
40
40
  setOptions(optionsProp);
41
41
  }
42
42
 
43
- const isDisabled = !!disabled;
43
+ const isDisabled = Boolean(disabled || currentResource?.isEmpty);
44
44
 
45
45
  useEffect(() => {
46
46
  if (eventReceiver == null || isDisabled) return undefined;
@@ -52,7 +52,12 @@ function useEventHandler({
52
52
  } else {
53
53
  unhandledEvents = data;
54
54
  }
55
- if (unhandledEvents.length === 0 || typeof resource?.notify !== 'function') return;
55
+ if (
56
+ unhandledEvents.length === 0 ||
57
+ typeof resource?.notify !== 'function'
58
+ ) {
59
+ return;
60
+ }
56
61
  const promise = resource.notify();
57
62
  if (typeof onNotify === 'function') {
58
63
  promise.then((result) => onNotify(result, unhandledEvents));