reactish-state 0.11.2 → 1.0.0-alpha.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.
Files changed (51) hide show
  1. package/README.md +100 -84
  2. package/dist/cjs/index.cjs +17 -0
  3. package/dist/cjs/react/shim.cjs +10 -0
  4. package/dist/cjs/react/useSelector.cjs +35 -0
  5. package/dist/cjs/react/useSnapshot.cjs +15 -0
  6. package/dist/cjs/utils.cjs +17 -0
  7. package/dist/cjs/vanilla/selector.cjs +35 -0
  8. package/dist/cjs/vanilla/state.cjs +35 -0
  9. package/dist/esm/index.mjs +5 -0
  10. package/dist/esm/react/shim.mjs +8 -0
  11. package/dist/esm/react/{useSelector.js → useSelector.mjs} +2 -2
  12. package/dist/esm/react/useSnapshot.mjs +13 -0
  13. package/dist/esm/vanilla/{selector.js → selector.mjs} +2 -2
  14. package/dist/esm/vanilla/{state.js → state.mjs} +1 -1
  15. package/dist/middleware/cjs/applyMiddleware.cjs +10 -0
  16. package/dist/middleware/cjs/index.cjs +11 -0
  17. package/dist/middleware/cjs/persist.cjs +39 -0
  18. package/dist/middleware/cjs/reduxDevtools.cjs +34 -0
  19. package/dist/middleware/esm/index.mjs +3 -0
  20. package/dist/middleware/esm/{persist.js → persist.mjs} +1 -1
  21. package/dist/middleware/esm/{reduxDevtools.js → reduxDevtools.mjs} +1 -1
  22. package/dist/plugin/cjs/applyPlugin.cjs +5 -0
  23. package/dist/plugin/cjs/index.cjs +9 -0
  24. package/dist/plugin/cjs/{index.js → reduxDevtools.cjs} +1 -4
  25. package/dist/plugin/esm/{applyPlugin.js → applyPlugin.mjs} +1 -1
  26. package/dist/plugin/esm/index.mjs +2 -0
  27. package/dist/plugin/esm/{reduxDevtools.js → reduxDevtools.mjs} +1 -1
  28. package/dist/shim/cjs/index.cjs +7 -0
  29. package/dist/shim/cjs/reactShim.cjs +7 -0
  30. package/dist/shim/esm/index.mjs +1 -0
  31. package/dist/shim/esm/reactShim.mjs +5 -0
  32. package/package.json +59 -43
  33. package/shim/index.d.ts +1 -0
  34. package/types/index.d.ts +1 -0
  35. package/types/middleware/persist.d.ts +1 -1
  36. package/types/react/shim.d.ts +4 -0
  37. package/types/react/useSelector.d.ts +2 -2
  38. package/types/shim/index.d.ts +1 -0
  39. package/types/shim/reactShim.d.ts +3 -0
  40. package/types/vanilla/selector.d.ts +1 -1
  41. package/types/vanilla/state.d.ts +1 -1
  42. package/dist/cjs/index.js +0 -116
  43. package/dist/esm/index.js +0 -4
  44. package/dist/esm/react/useSnapshot.js +0 -8
  45. package/dist/middleware/cjs/index.js +0 -79
  46. package/dist/middleware/esm/index.js +0 -3
  47. package/dist/plugin/esm/index.js +0 -2
  48. /package/dist/esm/{utils.js → utils.mjs} +0 -0
  49. /package/dist/middleware/cjs/{immer.js → immer.cjs} +0 -0
  50. /package/dist/middleware/esm/{applyMiddleware.js → applyMiddleware.mjs} +0 -0
  51. /package/dist/middleware/esm/{immer.js → immer.mjs} +0 -0
package/dist/esm/index.js DELETED
@@ -1,4 +0,0 @@
1
- export { createState, state } from './vanilla/state.js';
2
- export { createSelector, selector } from './vanilla/selector.js';
3
- export { useSnapshot } from './react/useSnapshot.js';
4
- export { useSelector } from './react/useSelector.js';
@@ -1,8 +0,0 @@
1
- import { useSyncExternalStore } from 'use-sync-external-store/shim';
2
-
3
- const useSnapshot = ({
4
- subscribe,
5
- get
6
- }) => useSyncExternalStore(subscribe, get, get);
7
-
8
- export { useSnapshot };
@@ -1,79 +0,0 @@
1
- 'use strict';
2
-
3
- const applyMiddleware = (middlewares, {
4
- fromRight
5
- } = {}) => (api, config) => middlewares[fromRight ? 'reduceRight' : 'reduce']((set, middleware) => middleware ? middleware({
6
- ...api,
7
- set
8
- }, config) : set, api.set);
9
-
10
- const persist = ({
11
- prefix,
12
- getStorage = () => localStorage
13
- } = {}) => {
14
- const states = [];
15
- const middleware = ({
16
- set,
17
- get
18
- }, config) => {
19
- let key = (config == null ? void 0 : config.key) || '';
20
- if (!key) throw new Error('[reactish-state] state should be provided with a string `key` in the config object when the `persist` middleware is used.');
21
- if (prefix) key = prefix + key;
22
- states.push([key, set]);
23
- return (...args) => {
24
- set(...args);
25
- try {
26
- getStorage().setItem(key, JSON.stringify(get()));
27
- } catch (_unused) {
28
- /* continue regardless of error */
29
- }
30
- };
31
- };
32
- middleware.hydrate = () => {
33
- states.forEach(([key, set]) => {
34
- try {
35
- const value = getStorage().getItem(key);
36
- value != null && set(value !== 'undefined' ? JSON.parse(value) : undefined, `HYDRATE_${key}`);
37
- } catch (_unused2) {
38
- /* continue regardless of error */
39
- }
40
- });
41
- states.length = 0;
42
- };
43
- return middleware;
44
- };
45
-
46
- const reduxDevtools = ({
47
- name
48
- } = {}) => {
49
- let devtoolsExt;
50
- if (process.env.NODE_ENV === 'production' || typeof window === 'undefined' || !(devtoolsExt = window.__REDUX_DEVTOOLS_EXTENSION__)) return;
51
- const devtools = devtoolsExt.connect({
52
- name
53
- });
54
- const mergedState = {};
55
- return ({
56
- set,
57
- get
58
- }, config) => {
59
- const key = config == null ? void 0 : config.key;
60
- if (!key) throw new Error('[reactish-state] state should be provided with a string `key` in the config object when the `reduxDevtools` middleware is used.');
61
- mergedState[key] = get();
62
- devtools.init(mergedState);
63
- return (...args) => {
64
- const [value, action] = args;
65
- set(...args);
66
- mergedState[key] = get();
67
- devtools.send(typeof action === 'string' ? {
68
- type: action
69
- } : action || {
70
- type: `SET_${key}`,
71
- value
72
- }, mergedState);
73
- };
74
- };
75
- };
76
-
77
- exports.applyMiddleware = applyMiddleware;
78
- exports.persist = persist;
79
- exports.reduxDevtools = reduxDevtools;
@@ -1,3 +0,0 @@
1
- export { applyMiddleware } from './applyMiddleware.js';
2
- export { persist } from './persist.js';
3
- export { reduxDevtools } from './reduxDevtools.js';
@@ -1,2 +0,0 @@
1
- export { applyPlugin } from './applyPlugin.js';
2
- export { reduxDevtools } from './reduxDevtools.js';
File without changes
File without changes
File without changes