react-better-model 0.2.2 → 1.0.0-beta
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/AGENTS.md +43 -0
- package/LICENSE +21 -4
- package/lib/ModelBase.d.ts +15 -0
- package/lib/ModelBase.d.ts.map +1 -0
- package/lib/ModelBase.js +91 -0
- package/lib/ModelBase.js.map +1 -0
- package/lib/ModelWithHooks.d.ts +9 -0
- package/lib/ModelWithHooks.d.ts.map +1 -0
- package/lib/ModelWithHooks.js +108 -0
- package/lib/ModelWithHooks.js.map +1 -0
- package/lib/common-types.d.ts +9 -0
- package/lib/common-types.d.ts.map +1 -0
- package/lib/{types.js → common-types.js} +1 -1
- package/lib/common-types.js.map +1 -0
- package/lib/create-model.d.ts +18 -0
- package/lib/create-model.d.ts.map +1 -0
- package/lib/create-model.js +78 -0
- package/lib/create-model.js.map +1 -0
- package/lib/create-model.test.d.ts +2 -0
- package/lib/create-model.test.d.ts.map +1 -0
- package/lib/create-model.test.js +80 -0
- package/lib/create-model.test.js.map +1 -0
- package/lib/index.d.ts +4 -8
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +22 -9
- package/lib/index.js.map +1 -1
- package/lib/src/ModelBase.d.ts +16 -0
- package/lib/src/ModelBase.d.ts.map +1 -0
- package/lib/src/ModelBase.js +97 -0
- package/lib/src/ModelBase.js.map +1 -0
- package/lib/src/ModelWithHooks.d.ts +8 -0
- package/lib/src/ModelWithHooks.d.ts.map +1 -0
- package/lib/src/ModelWithHooks.js +57 -0
- package/lib/src/ModelWithHooks.js.map +1 -0
- package/lib/src/common-types.d.ts +9 -0
- package/lib/src/common-types.d.ts.map +1 -0
- package/lib/src/common-types.js +3 -0
- package/lib/src/common-types.js.map +1 -0
- package/lib/src/create-model.d.ts +18 -0
- package/lib/src/create-model.d.ts.map +1 -0
- package/lib/src/create-model.js +78 -0
- package/lib/src/create-model.js.map +1 -0
- package/lib/src/index.d.ts +5 -0
- package/lib/src/index.d.ts.map +1 -0
- package/lib/src/index.js +34 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/utils.d.ts +4 -0
- package/lib/src/utils.d.ts.map +1 -0
- package/lib/src/utils.js +36 -0
- package/lib/src/utils.js.map +1 -0
- package/lib/tests/ModelBase.test.d.ts +2 -0
- package/lib/tests/ModelBase.test.d.ts.map +1 -0
- package/lib/tests/ModelBase.test.js +73 -0
- package/lib/tests/ModelBase.test.js.map +1 -0
- package/lib/tests/ModelWithHooks.test.d.ts +2 -0
- package/lib/tests/ModelWithHooks.test.d.ts.map +1 -0
- package/lib/tests/ModelWithHooks.test.js +108 -0
- package/lib/tests/ModelWithHooks.test.js.map +1 -0
- package/lib/tests/create-model.test.d.ts +2 -0
- package/lib/tests/create-model.test.d.ts.map +1 -0
- package/lib/tests/create-model.test.js +104 -0
- package/lib/tests/create-model.test.js.map +1 -0
- package/lib/tests/utils.test.d.ts +2 -0
- package/lib/tests/utils.test.d.ts.map +1 -0
- package/lib/tests/utils.test.js +30 -0
- package/lib/tests/utils.test.js.map +1 -0
- package/package.json +13 -11
- package/readme.md +212 -105
- package/lib/Model.d.ts +0 -23
- package/lib/Model.d.ts.map +0 -1
- package/lib/Model.js +0 -108
- package/lib/Model.js.map +0 -1
- package/lib/hooks/event-hooks.d.ts +0 -6
- package/lib/hooks/event-hooks.d.ts.map +0 -1
- package/lib/hooks/event-hooks.js +0 -19
- package/lib/hooks/event-hooks.js.map +0 -1
- package/lib/hooks/model-hooks.d.ts +0 -4
- package/lib/hooks/model-hooks.d.ts.map +0 -1
- package/lib/hooks/model-hooks.js +0 -9
- package/lib/hooks/model-hooks.js.map +0 -1
- package/lib/hooks/state-hooks.d.ts +0 -5
- package/lib/hooks/state-hooks.d.ts.map +0 -1
- package/lib/hooks/state-hooks.js +0 -19
- package/lib/hooks/state-hooks.js.map +0 -1
- package/lib/types.d.ts +0 -13
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js.map +0 -1
- package/lib/utils/compose-providers.d.ts +0 -3
- package/lib/utils/compose-providers.d.ts.map +0 -1
- package/lib/utils/compose-providers.js +0 -19
- package/lib/utils/compose-providers.js.map +0 -1
- package/lib/utils/create-model.d.ts +0 -21
- package/lib/utils/create-model.d.ts.map +0 -1
- package/lib/utils/create-model.js +0 -84
- package/lib/utils/create-model.js.map +0 -1
- package/lib/utils/js-event-types.d.ts +0 -6
- package/lib/utils/js-event-types.d.ts.map +0 -1
- package/lib/utils/js-event-types.js +0 -9
- package/lib/utils/js-event-types.js.map +0 -1
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React, { FC } from 'react';
|
|
2
|
-
import { Model } from '../Model';
|
|
3
|
-
import { ModelProviderProps } from '../types';
|
|
4
|
-
declare type Ctor<M extends Model<M['state'], M['events']>> = new (initialState: M['state'], events?: M['events']) => M;
|
|
5
|
-
export declare function createModel<K extends keyof M['state'], E extends keyof M['events'], M extends Model<M['state'], M['events']>>(CName: Ctor<M>): {
|
|
6
|
-
Ctx: React.Context<M>;
|
|
7
|
-
Provider: ({ value, initialState, ...props }: ModelProviderProps<M>) => JSX.Element;
|
|
8
|
-
withProvider<T extends {}>(fc: React.FC<T & {
|
|
9
|
-
model: M;
|
|
10
|
-
}>): (props: T & {
|
|
11
|
-
initialState?: Partial<M["state"]> | undefined;
|
|
12
|
-
}) => JSX.Element;
|
|
13
|
-
withModel<T_1 extends {}>(fc: React.FC<T_1 & {
|
|
14
|
-
model: M;
|
|
15
|
-
}>): (props: T_1) => React.ReactElement<any, any> | null;
|
|
16
|
-
useModel(): M;
|
|
17
|
-
useState(key: K): [M["state"][K], (data: M["state"][K]) => void];
|
|
18
|
-
useEvent(key: E): (data?: (M["events"][E] extends undefined ? never : M["events"][E]) | undefined) => void;
|
|
19
|
-
};
|
|
20
|
-
export {};
|
|
21
|
-
//# sourceMappingURL=create-model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-model.d.ts","sourceRoot":"","sources":["../../src/utils/create-model.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAiB,EAAE,EAAW,MAAM,OAAO,CAAA;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAIhC,OAAO,EAAsB,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAIjE,aAAK,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAE/G,wBAAgB,WAAW,CAC1B,CAAC,SAAS,MAAM,CAAC,CAAC,OAAO,CAAC,EAC1B,CAAC,SAAS,MAAM,CAAC,CAAC,QAAQ,CAAC,EAC3B,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EACvC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;;kDAGsC,mBAAmB,CAAC,CAAC;;eAS1B,CAAC;;;;;eASJ,CAAC;;;kBAU/B,CAAC;kBAGD,CAAC;EAIhB"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
16
|
-
}) : (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
o[k2] = m[k];
|
|
19
|
-
}));
|
|
20
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
-
}) : function(o, v) {
|
|
23
|
-
o["default"] = v;
|
|
24
|
-
});
|
|
25
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
26
|
-
if (mod && mod.__esModule) return mod;
|
|
27
|
-
var result = {};
|
|
28
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
29
|
-
__setModuleDefault(result, mod);
|
|
30
|
-
return result;
|
|
31
|
-
};
|
|
32
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
33
|
-
var t = {};
|
|
34
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
35
|
-
t[p] = s[p];
|
|
36
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
37
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
38
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
39
|
-
t[p[i]] = s[p[i]];
|
|
40
|
-
}
|
|
41
|
-
return t;
|
|
42
|
-
};
|
|
43
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.createModel = void 0;
|
|
45
|
-
var react_1 = __importStar(require("react"));
|
|
46
|
-
var event_hooks_1 = require("../hooks/event-hooks");
|
|
47
|
-
var model_hooks_1 = require("../hooks/model-hooks");
|
|
48
|
-
var state_hooks_1 = require("../hooks/state-hooks");
|
|
49
|
-
var DEFAULT_OPTIONS = {};
|
|
50
|
-
function createModel(CName) {
|
|
51
|
-
var Ctx = (0, react_1.createContext)({});
|
|
52
|
-
function Provider(_a) {
|
|
53
|
-
var value = _a.value, initialState = _a.initialState, props = __rest(_a, ["value", "initialState"]);
|
|
54
|
-
var viewModel = (0, react_1.useMemo)(function () { return value || new CName(initialState); }, []);
|
|
55
|
-
return react_1.default.createElement(Ctx.Provider, __assign({}, props, { value: viewModel }));
|
|
56
|
-
}
|
|
57
|
-
return {
|
|
58
|
-
Ctx: Ctx,
|
|
59
|
-
Provider: Provider,
|
|
60
|
-
withProvider: function (fc) {
|
|
61
|
-
return function (props) {
|
|
62
|
-
var model = (0, react_1.useMemo)(function () { return new CName(props.initialState); }, []);
|
|
63
|
-
return react_1.default.createElement(Provider, { value: model }, fc(__assign(__assign({}, props), { model: model })));
|
|
64
|
-
};
|
|
65
|
-
},
|
|
66
|
-
withModel: function (fc) {
|
|
67
|
-
return function (props) {
|
|
68
|
-
var model = (0, model_hooks_1.useModelCtx)(Ctx);
|
|
69
|
-
return fc(__assign(__assign({}, props), { model: model }));
|
|
70
|
-
};
|
|
71
|
-
},
|
|
72
|
-
useModel: function () {
|
|
73
|
-
return (0, model_hooks_1.useModelCtx)(Ctx);
|
|
74
|
-
},
|
|
75
|
-
useState: function (key) {
|
|
76
|
-
return (0, state_hooks_1.useModelCtxState)(Ctx, key);
|
|
77
|
-
},
|
|
78
|
-
useEvent: function (key) {
|
|
79
|
-
return (0, event_hooks_1.useModelCtxEvent)(Ctx, key);
|
|
80
|
-
},
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
exports.createModel = createModel;
|
|
84
|
-
//# sourceMappingURL=create-model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-model.js","sourceRoot":"","sources":["../../src/utils/create-model.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAyD;AAGzD,oDAA8E;AAC9E,oDAAkD;AAClD,oDAA8E;AAG9E,IAAM,eAAe,GAAuB,EAAE,CAAA;AAI9C,SAAgB,WAAW,CAIzB,KAAc;IACf,IAAM,GAAG,GAAG,IAAA,qBAAa,EAAI,EAAO,CAAC,CAAA;IAErC,SAAS,QAAQ,CAAC,EAAwD;QAAtD,IAAA,KAAK,WAAA,EAAE,YAAY,kBAAA,EAAK,KAAK,cAA/B,yBAAiC,CAAF;QAChD,IAAM,SAAS,GAAG,IAAA,eAAO,EAAC,cAAM,OAAA,KAAK,IAAI,IAAI,KAAK,CAAC,YAAY,CAAC,EAAhC,CAAgC,EAAE,EAAE,CAAC,CAAA;QAErE,OAAO,8BAAC,GAAG,CAAC,QAAQ,eAAK,KAAK,IAAE,KAAK,EAAE,SAAS,IAAI,CAAA;IACrD,CAAC;IAED,OAAO;QACN,GAAG,KAAA;QACH,QAAQ,UAAA;QACR,YAAY,EAAZ,UAA2B,EAAwB;YAClD,OAAO,UAAC,KAAiD;gBACxD,IAAM,KAAK,GAAG,IAAA,eAAO,EAAC,cAAM,OAAA,IAAI,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAA7B,CAA6B,EAAE,EAAE,CAAC,CAAA;gBAE9D,OAAO,8BAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAC3B,EAAE,uBAAK,KAAK,KAAE,KAAK,OAAA,IAAE,CACZ,CAAA;YACZ,CAAC,CAAA;QACF,CAAC;QACD,SAAS,EAAT,UAAwB,EAAwB;YAC/C,OAAO,UAAC,KAAQ;gBACf,IAAM,KAAK,GAAG,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAA;gBAE9B,OAAO,EAAE,uBAAK,KAAK,KAAE,KAAK,OAAA,IAAG,CAAA;YAC9B,CAAC,CAAA;QACF,CAAC;QACD,QAAQ;YACP,OAAO,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAA;QACxB,CAAC;QACD,QAAQ,EAAR,UAAS,GAAM;YACd,OAAO,IAAA,8BAAgB,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAClC,CAAC;QACD,QAAQ,EAAR,UAAS,GAAM;YACd,OAAO,IAAA,8BAAgB,EAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAClC,CAAC;KACD,CAAA;AACF,CAAC;AA1CD,kCA0CC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js-event-types.d.ts","sourceRoot":"","sources":["../../src/utils/js-event-types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;CAItB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js-event-types.js","sourceRoot":"","sources":["../../src/utils/js-event-types.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG;IACzB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,KAAK;CACd,CAAA"}
|