@alcadur/react-events-hook 1.4.0 → 1.5.0

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.
Files changed (76) hide show
  1. package/{build → dist}/actions/clear-memo.d.ts +1 -0
  2. package/dist/actions/clear-memo.d.ts.map +1 -0
  3. package/{src/actions/clear-memo.ts → dist/actions/clear-memo.js} +6 -8
  4. package/dist/actions/clear-memo.js.map +1 -0
  5. package/{build → dist}/actions/emit-event.d.ts +1 -0
  6. package/dist/actions/emit-event.d.ts.map +1 -0
  7. package/{src/actions/emit-event.ts → dist/actions/emit-event.js} +22 -28
  8. package/dist/actions/emit-event.js.map +1 -0
  9. package/{src/actions/index.ts → dist/actions/index.d.ts} +5 -4
  10. package/dist/actions/index.d.ts.map +1 -0
  11. package/{build/actions/index.d.ts → dist/actions/index.js} +1 -0
  12. package/dist/actions/index.js.map +1 -0
  13. package/{build → dist}/actions/on-event.d.ts +1 -0
  14. package/dist/actions/on-event.d.ts.map +1 -0
  15. package/{src/actions/on-event.ts → dist/actions/on-event.js} +12 -16
  16. package/dist/actions/on-event.js.map +1 -0
  17. package/{build → dist}/actions/remove-event.d.ts +1 -0
  18. package/dist/actions/remove-event.d.ts.map +1 -0
  19. package/{src/actions/remove-event.ts → dist/actions/remove-event.js} +15 -17
  20. package/dist/actions/remove-event.js.map +1 -0
  21. package/{build → dist}/events.model.d.ts +1 -0
  22. package/dist/events.model.d.ts.map +1 -0
  23. package/dist/events.model.js +2 -0
  24. package/dist/events.model.js.map +1 -0
  25. package/dist/hooks/index.d.ts +2 -0
  26. package/dist/hooks/index.d.ts.map +1 -0
  27. package/dist/hooks/index.js +2 -0
  28. package/dist/hooks/index.js.map +1 -0
  29. package/{build → dist}/hooks/useEvents.d.ts +1 -0
  30. package/dist/hooks/useEvents.d.ts.map +1 -0
  31. package/{src/hooks/useEvents.ts → dist/hooks/useEvents.js} +21 -24
  32. package/dist/hooks/useEvents.js.map +1 -0
  33. package/{build → dist}/index.d.ts +1 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/{src/index.ts → dist/index.js} +4 -3
  36. package/dist/index.js.map +1 -0
  37. package/{build → dist}/shared-events.d.ts +1 -0
  38. package/dist/shared-events.d.ts.map +1 -0
  39. package/dist/shared-events.js +3 -0
  40. package/dist/shared-events.js.map +1 -0
  41. package/{build → dist}/utils.d.ts +1 -0
  42. package/dist/utils.d.ts.map +1 -0
  43. package/dist/utils.js +4 -0
  44. package/dist/utils.js.map +1 -0
  45. package/package.json +22 -8
  46. package/build/actions/clear-memo.js +0 -9
  47. package/build/actions/emit-event.js +0 -45
  48. package/build/actions/index.js +0 -20
  49. package/build/actions/index.test.d.ts +0 -1
  50. package/build/actions/index.test.js +0 -114
  51. package/build/actions/on-event.js +0 -15
  52. package/build/actions/remove-event.js +0 -17
  53. package/build/events.model.js +0 -2
  54. package/build/hooks/index.d.ts +0 -1
  55. package/build/hooks/index.js +0 -17
  56. package/build/hooks/useEvents.js +0 -33
  57. package/build/hooks/useEvents.test.d.ts +0 -1
  58. package/build/hooks/useEvents.test.js +0 -80
  59. package/build/index.js +0 -19
  60. package/build/setupTests.d.ts +0 -1
  61. package/build/setupTests.js +0 -3
  62. package/build/shared-events.js +0 -5
  63. package/build/utils.js +0 -6
  64. package/build/utils.test.d.ts +0 -1
  65. package/build/utils.test.js +0 -16
  66. package/index.ts +0 -1
  67. package/src/actions/index.test.ts +0 -147
  68. package/src/events.model.ts +0 -4
  69. package/src/hooks/index.ts +0 -1
  70. package/src/hooks/useEvents.test.ts +0 -95
  71. package/src/setupTests.ts +0 -1
  72. package/src/shared-events.ts +0 -5
  73. package/src/utils.test.ts +0 -16
  74. package/src/utils.ts +0 -5
  75. package/tsconfig.json +0 -13
  76. package/vitest.config.ts +0 -13
