reactish-state 0.7.1 → 0.8.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.
- package/dist/cjs/index.js +2 -2
- package/dist/es/vanilla/state.js +2 -2
- package/dist/middleware/cjs/index.js +26 -19
- package/dist/middleware/es/applyMiddleware.js +2 -2
- package/dist/middleware/es/immer.js +9 -0
- package/dist/middleware/es/index.js +2 -1
- package/dist/middleware/es/persist.js +3 -3
- package/dist/middleware/es/reduxDevtools.js +15 -0
- package/package.json +10 -2
- package/types/common.d.ts +1 -1
- package/types/middleware/immer.d.ts +3 -0
- package/types/middleware/index.d.ts +2 -1
- package/types/middleware/reduxDevtools.d.ts +3 -0
- package/types/vanilla/state.d.ts +2 -2
- package/dist/middleware/es/devtools.js +0 -17
- package/dist/middleware/es/logger.js +0 -10
- package/types/middleware/devtools.d.ts +0 -3
package/dist/cjs/index.js
CHANGED
|
@@ -5,7 +5,7 @@ var shim = require('use-sync-external-store/shim');
|
|
|
5
5
|
var createState = function createState(_temp) {
|
|
6
6
|
var _ref = _temp === void 0 ? {} : _temp,
|
|
7
7
|
middleware = _ref.middleware;
|
|
8
|
-
return function (initialValue, actionCreator,
|
|
8
|
+
return function (initialValue, actionCreator, config) {
|
|
9
9
|
var value = initialValue;
|
|
10
10
|
var listeners = new Set();
|
|
11
11
|
var get = function get() {
|
|
@@ -20,7 +20,7 @@ var createState = function createState(_temp) {
|
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
if (middleware) set = middleware(set, get,
|
|
23
|
+
if (middleware) set = middleware(set, get, config);
|
|
24
24
|
return {
|
|
25
25
|
get: get,
|
|
26
26
|
set: set,
|
package/dist/es/vanilla/state.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var createState = function createState(_temp) {
|
|
2
2
|
var _ref = _temp === void 0 ? {} : _temp,
|
|
3
3
|
middleware = _ref.middleware;
|
|
4
|
-
return function (initialValue, actionCreator,
|
|
4
|
+
return function (initialValue, actionCreator, config) {
|
|
5
5
|
var value = initialValue;
|
|
6
6
|
var listeners = new Set();
|
|
7
7
|
var get = function get() {
|
|
@@ -16,7 +16,7 @@ var createState = function createState(_temp) {
|
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
|
-
if (middleware) set = middleware(set, get,
|
|
19
|
+
if (middleware) set = middleware(set, get, config);
|
|
20
20
|
return {
|
|
21
21
|
get: get,
|
|
22
22
|
set: set,
|
|
@@ -1,29 +1,21 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var immer$1 = require('immer');
|
|
4
|
+
|
|
3
5
|
var applyMiddleware = function applyMiddleware() {
|
|
4
6
|
for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
5
7
|
middlewares[_key] = arguments[_key];
|
|
6
8
|
}
|
|
7
|
-
return function (set, get,
|
|
9
|
+
return function (set, get, config) {
|
|
8
10
|
return middlewares.reduceRight(function (prev, curr) {
|
|
9
|
-
return curr(prev, get,
|
|
11
|
+
return curr(prev, get, config);
|
|
10
12
|
}, set);
|
|
11
13
|
};
|
|
12
14
|
};
|
|
13
15
|
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var extension = devtoolsExtension.connect({
|
|
18
|
-
name: context.key
|
|
19
|
-
});
|
|
20
|
-
extension.init(get());
|
|
21
|
-
return function (vaule) {
|
|
22
|
-
set(vaule);
|
|
23
|
-
extension.send({
|
|
24
|
-
type: 'anonymous',
|
|
25
|
-
vaule: vaule
|
|
26
|
-
}, get());
|
|
16
|
+
var immer = function immer(set) {
|
|
17
|
+
return function (value) {
|
|
18
|
+
return set(typeof value === 'function' ? immer$1.produce(value) : value);
|
|
27
19
|
};
|
|
28
20
|
};
|
|
29
21
|
|
|
@@ -35,9 +27,9 @@ var persist = function persist(_temp) {
|
|
|
35
27
|
return localStorage;
|
|
36
28
|
} : _ref$getStorage;
|
|
37
29
|
var states = [];
|
|
38
|
-
var middleware = function middleware(set, get,
|
|
39
|
-
var key =
|
|
40
|
-
if (!key) throw new Error('[reactish-state] state should be provided with a string `key` in the
|
|
30
|
+
var middleware = function middleware(set, get, config) {
|
|
31
|
+
var key = config ? config.key : '';
|
|
32
|
+
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.');
|
|
41
33
|
if (prefix) key = prefix + key;
|
|
42
34
|
states.push([key, set]);
|
|
43
35
|
return function (value) {
|
|
@@ -57,6 +49,21 @@ var persist = function persist(_temp) {
|
|
|
57
49
|
return middleware;
|
|
58
50
|
};
|
|
59
51
|
|
|
52
|
+
var reduxDevtools = function reduxDevtools(set, get, config) {
|
|
53
|
+
if (typeof window === 'undefined' || !window.__REDUX_DEVTOOLS_EXTENSION__) return set;
|
|
54
|
+
var devtools = window.__REDUX_DEVTOOLS_EXTENSION__.connect({
|
|
55
|
+
name: config == null ? void 0 : config.key
|
|
56
|
+
});
|
|
57
|
+
devtools.init(get());
|
|
58
|
+
return function (vaule) {
|
|
59
|
+
set(vaule);
|
|
60
|
+
devtools.send({
|
|
61
|
+
type: 'SET_STATE'
|
|
62
|
+
}, get());
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
|
|
60
66
|
exports.applyMiddleware = applyMiddleware;
|
|
61
|
-
exports.
|
|
67
|
+
exports.immer = immer;
|
|
62
68
|
exports.persist = persist;
|
|
69
|
+
exports.reduxDevtools = reduxDevtools;
|
|
@@ -2,9 +2,9 @@ var applyMiddleware = function applyMiddleware() {
|
|
|
2
2
|
for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
3
3
|
middlewares[_key] = arguments[_key];
|
|
4
4
|
}
|
|
5
|
-
return function (set, get,
|
|
5
|
+
return function (set, get, config) {
|
|
6
6
|
return middlewares.reduceRight(function (prev, curr) {
|
|
7
|
-
return curr(prev, get,
|
|
7
|
+
return curr(prev, get, config);
|
|
8
8
|
}, set);
|
|
9
9
|
};
|
|
10
10
|
};
|
|
@@ -6,9 +6,9 @@ var persist = function persist(_temp) {
|
|
|
6
6
|
return localStorage;
|
|
7
7
|
} : _ref$getStorage;
|
|
8
8
|
var states = [];
|
|
9
|
-
var middleware = function middleware(set, get,
|
|
10
|
-
var key =
|
|
11
|
-
if (!key) throw new Error('[reactish-state] state should be provided with a string `key` in the
|
|
9
|
+
var middleware = function middleware(set, get, config) {
|
|
10
|
+
var key = config ? config.key : '';
|
|
11
|
+
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.');
|
|
12
12
|
if (prefix) key = prefix + key;
|
|
13
13
|
states.push([key, set]);
|
|
14
14
|
return function (value) {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var reduxDevtools = function reduxDevtools(set, get, config) {
|
|
2
|
+
if (typeof window === 'undefined' || !window.__REDUX_DEVTOOLS_EXTENSION__) return set;
|
|
3
|
+
var devtools = window.__REDUX_DEVTOOLS_EXTENSION__.connect({
|
|
4
|
+
name: config == null ? void 0 : config.key
|
|
5
|
+
});
|
|
6
|
+
devtools.init(get());
|
|
7
|
+
return function (vaule) {
|
|
8
|
+
set(vaule);
|
|
9
|
+
devtools.send({
|
|
10
|
+
type: 'SET_STATE'
|
|
11
|
+
}, get());
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export { reduxDevtools };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reactish-state",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Zheng Song",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,7 +29,13 @@
|
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"react": "^16.8 || ^17.0 || ^18.0",
|
|
32
|
-
"react-dom": "^16.8 || ^17.0 || ^18.0"
|
|
32
|
+
"react-dom": "^16.8 || ^17.0 || ^18.0",
|
|
33
|
+
"immer": ">=6.0"
|
|
34
|
+
},
|
|
35
|
+
"peerDependenciesMeta": {
|
|
36
|
+
"immer": {
|
|
37
|
+
"optional": true
|
|
38
|
+
}
|
|
33
39
|
},
|
|
34
40
|
"dependencies": {
|
|
35
41
|
"use-sync-external-store": "^1.2.0"
|
|
@@ -38,6 +44,7 @@
|
|
|
38
44
|
"@babel/core": "^7.19.6",
|
|
39
45
|
"@babel/preset-env": "^7.19.4",
|
|
40
46
|
"@babel/preset-typescript": "^7.18.6",
|
|
47
|
+
"@redux-devtools/extension": "^3.2.3",
|
|
41
48
|
"@rollup/plugin-babel": "^6.0.0",
|
|
42
49
|
"@rollup/plugin-node-resolve": "^15.0.0",
|
|
43
50
|
"@types/jest": "^29.1.2",
|
|
@@ -52,6 +59,7 @@
|
|
|
52
59
|
"eslint-plugin-react": "^7.31.10",
|
|
53
60
|
"eslint-plugin-react-hooks": "^4.6.0",
|
|
54
61
|
"eslint-plugin-react-hooks-addons": "^0.3.1",
|
|
62
|
+
"immer": "^9.0.16",
|
|
55
63
|
"jest": "^29.2.2",
|
|
56
64
|
"jest-environment-jsdom": "^29.2.2",
|
|
57
65
|
"npm-run-all": "^4.1.5",
|
package/types/common.d.ts
CHANGED
package/types/vanilla/state.d.ts
CHANGED
|
@@ -4,10 +4,10 @@ interface State<T, A = unknown, C extends ActionCreator<T, A> = undefined> exten
|
|
|
4
4
|
set: Setter<T>;
|
|
5
5
|
actions: C extends undefined ? never : A;
|
|
6
6
|
}
|
|
7
|
-
declare type StateCreator = <T, A, X>(initialValue: T, actionCreator?: ActionCreator<T, A>,
|
|
7
|
+
declare type StateCreator = <T, A, X>(initialValue: T, actionCreator?: ActionCreator<T, A>, config?: X) => State<T, A, ActionCreator<T, A>>;
|
|
8
8
|
declare const createState: <T, X>({ middleware }?: {
|
|
9
9
|
middleware?: Middleware | undefined;
|
|
10
|
-
}) => <A>(initialValue: T, actionCreator?: ActionCreator<T, A>,
|
|
10
|
+
}) => <A>(initialValue: T, actionCreator?: ActionCreator<T, A>, config?: X | undefined) => State<T, A, ActionCreator<T, A>>;
|
|
11
11
|
declare const state: StateCreator;
|
|
12
12
|
export type { StateCreator };
|
|
13
13
|
export { state, createState };
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
var devtools = function devtools(set, get, context) {
|
|
2
|
-
if (typeof window === 'undefined') return set;
|
|
3
|
-
var devtoolsExtension = window.__REDUX_DEVTOOLS_EXTENSION__;
|
|
4
|
-
var extension = devtoolsExtension.connect({
|
|
5
|
-
name: context.key
|
|
6
|
-
});
|
|
7
|
-
extension.init(get());
|
|
8
|
-
return function (vaule) {
|
|
9
|
-
set(vaule);
|
|
10
|
-
extension.send({
|
|
11
|
-
type: 'anonymous',
|
|
12
|
-
vaule: vaule
|
|
13
|
-
}, get());
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export { devtools };
|