@cclr/react-model 0.1.14 → 0.1.16
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/lib/cjs/index.js +57 -21
- package/lib/esm/index.js +57 -22
- package/lib/type/index.d.ts +14 -1
- package/package.json +8 -6
- package/lib/umd/index.js +0 -1
package/lib/cjs/index.js
CHANGED
|
@@ -93,29 +93,28 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
|
-
*
|
|
97
|
-
* @param modelName
|
|
96
|
+
* 获取精简的模型状态和操作
|
|
98
97
|
* @param model
|
|
99
98
|
* @returns
|
|
100
99
|
*/
|
|
101
|
-
var
|
|
100
|
+
var useSimpleStore = function useSimpleStore(model) {
|
|
102
101
|
var _useState = react.useState({}),
|
|
103
102
|
_useState2 = _slicedToArray(_useState, 2),
|
|
104
103
|
setState = _useState2[1];
|
|
105
104
|
react.useEffect(function () {
|
|
106
|
-
return model.subscribe(
|
|
105
|
+
return model.subscribe(function () {
|
|
107
106
|
setState({});
|
|
108
107
|
});
|
|
109
108
|
}, []);
|
|
110
|
-
return [model.getState(
|
|
109
|
+
return [model.getState().value, model.getActions().setValue];
|
|
111
110
|
};
|
|
112
111
|
|
|
113
112
|
/**
|
|
114
|
-
*
|
|
113
|
+
* 获取精简的模型值
|
|
115
114
|
* @param model
|
|
116
115
|
* @returns
|
|
117
116
|
*/
|
|
118
|
-
var
|
|
117
|
+
var useSimpleValue = function useSimpleValue(model) {
|
|
119
118
|
var _useState3 = react.useState({}),
|
|
120
119
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
121
120
|
setState = _useState4[1];
|
|
@@ -124,33 +123,69 @@ var useSimpleStore = function useSimpleStore(model) {
|
|
|
124
123
|
setState({});
|
|
125
124
|
});
|
|
126
125
|
}, []);
|
|
127
|
-
return
|
|
126
|
+
return model.getState().value;
|
|
128
127
|
};
|
|
129
128
|
|
|
130
129
|
/**
|
|
131
|
-
*
|
|
130
|
+
* 获取精简的模型值设置
|
|
132
131
|
* @param model
|
|
133
132
|
* @returns
|
|
134
133
|
*/
|
|
135
|
-
var
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
134
|
+
var useSimpleSet = function useSimpleSet(model) {
|
|
135
|
+
return model.getActions().setValue;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* 对于对象类型的模型,获取对象的状态和操作
|
|
140
|
+
* 依赖 ModelSimple
|
|
141
|
+
* @param model
|
|
142
|
+
* @returns
|
|
143
|
+
*/
|
|
144
|
+
var useObjStore = function useObjStore(model) {
|
|
145
|
+
var _useSimpleStore = useSimpleStore(model),
|
|
146
|
+
_useSimpleStore2 = _slicedToArray(_useSimpleStore, 2),
|
|
147
|
+
val = _useSimpleStore2[0],
|
|
148
|
+
set = _useSimpleStore2[1];
|
|
149
|
+
var handleUpdate = function handleUpdate(map) {
|
|
150
|
+
return set(function (prev) {
|
|
151
|
+
return _objectSpread2(_objectSpread2({}, prev), map);
|
|
142
152
|
});
|
|
143
|
-
}
|
|
144
|
-
|
|
153
|
+
};
|
|
154
|
+
var handleForce = function handleForce(map) {
|
|
155
|
+
return set(map);
|
|
156
|
+
};
|
|
157
|
+
var handleDel = function handleDel(keys) {
|
|
158
|
+
return set(function (prev) {
|
|
159
|
+
var next = _objectSpread2({}, prev);
|
|
160
|
+
keys.forEach(function (key) {
|
|
161
|
+
delete next[key];
|
|
162
|
+
});
|
|
163
|
+
return next;
|
|
164
|
+
});
|
|
165
|
+
};
|
|
166
|
+
return [val, {
|
|
167
|
+
handleUpdate: handleUpdate,
|
|
168
|
+
handleForce: handleForce,
|
|
169
|
+
handleDel: handleDel
|
|
170
|
+
}];
|
|
145
171
|
};
|
|
146
172
|
|
|
147
173
|
/**
|
|
148
|
-
*
|
|
174
|
+
* 获取指定模型的状态和操作
|
|
175
|
+
* @param modelName
|
|
149
176
|
* @param model
|
|
150
177
|
* @returns
|
|
151
178
|
*/
|
|
152
|
-
var
|
|
153
|
-
|
|
179
|
+
var useStore = function useStore(modelName, model) {
|
|
180
|
+
var _useState = react.useState({}),
|
|
181
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
182
|
+
setState = _useState2[1];
|
|
183
|
+
react.useEffect(function () {
|
|
184
|
+
return model.subscribe(modelName, function () {
|
|
185
|
+
setState({});
|
|
186
|
+
});
|
|
187
|
+
}, []);
|
|
188
|
+
return [model.getState(modelName), model.getActions(modelName)];
|
|
154
189
|
};
|
|
155
190
|
|
|
156
191
|
var ReactModel = function ReactModel(models) {
|
|
@@ -163,6 +198,7 @@ var ReactModel = function ReactModel(models) {
|
|
|
163
198
|
};
|
|
164
199
|
|
|
165
200
|
exports.ReactModel = ReactModel;
|
|
201
|
+
exports.useObjStore = useObjStore;
|
|
166
202
|
exports.useSimpleSet = useSimpleSet;
|
|
167
203
|
exports.useSimpleStore = useSimpleStore;
|
|
168
204
|
exports.useSimpleValue = useSimpleValue;
|
package/lib/esm/index.js
CHANGED
|
@@ -91,29 +91,28 @@ function _unsupportedIterableToArray(r, a) {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
|
-
*
|
|
95
|
-
* @param modelName
|
|
94
|
+
* 获取精简的模型状态和操作
|
|
96
95
|
* @param model
|
|
97
96
|
* @returns
|
|
98
97
|
*/
|
|
99
|
-
var
|
|
98
|
+
var useSimpleStore = function useSimpleStore(model) {
|
|
100
99
|
var _useState = useState({}),
|
|
101
100
|
_useState2 = _slicedToArray(_useState, 2),
|
|
102
101
|
setState = _useState2[1];
|
|
103
102
|
useEffect(function () {
|
|
104
|
-
return model.subscribe(
|
|
103
|
+
return model.subscribe(function () {
|
|
105
104
|
setState({});
|
|
106
105
|
});
|
|
107
106
|
}, []);
|
|
108
|
-
return [model.getState(
|
|
107
|
+
return [model.getState().value, model.getActions().setValue];
|
|
109
108
|
};
|
|
110
109
|
|
|
111
110
|
/**
|
|
112
|
-
*
|
|
111
|
+
* 获取精简的模型值
|
|
113
112
|
* @param model
|
|
114
113
|
* @returns
|
|
115
114
|
*/
|
|
116
|
-
var
|
|
115
|
+
var useSimpleValue = function useSimpleValue(model) {
|
|
117
116
|
var _useState3 = useState({}),
|
|
118
117
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
119
118
|
setState = _useState4[1];
|
|
@@ -122,33 +121,69 @@ var useSimpleStore = function useSimpleStore(model) {
|
|
|
122
121
|
setState({});
|
|
123
122
|
});
|
|
124
123
|
}, []);
|
|
125
|
-
return
|
|
124
|
+
return model.getState().value;
|
|
126
125
|
};
|
|
127
126
|
|
|
128
127
|
/**
|
|
129
|
-
*
|
|
128
|
+
* 获取精简的模型值设置
|
|
130
129
|
* @param model
|
|
131
130
|
* @returns
|
|
132
131
|
*/
|
|
133
|
-
var
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
132
|
+
var useSimpleSet = function useSimpleSet(model) {
|
|
133
|
+
return model.getActions().setValue;
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* 对于对象类型的模型,获取对象的状态和操作
|
|
138
|
+
* 依赖 ModelSimple
|
|
139
|
+
* @param model
|
|
140
|
+
* @returns
|
|
141
|
+
*/
|
|
142
|
+
var useObjStore = function useObjStore(model) {
|
|
143
|
+
var _useSimpleStore = useSimpleStore(model),
|
|
144
|
+
_useSimpleStore2 = _slicedToArray(_useSimpleStore, 2),
|
|
145
|
+
val = _useSimpleStore2[0],
|
|
146
|
+
set = _useSimpleStore2[1];
|
|
147
|
+
var handleUpdate = function handleUpdate(map) {
|
|
148
|
+
return set(function (prev) {
|
|
149
|
+
return _objectSpread2(_objectSpread2({}, prev), map);
|
|
140
150
|
});
|
|
141
|
-
}
|
|
142
|
-
|
|
151
|
+
};
|
|
152
|
+
var handleForce = function handleForce(map) {
|
|
153
|
+
return set(map);
|
|
154
|
+
};
|
|
155
|
+
var handleDel = function handleDel(keys) {
|
|
156
|
+
return set(function (prev) {
|
|
157
|
+
var next = _objectSpread2({}, prev);
|
|
158
|
+
keys.forEach(function (key) {
|
|
159
|
+
delete next[key];
|
|
160
|
+
});
|
|
161
|
+
return next;
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
return [val, {
|
|
165
|
+
handleUpdate: handleUpdate,
|
|
166
|
+
handleForce: handleForce,
|
|
167
|
+
handleDel: handleDel
|
|
168
|
+
}];
|
|
143
169
|
};
|
|
144
170
|
|
|
145
171
|
/**
|
|
146
|
-
*
|
|
172
|
+
* 获取指定模型的状态和操作
|
|
173
|
+
* @param modelName
|
|
147
174
|
* @param model
|
|
148
175
|
* @returns
|
|
149
176
|
*/
|
|
150
|
-
var
|
|
151
|
-
|
|
177
|
+
var useStore = function useStore(modelName, model) {
|
|
178
|
+
var _useState = useState({}),
|
|
179
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
180
|
+
setState = _useState2[1];
|
|
181
|
+
useEffect(function () {
|
|
182
|
+
return model.subscribe(modelName, function () {
|
|
183
|
+
setState({});
|
|
184
|
+
});
|
|
185
|
+
}, []);
|
|
186
|
+
return [model.getState(modelName), model.getActions(modelName)];
|
|
152
187
|
};
|
|
153
188
|
|
|
154
189
|
var ReactModel = function ReactModel(models) {
|
|
@@ -160,4 +195,4 @@ var ReactModel = function ReactModel(models) {
|
|
|
160
195
|
}, model);
|
|
161
196
|
};
|
|
162
197
|
|
|
163
|
-
export { ReactModel, useSimpleSet, useSimpleStore, useSimpleValue };
|
|
198
|
+
export { ReactModel, useObjStore, useSimpleSet, useSimpleStore, useSimpleValue };
|
package/lib/type/index.d.ts
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import { ModelsSingleApi, ModelType, TGetStateType, TGetActionsType, ModelsType, TActionMapApi, TSubscribesFun } from '@cclr/model';
|
|
2
|
+
import { TPlainObject } from '@cclr/lang';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 对于对象类型的模型,获取对象的状态和操作
|
|
6
|
+
* 依赖 ModelSimple
|
|
7
|
+
* @param model
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
declare const useObjStore: <T extends ModelsSingleApi<ModelType>>(model: T) => readonly [ReturnType<T["getState"]>["value"], {
|
|
11
|
+
readonly handleUpdate: (map: TPlainObject) => Promise<any>;
|
|
12
|
+
readonly handleForce: (map: TPlainObject) => Promise<any>;
|
|
13
|
+
readonly handleDel: (keys: string[]) => Promise<any>;
|
|
14
|
+
}];
|
|
2
15
|
|
|
3
16
|
/**
|
|
4
17
|
* 获取精简的模型状态和操作
|
|
@@ -37,4 +50,4 @@ type TReactModelsApi<MS extends ModelsType> = {
|
|
|
37
50
|
|
|
38
51
|
declare const ReactModel: <MT extends ModelsType>(models: MT) => TReactModelsApi<MT>;
|
|
39
52
|
|
|
40
|
-
export { ReactModel, useSimpleSet, useSimpleStore, useSimpleValue };
|
|
53
|
+
export { ReactModel, useObjStore, useSimpleSet, useSimpleStore, useSimpleValue };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cclr/react-model",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"description": "前端开发状态管理",
|
|
5
5
|
"author": "cclr <18843152354@163.com>",
|
|
6
6
|
"homepage": "",
|
|
@@ -27,14 +27,16 @@
|
|
|
27
27
|
"g:test": "vitest run",
|
|
28
28
|
"g:build": "ccm lib"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "8960f7c796054f1f0bbf0e7d0064af5f6abc4e05",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@cclr/lang": "0.1.
|
|
33
|
-
"@cclr/model": "0.1.
|
|
34
|
-
"@cclr/utils": "0.1.
|
|
32
|
+
"@cclr/lang": "0.1.16",
|
|
33
|
+
"@cclr/model": "0.1.16",
|
|
34
|
+
"@cclr/utils": "0.1.16",
|
|
35
|
+
"immer": "^10.1.1"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
35
38
|
"@testing-library/react-hooks": "^8.0.1",
|
|
36
39
|
"@types/react": "^18.3.12",
|
|
37
|
-
"immer": "^10.1.1",
|
|
38
40
|
"react": "^18.3.1",
|
|
39
41
|
"react-dom": "^18.3.1"
|
|
40
42
|
}
|
package/lib/umd/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@cclr/model"),require("react")):"function"==typeof define&&define.amd?define(["exports","@cclr/model","react"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).MyBundle={},e.model,e.react)}(this,(function(e,t,r){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,u,c=[],f=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t);else for(;!(f=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);f=!0);}catch(e){l=!0,o=e}finally{try{if(!f&&null!=r.return&&(u=r.return(),Object(u)!==u))return}finally{if(l)throw o}}return c}}(e,t)||function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}e.ReactModel=function(e){var n=t.Model(e);return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){o(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({useStore:function(e){return function(e,t){var n=u(r.useState(),2)[1];return r.useEffect((function(){return t.subscribe(e,n),function(){t.unsubscribe(e,n)}}),[]),[t.getState(e),t.getActions(e)]}(e,n)}},n)}}));
|