@@ -1,2 +1,3 @@
1
1
  import { EventNameType } from "../events.model";
2
2
  export declare const clearMemo: (key: EventNameType) => void;
3
+ //# sourceMappingURL=clear-memo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-memo.d.ts","sourceRoot":"","sources":["../../src/actions/clear-memo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,SAAS,GAAI,KAAK,aAAa,SAI3C,CAAA"}
@@ -1,8 +1,6 @@
1
- import { lastEmittedValues } from "../shared-events";
2
- import { EventNameType } from "../events.model";
3
-
4
- export const clearMemo = (key: EventNameType) => {
5
- lastEmittedValues[key] = undefined;
6
- delete lastEmittedValues[key];
7
-
8
- }
1
+ import { lastEmittedValues } from "../shared-events";
2
+ export const clearMemo = (key) => {
3
+ lastEmittedValues[key] = undefined;
4
+ delete lastEmittedValues[key];
5
+ };
6
+ //# sourceMappingURL=clear-memo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clear-memo.js","sourceRoot":"","sources":["../../src/actions/clear-memo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAkB,EAAE,EAAE;IAC5C,iBAAiB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACnC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAElC,CAAC,CAAA"}
@@ -3,3 +3,4 @@ export declare function emitEvent(event: EventNameType, ...args: any[]): void;
3
3
  export declare namespace emitEvent {
4
4
  var memo: (event: EventNameType, ...args: any[]) => void;
5
5
  }
6
+ //# sourceMappingURL=emit-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-event.d.ts","sourceRoot":"","sources":["../../src/actions/emit-event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYhD,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,QAE7D;yBAFe,SAAS;sBAKI,aAAa,WAAW,GAAG,EAAE"}
@@ -1,28 +1,22 @@
1
- import { lastEmittedValues, sharedEvents } from "../shared-events";
2
- import { EventNameType } from "../events.model";
3
- import { clearMemo } from "./clear-memo";
4
-
5
- function emitter(event: EventNameType, ...args: any[]) {
6
- const callbacks = sharedEvents[event];
7
- if (!callbacks) {
8
- return;
9
- }
10
-
11
- callbacks.forEach(callback => callback(...args));
12
- }
13
-
14
- export function emitEvent(event: EventNameType, ...args: any[]) {
15
- emitter(event, ...args);
16
- }
17
-
18
- if (!emitEvent.memo) {
19
- emitEvent.memo = (event: EventNameType, ...args: any[]) => {
20
- lastEmittedValues[event] = args;
21
-
22
- if (args.length === 1 && args[0] === undefined) {
23
- clearMemo(event);
24
- }
25
-
26
- emitter(event, ...args);
27
- }
28
- }
1
+ import { lastEmittedValues, sharedEvents } from "../shared-events";
2
+ import { clearMemo } from "./clear-memo";
3
+ function emitter(event, ...args) {
4
+ const callbacks = sharedEvents[event];
5
+ if (!callbacks) {
6
+ return;
7
+ }
8
+ callbacks.forEach(callback => callback(...args));
9
+ }
10
+ export function emitEvent(event, ...args) {
11
+ emitter(event, ...args);
12
+ }
13
+ if (!emitEvent.memo) {
14
+ emitEvent.memo = (event, ...args) => {
15
+ lastEmittedValues[event] = args;
16
+ if (args.length === 1 && args[0] === undefined) {
17
+ clearMemo(event);
18
+ }
19
+ emitter(event, ...args);
20
+ };
21
+ }
22
+ //# sourceMappingURL=emit-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-event.js","sourceRoot":"","sources":["../../src/actions/emit-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,SAAS,OAAO,CAAC,KAAoB,EAAE,GAAG,IAAW;IACjD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO;IACX,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAoB,EAAE,GAAG,IAAW;IAC1D,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAClB,SAAS,CAAC,IAAI,GAAG,CAAC,KAAoB,EAAE,GAAG,IAAW,EAAE,EAAE;QACtD,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7C,SAAS,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAA;AACL,CAAC"}
@@ -1,4 +1,5 @@
1
- export * from './emit-event';
2
- export * from './on-event';
3
- export * from './remove-event';
4
- export * from './clear-memo';
1
+ export * from './emit-event';
2
+ export * from './on-event';
3
+ export * from './remove-event';
4
+ export * from './clear-memo';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -2,3 +2,4 @@ export * from './emit-event';
2
2
  export * from './on-event';
