@cclr/model 0.1.10 → 0.1.12

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 CHANGED
@@ -449,7 +449,32 @@ var ModelSingle = function ModelSingle(model) {
449
449
  };
450
450
  };
451
451
 
452
+ /**
453
+ * 简化的 Model
454
+ * @param value
455
+ * @returns
456
+ */
457
+ var ModelSimple = function ModelSimple(value) {
458
+ return ModelSingle({
459
+ state: {
460
+ value: value
461
+ },
462
+ actions: {
463
+ setValue: function setValue(value) {
464
+ return function (state) {
465
+ var newValue = value;
466
+ if (lang.isFunction(newValue)) {
467
+ newValue = newValue(state.value);
468
+ }
469
+ state.value = newValue;
470
+ };
471
+ }
472
+ }
473
+ });
474
+ };
475
+
452
476
  exports.Model = Model;
477
+ exports.ModelSimple = ModelSimple;
453
478
  exports.ModelSingle = ModelSingle;
454
479
  exports.gatter = gatter;
455
480
  exports.gatterSync = gatterSync;
package/lib/esm/index.js CHANGED
@@ -447,4 +447,28 @@ var ModelSingle = function ModelSingle(model) {
447
447
  };
448
448
  };
449
449
 
450
- export { Model, ModelSingle, gatter, gatterSync, handleModelMiddlewareConfig, logger, loggerSync, presetMiddleware, presetMiddlewareSync, publish, returnState, setter, tryCatch, tryCatchSync };
450
+ /**
451
+ * 简化的 Model
452
+ * @param value
453
+ * @returns
454
+ */
455
+ var ModelSimple = function ModelSimple(value) {
456
+ return ModelSingle({
457
+ state: {
458
+ value: value
459
+ },
460
+ actions: {
461
+ setValue: function setValue(value) {
462
+ return function (state) {
463
+ var newValue = value;
464
+ if (isFunction(newValue)) {
465
+ newValue = newValue(state.value);
466
+ }
467
+ state.value = newValue;
468
+ };
469
+ }
470
+ }
471
+ });
472
+ };
473
+
474
+ export { Model, ModelSimple, ModelSingle, gatter, gatterSync, handleModelMiddlewareConfig, logger, loggerSync, presetMiddleware, presetMiddlewareSync, publish, returnState, setter, tryCatch, tryCatchSync };
@@ -103,6 +103,9 @@ type ModelType<S extends TState = TState, PM extends TPlainObject = TPlainObject
103
103
  middleware?: TMiddleware[];
104
104
  };
105
105
 
106
+ type TGetStateType<T extends ModelsSingleApi<ModelType>> = ReturnType<T['getState']>;
107
+ type TGetActionsType<T extends ModelsSingleApi<ModelType>> = ReturnType<T['getActions']>;
108
+
106
109
  declare const middlewareConfig: {
107
110
  showLog: boolean;
108
111
  };
@@ -145,4 +148,19 @@ declare const Model: <MS extends ModelsType>(models: MS) => ModelsApi<MS>;
145
148
  */
146
149
  declare const ModelSingle: <MT extends ModelType>(model: MT) => ModelsSingleApi<MT>;
147
150
 
148
- export { Model, ModelSingle, type ModelType, type ModelsApi, type ModelsSingleApi, type ModelsType, type TAction, type TActionMapApi, type TMiddleware, type TSubscribesFun, gatter, gatterSync, handleModelMiddlewareConfig, logger, loggerSync, presetMiddleware, presetMiddlewareSync, publish, returnState, setter, tryCatch, tryCatchSync };
151
+ interface IState {
152
+ value: TAny;
153
+ }
154
+ type TModelSimple<T extends IState['value']> = ModelsSingleApi<ModelType<{
155
+ value: T;
156
+ }, {
157
+ setValue: T | ((store: T) => T);
158
+ }>>;
159
+ /**
160
+ * 简化的 Model
161
+ * @param value
162
+ * @returns
163
+ */
164
+ declare const ModelSimple: <T extends unknown>(value: T) => TModelSimple<T>;
165
+
166
+ export { Model, ModelSimple, ModelSingle, type ModelType, type ModelsApi, type ModelsSingleApi, type ModelsType, type TAction, type TActionMapApi, type TGetActionsType, type TGetStateType, type TMiddleware, type TSubscribesFun, gatter, gatterSync, handleModelMiddlewareConfig, logger, loggerSync, presetMiddleware, presetMiddlewareSync, publish, returnState, setter, tryCatch, tryCatchSync };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cclr/model",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "前端开发状态管理",
5
5
  "author": "cclr <18843152354@163.com>",
6
6
  "homepage": "",
@@ -27,10 +27,10 @@
27
27
  "g:test": "vitest run",
28
28
  "g:build": "ccf build"
29
29
  },
30
- "gitHead": "ca3a561247bd3c614321b089cfd1a91f9a375ea8",
30
+ "gitHead": "5d72cd2a2b31db1d09ffc5a19aba6c23ff81abd4",
31
31
  "dependencies": {
32
- "@cclr/lang": "0.1.10",
33
- "@cclr/utils": "0.1.10",
32
+ "@cclr/lang": "0.1.12",
33
+ "@cclr/utils": "0.1.12",
34
34
  "immer": "^10.1.1"
35
35
  }
36
36
  }