3
3
  export * from './remove-event';
4
4
  export * from './clear-memo';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { EventCallbackType, EventNameType } from "../events.model";
2
2
  export declare function onEvent(event: EventNameType, callback: EventCallbackType[] | EventCallbackType): void;
3
+ //# sourceMappingURL=on-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on-event.d.ts","sourceRoot":"","sources":["../../src/actions/on-event.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEnE,wBAAgB,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,QAW9F"}
@@ -1,16 +1,12 @@
1
- import { lastEmittedValues, sharedEvents } from "../shared-events";
2
- import { getAsArray } from "../utils";
3
- import { EventCallbackType, EventNameType } from "../events.model";
4
-
5
- export function onEvent(event: EventNameType, callback: EventCallbackType[] | EventCallbackType) {
6
- const callbacks = sharedEvents[event] ?? [];
7
-
8
- const newCallbacks = getAsArray(callback)
9
- callbacks.push(...newCallbacks);
10
-
11
- sharedEvents[event] = callbacks;
12
-
13
- if (lastEmittedValues[event]) {
14
- newCallbacks.forEach(callback => callback(...lastEmittedValues[event]));
15
- }
16
- }
1
+ import { lastEmittedValues, sharedEvents } from "../shared-events";
2
+ import { getAsArray } from "../utils";
3
+ export function onEvent(event, callback) {
4
+ const callbacks = sharedEvents[event] ?? [];
5
+ const newCallbacks = getAsArray(callback);
6
+ callbacks.push(...newCallbacks);
7
+ sharedEvents[event] = callbacks;
8
+ if (lastEmittedValues[event]) {
9
+ newCallbacks.forEach(callback => callback(...lastEmittedValues[event]));
10
+ }
11
+ }
12
+ //# sourceMappingURL=on-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"on-event.js","sourceRoot":"","sources":["../../src/actions/on-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,MAAM,UAAU,OAAO,CAAC,KAAoB,EAAE,QAAiD;IAC3F,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAE5C,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;IACzC,SAAS,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;IAEhC,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAEhC,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;AACL,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { EventCallbackType, EventNameType } from "../events.model";
2
2
  export declare function removeEvent(event: EventNameType, callback: EventCallbackType | EventCallbackType[]): void;
3
+ //# sourceMappingURL=remove-event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-event.d.ts","sourceRoot":"","sources":["../../src/actions/remove-event.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEnE,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,iBAAiB,GAAG,iBAAiB,EAAE,QAYlG"}
@@ -1,17 +1,15 @@
1
- import { sharedEvents } from "../shared-events";
2
- import { getAsArray } from "../utils";
3
- import { EventCallbackType, EventNameType } from "../events.model";
4
-
5
- export function removeEvent(event: EventNameType, callback: EventCallbackType | EventCallbackType[]) {
6
- const declaredCallbacks = sharedEvents[event];
7
- if (!declaredCallbacks) {
8
- return;
9
- }
10
-
11
- getAsArray(callback).forEach(cb => {
12
- const index = declaredCallbacks.indexOf(cb);
13
- if (index !== -1) {
14
- declaredCallbacks.splice(index, 1);
15
- }
16
- })
17
- }
1
+ import { sharedEvents } from "../shared-events";
2
+ import { getAsArray } from "../utils";
3
+ export function removeEvent(event, callback) {
4
+ const declaredCallbacks = sharedEvents[event];
5
+ if (!declaredCallbacks) {
6
+ return;
7
+ }
8
+ getAsArray(callback).forEach(cb => {
9
+ const index = declaredCallbacks.indexOf(cb);
10
+ if (index !== -1) {
11
+ declaredCallbacks.splice(index, 1);
12
+ }
13
+ });
14
+ }
15
+ //# sourceMappingURL=remove-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-event.js","sourceRoot":"","sources":["../../src/actions/remove-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,MAAM,UAAU,WAAW,CAAC,KAAoB,EAAE,QAAiD;IAC/F,MAAM,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrB,OAAO;IACX,CAAC;IAED,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QAC9B,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;IACL,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -3,3 +3,4 @@ export type EventCallbackType = ((...args: any[]) => void) | (() => void);
3
3
  export type InitEventsType = {
4
4
  [key: EventNameType]: EventCallbackType[] | EventCallbackType;
5
5
  };
6
+ //# sourceMappingURL=events.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.model.d.ts","sourceRoot":"","sources":["../src/events.model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;AACpD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;AAEzE,MAAM,MAAM,cAAc,GAAG;IAAE,CAAC,GAAG,EAAE,aAAa,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,CAAA;CAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.model.js","sourceRoot":"","sources":["../src/events.model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from './useEvents';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './useEvents';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -6,3 +6,4 @@ export declare const useEvents: (eventMap?: InitEventsType) => {
6
6
  removeEvent: typeof removeEvent;
7
7
  clearMemo: (key: import("../events.model").EventNameType) => void;
8
8
  };
9
+ //# sourceMappingURL=useEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEvents.d.ts","sourceRoot":"","sources":["../../src/hooks/useEvents.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AAExE,eAAO,MAAM,SAAS,GAAI,WAAU,cAAmB;;;;;CAmBtD,CAAC"}
@@ -1,24 +1,21 @@
1
- import { useEffect } from "react";
2
- import { InitEventsType } from "../events.model";
3
- import { emitEvent, onEvent, removeEvent, clearMemo } from "../actions";
4
-
5
- export const useEvents = (eventMap: InitEventsType = {}) => {
6
- useEffect(() => {
7
- if (!eventMap) {
8
- return;
9
- }
10
- const events = [...Object.keys(eventMap), ...Object.getOwnPropertySymbols(eventMap)]
11
-
12
- events.forEach( event => {
13
- onEvent(event, eventMap[event])
14
- })
15
-
16
- return () => {
17
- events.forEach((event) => {
18
- removeEvent(event, eventMap[event])
19
- })
20
- }
21
- }, [eventMap])
22
-
23
- return { onEvent, emitEvent, removeEvent, clearMemo };
24
- };
1
+ "use client";
2
+ import { useEffect } from "react";
3
+ import { emitEvent, onEvent, removeEvent, clearMemo } from "../actions";
4
+ export const useEvents = (eventMap = {}) => {
5
+ useEffect(() => {
6
+ if (!eventMap) {
7
+ return;
8
+ }
9
+ const events = [...Object.keys(eventMap), ...Object.getOwnPropertySymbols(eventMap)];
10
+ events.forEach(event => {
11
+ onEvent(event, eventMap[event]);
12
+ });
13
+ return () => {
14
+ events.forEach((event) => {
15
+ removeEvent(event, eventMap[event]);
16
+ });
17
+ };
18
+ }, [eventMap]);
19
+ return { onEvent, emitEvent, removeEvent, clearMemo };
20
+ };
21
+ //# sourceMappingURL=useEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEvents.js","sourceRoot":"","sources":["../../src/hooks/useEvents.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,WAA2B,EAAE,EAAE,EAAE;IACvD,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO;QACX,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAA;QAEpF,MAAM,CAAC,OAAO,CAAE,KAAK,CAAC,EAAE;YACpB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;QACnC,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrB,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;YACvC,CAAC,CAAC,CAAA;QACN,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAC1D,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './hooks';
2
2
  export * from './utils';
3
3
  export * from './actions';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
@@ -1,3 +1,4 @@
1
- export * from './hooks';
2
- export * from './utils';
3
- export * from './actions';
1
+ export * from './hooks';
2
+ export * from './utils';
3
+ export * from './actions';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
@@ -5,3 +5,4 @@ export declare const sharedEvents: {
5
5
  export declare const lastEmittedValues: {
6
6
  [key: EventNameType]: any;
7
7
  };
8
+ //# sourceMappingURL=shared-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-events.d.ts","sourceRoot":"","sources":["../src/shared-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEvE,eAAO,MAAM,YAAY,EAAE;IAAE,CAAC,GAAG,EAAE,aAAa,GAAG,iBAAiB,EAAE,CAAA;CAAO,CAAC;AAE9E,eAAO,MAAM,iBAAiB,EAAE;IAAE,CAAC,GAAG,EAAE,aAAa,GAAG,GAAG,CAAA;CAAO,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const sharedEvents = {};
2
+ export const lastEmittedValues = {};
3
+ //# sourceMappingURL=shared-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-events.js","sourceRoot":"","sources":["../src/shared-events.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAkD,EAAE,CAAC;AAE9E,MAAM,CAAC,MAAM,iBAAiB,GAAkC,EAAE,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { EventCallbackType } from "./events.model";
2
2
  export declare function getAsArray(value: EventCallbackType[] | EventCallbackType): EventCallbackType[];
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,CAE9F"}
package/dist/utils.js ADDED
@@ -0,0 +1,4 @@
1
+ export function getAsArray(value) {
2
+ return Array.isArray(value) ? value : [value];
3
+ }
4
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,KAA8C;IACrE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC"}
package/package.json CHANGED
@@ -1,16 +1,12 @@
1
1
  {
2
2
  "name": "@alcadur/react-events-hook",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Helps in easy communication between React components as also with external sources",
5
5
  "keywords": [
6
- "react",
7
6
  "react",
8
7
  "hook",
9
- "react",
10
8
  "hooks",
11
- "events",
12
- "events",
13
- "hook"
9
+ "events"
14
10
  ],
15
11
  "homepage": "https://github.com/Alcadur/react-events-hook#readme",
16
12
  "bugs": {
@@ -23,9 +19,27 @@
23
19
  "license": "MIT",
24
20
  "author": "Alcadur",
25
21
  "type": "module",
26
- "main": "build/index.js",
22
+ "main": "./dist/index.js",
23
+ "module": "./dist/index.js",
24
+ "types": "./dist/index.d.ts",
25
+ "exports": {
26
+ ".": {
27
+ "types": "./dist/index.d.ts",
28
+ "import": "./dist/index.js",
29
+ "default": "./dist/index.js"
30
+ }
31
+ },
32
+ "files": [
33
+ "dist"
34
+ ],
27
35
  "scripts": {
28
- "test": "vitest run"
36
+ "build": "tsc",
37
+ "test": "vitest run",
38
+ "prepublishOnly": "npm run build"
39
+ },
40
+ "peerDependencies": {
41
+ "react": ">=16.8.0",
42
+ "react-dom": ">=16.8.0"
29
43
  },
30
44
  "devDependencies": {
31
45
  "@rollup/plugin-typescript": "^12.3.0",
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clearMemo = void 0;
4
- var shared_events_1 = require("../shared-events");
5
- var clearMemo = function (key) {
6
- shared_events_1.lastEmittedValues[key] = undefined;
7
- delete shared_events_1.lastEmittedValues[key];
8
- };
9
- exports.clearMemo = clearMemo;
@@ -1,45 +0,0 @@
1
- "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.emitEvent = emitEvent;
13
- var shared_events_1 = require("../shared-events");
14
- var clear_memo_1 = require("./clear-memo");
15
- function emitter(event) {
16
- var args = [];
17
- for (var _i = 1; _i < arguments.length; _i++) {
18
- args[_i - 1] = arguments[_i];
19
- }
20
- var callbacks = shared_events_1.sharedEvents[event];
21
- if (!callbacks) {
22
- return;
23
- }
24
- callbacks.forEach(function (callback) { return callback.apply(void 0, args); });
25
- }
26
- function emitEvent(event) {
27
- var args = [];
28
- for (var _i = 1; _i < arguments.length; _i++) {
29
- args[_i - 1] = arguments[_i];
30
- }
31
- emitter.apply(void 0, __spreadArray([event], args, false));
32
- }
33
- if (!emitEvent.memo) {
34
- emitEvent.memo = function (event) {
35
- var args = [];
36
- for (var _i = 1; _i < arguments.length; _i++) {
37
- args[_i - 1] = arguments[_i];
38
- }
39
- shared_events_1.lastEmittedValues[event] = args;
40
- if (args.length === 1 && args[0] === undefined) {
41
- (0, clear_memo_1.clearMemo)(event);
42
- }
43
- emitter.apply(void 0, __spreadArray([event], args, false));
44
- };
45
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./emit-event"), exports);
18
- __exportStar(require("./on-event"), exports);
19
- __exportStar(require("./remove-event"), exports);
20
- __exportStar(require("./clear-memo"), exports);
@@ -1 +0,0 @@
1
- export {};
@@ -1,114 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var vitest_1 = require("vitest");
4
- var shared_events_1 = require("../shared-events");
5
- var emit_event_1 = require("./emit-event");
6
- var on_event_1 = require("./on-event");
7
- var remove_event_1 = require("./remove-event");
8
- var clear_memo_1 = require("./clear-memo");
9
- (0, vitest_1.describe)("actions", function () {
10
- (0, vitest_1.beforeEach)(function () {
11
- Object.keys(shared_events_1.sharedEvents).forEach(function (key) { return delete shared_events_1.sharedEvents[key]; });
12
- Object.keys(shared_events_1.lastEmittedValues).forEach(function (key) { return delete shared_events_1.lastEmittedValues[key]; });
13
- });
14
- (0, vitest_1.describe)("onEvent", function () {
15
- (0, vitest_1.it)("registers a single callback", function () {
16
- var callback = vitest_1.vi.fn();
17
- (0, on_event_1.onEvent)("test-event", callback);
18
- (0, vitest_1.expect)(shared_events_1.sharedEvents["test-event"]).toEqual([callback]);
19
- });
20
- (0, vitest_1.it)("registers an array of callbacks", function () {
21
- var callback1 = vitest_1.vi.fn();
22
- var callback2 = vitest_1.vi.fn();
23
- (0, on_event_1.onEvent)("test-event", [callback1, callback2]);
24
- (0, vitest_1.expect)(shared_events_1.sharedEvents["test-event"]).toEqual([callback1, callback2]);
25
- });
26
- });
27
- (0, vitest_1.describe)("emitEvent", function () {
28
- (0, vitest_1.it)("invokes all callbacks with provided args", function () {
29
- var callback1 = vitest_1.vi.fn();
30
- var callback2 = vitest_1.vi.fn();
31
- (0, on_event_1.onEvent)("test-event", [callback1, callback2]);
32
- (0, emit_event_1.emitEvent)("test-event", "data", 1);
33
- (0, vitest_1.expect)(callback1).toHaveBeenCalledWith("data", 1);
34
- (0, vitest_1.expect)(callback2).toHaveBeenCalledWith("data", 1);
35
- });
36
- (0, vitest_1.it)("does nothing when event has no callbacks", function () {
37
- (0, vitest_1.expect)(function () { return (0, emit_event_1.emitEvent)("missing-event", "data"); }).not.toThrow();
38
- });
39
- (0, vitest_1.describe)("memo", function () {
40
- (0, vitest_1.it)("invokes all callback and stores the value", function () {
41
- var callback = vitest_1.vi.fn();
42
- (0, on_event_1.onEvent)("memo-event", callback);
43
- emit_event_1.emitEvent.memo("memo-event", "memo-data");
44
- (0, vitest_1.expect)(callback).toHaveBeenCalledWith("memo-data");
45
- (0, vitest_1.expect)(shared_events_1.lastEmittedValues["memo-event"]).toEqual(["memo-data"]);
46
- });
47
- (0, vitest_1.it)("triggers callback immediately if event was already memoized", function () {
48
- var callback = vitest_1.vi.fn();
49
- emit_event_1.emitEvent.memo("memo-event", "old-data");
50
- (0, on_event_1.onEvent)("memo-event", callback);
51
- (0, vitest_1.expect)(callback).toHaveBeenCalledWith("old-data");
52
- });
53
- (0, vitest_1.it)("clears memoized value when emitEvent.memo is called with undefined", function () {
54
- var callback = vitest_1.vi.fn();
55
- (0, on_event_1.onEvent)("memo-event", callback);
56
- emit_event_1.emitEvent.memo("memo-event", "some-data");
57
- (0, vitest_1.expect)(shared_events_1.lastEmittedValues["memo-event"]).toEqual(["some-data"]);
58
- (0, vitest_1.expect)(callback).toHaveBeenCalledWith("some-data");
59
- emit_event_1.emitEvent.memo("memo-event", undefined);
60
- (0, vitest_1.expect)(shared_events_1.lastEmittedValues["memo-event"]).toBeUndefined();
61
- (0, vitest_1.expect)(callback).toHaveBeenCalledWith(undefined);
62
- });
63
- (0, vitest_1.it)("should not trigger callback immediately when last emitted value is undefined", function () {
64
- var callback = vitest_1.vi.fn();
65
- var callback2 = vitest_1.vi.fn();
66
- emit_event_1.emitEvent.memo("memo-event", "some-data");
67
- (0, on_event_1.onEvent)("memo-event", callback);
68
- (0, vitest_1.expect)(callback).toHaveBeenCalledWith("some-data");
69
- emit_event_1.emitEvent.memo("memo-event", undefined);
70
- (0, on_event_1.onEvent)("memo-event", callback2);
71
- (0, vitest_1.expect)(callback).toHaveBeenCalledWith(undefined);
72
- (0, vitest_1.expect)(callback2).not.toHaveBeenCalled();
73
- });
74
- });
75
- });
76
- (0, vitest_1.describe)("clearMemo", function () {
77
- (0, vitest_1.it)("removes the memoized value for a given event", function () {
78
- emit_event_1.emitEvent.memo("test-event", "data");
79
- (0, vitest_1.expect)(shared_events_1.lastEmittedValues["test-event"]).toEqual(["data"]);
80
- (0, clear_memo_1.clearMemo)("test-event");
81
- (0, vitest_1.expect)(shared_events_1.lastEmittedValues["test-event"]).toBeUndefined();
82
- });
83
- (0, vitest_1.it)("does not trigger callbacks", function () {
84
- var callback = vitest_1.vi.fn();
85
- (0, on_event_1.onEvent)("test-event", callback);
86
- emit_event_1.emitEvent.memo("test-event", "data");
87
- callback.mockClear();
88
- (0, clear_memo_1.clearMemo)("test-event");
89
- (0, vitest_1.expect)(callback).not.toHaveBeenCalled();
90
- });
91
- });
92
- (0, vitest_1.describe)("removeEvent", function () {
93
- (0, vitest_1.it)("removes a single callback", function () {
94
- var callback = vitest_1.vi.fn();
95
- (0, on_event_1.onEvent)("test-event", callback);
96
- (0, remove_event_1.removeEvent)("test-event", callback);
97
- (0, emit_event_1.emitEvent)("test-event", "data");
98
- (0, vitest_1.expect)(callback).not.toHaveBeenCalled();
99
- });
100
- (0, vitest_1.it)("removes multiple callbacks from array input", function () {
101
- var callback1 = vitest_1.vi.fn();
102
- var callback2 = vitest_1.vi.fn();
103
- (0, on_event_1.onEvent)("test-event", [callback1, callback2]);
104
- (0, remove_event_1.removeEvent)("test-event", [callback1, callback2]);
105
- (0, emit_event_1.emitEvent)("test-event", "data");
106
- (0, vitest_1.expect)(callback1).not.toHaveBeenCalled();
107
- (0, vitest_1.expect)(callback2).not.toHaveBeenCalled();
108
- });
109
- (0, vitest_1.it)("does nothing when event has no callbacks", function () {
110
- var callback = vitest_1.vi.fn();
111
- (0, vitest_1.expect)(function () { return (0, remove_event_1.removeEvent)("missing-event", callback); }).not.toThrow();
112
- });
113
- });
114
- });