reca 1.1.13 → 2.2.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/LICENSE CHANGED
File without changes
package/README.md CHANGED
File without changes
package/dist/config.js CHANGED
@@ -10,8 +10,7 @@ export class Config {
10
10
  constructor() {
11
11
  this.di = new DiConfig();
12
12
  // From https://gist.github.com/rhysburnie/498bfd98f24b7daf5fd5930c7f3c1b7b
13
- // eslint-disable-next-line max-len
14
- // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions, @typescript-eslint/no-unnecessary-condition, @typescript-eslint/prefer-optional-chain
13
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain, @typescript-eslint/no-unnecessary-condition
15
14
  this.isBrowser = !(typeof process !== "undefined" && process.versions && process.versions.node);
16
15
  }
17
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAGjC,MAAM,OAAO,QAAQ;IAArB;QAEI,8DAA8D;QACvD,aAAQ,GAA6E,OAAO,CAAC;IAExG,CAAC;CAAA;AAED,MAAM,OAAO,MAAM;IAAnB;QAEW,OAAE,GAAa,IAAI,QAAQ,EAAE,CAAC;QAErC,2EAA2E;QAC3E,mCAAmC;QACnC,gKAAgK;QAChJ,cAAS,GAAG,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/G,CAAC;CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAEzC,OAAO,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AAGjC,MAAM,OAAO,QAAQ;IAArB;QAEI,8DAA8D;QACvD,aAAQ,GAA6E,OAAO,CAAC;IAExG,CAAC;CAAA;AAED,MAAM,OAAO,MAAM;IAAnB;QAEW,OAAE,GAAa,IAAI,QAAQ,EAAE,CAAC;QAErC,2EAA2E;QAE3E,iHAAiH;QACjG,cAAS,GAAG,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/G,CAAC;CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Store } from "../stores/Store.js";
2
+ /**
3
+ * Todo: add DI here
4
+ *
5
+ * @param store
6
+ * @param props
7
+ * @returns
8
+ */
9
+ export declare const useClientStore: <P extends object, T extends Store<P>>(store: new (...params: any[]) => T, props?: P) => T;
@@ -0,0 +1,68 @@
1
+ /* eslint-disable react-hooks/exhaustive-deps */
2
+ /* eslint-disable max-lines-per-function */
3
+ import * as React from "react";
4
+ import { config } from "../config.js";
5
+ /**
6
+ * Todo: add DI here
7
+ *
8
+ * @param store
9
+ * @param props
10
+ * @returns
11
+ */
12
+ export const useClientStore = (
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ store, props) => {
15
+ // Render function
16
+ const [, setSeed] = React.useState(0);
17
+ // Constructor
18
+ let isInit = false;
19
+ const [stateStore] = React.useState(() => {
20
+ isInit = true;
21
+ // Resolve dependencies
22
+ const constructorParams = Reflect
23
+ .getMetadata("design:paramtypes", store) ?? [];
24
+ const resolvedParams = constructorParams.map((param) => {
25
+ if (typeof param === "function" && "prototype" in param) { // Check is class
26
+ if (param.prototype === Object.prototype) { // Typescript interface in props (props: P)
27
+ return props;
28
+ }
29
+ // True class
30
+ return config.di.resolver(param);
31
+ }
32
+ // Else props object
33
+ return props;
34
+ });
35
+ // eslint-disable-next-line new-cap
36
+ const resolvedStore = new store(...resolvedParams);
37
+ resolvedStore.setRedrawFunction(() => {
38
+ setSeed(Math.random());
39
+ });
40
+ return resolvedStore;
41
+ });
42
+ stateStore.isDrawTime = true;
43
+ // Activate and Dispose(Destructor) methods
44
+ React.useEffect(() => {
45
+ stateStore.activate(props ?? {});
46
+ return () => stateStore.dispose(props ?? {});
47
+ }, []);
48
+ // Update method
49
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
50
+ if (!isInit) {
51
+ stateStore.update(props ?? {});
52
+ }
53
+ // PropsUpdate method
54
+ React.useMemo(() => {
55
+ if (!isInit) {
56
+ stateStore.propsUpdate(props ?? {});
57
+ }
58
+ }, [props ?? {}]);
59
+ // AfterUpdate method
60
+ React.useEffect(() => {
61
+ if (!isInit) {
62
+ stateStore.afterUpdate(props ?? {});
63
+ }
64
+ stateStore.isDrawTime = false;
65
+ });
66
+ return stateStore;
67
+ };
68
+ //# sourceMappingURL=UseClientStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UseClientStore.js","sourceRoot":"","sources":["../../src/hooks/UseClientStore.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,2CAA2C;AAG3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAGpC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;AAC1B,8DAA8D;AAC9D,KAAkC,EAClC,KAAS,EACR,EAAE;IACH,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEtC,cAAc;IACd,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACrC,MAAM,GAAG,IAAI,CAAC;QAEd,uBAAuB;QACvB,MAAM,iBAAiB,GAAc,OAAO;aACvC,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAgB,IAAI,EAAE,CAAC;QAElE,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,EAAE;YAC5D,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC,iBAAiB;gBACxE,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,2CAA2C;oBACnF,OAAO,KAAK,CAAC;gBACjB,CAAC;gBAED,aAAa;gBACb,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAiC,CAAC,CAAC;YACjE,CAAC;YAED,oBAAoB;YACpB,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,mCAAmC;QACnC,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC,CAAC;QAEnD,aAAa,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;IAE7B,2CAA2C;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAO,CAAC,CAAC;QAEtC,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,EAAO,CAAC,CAAC;IACtD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,gBAAgB;IAChB,uEAAuE;IACvE,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAO,CAAC,CAAC;IACxC,CAAC;IAED,qBAAqB;IACrB,KAAK,CAAC,OAAO,CACT,GAAG,EAAE;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAO,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC,EACD,CAAC,KAAK,IAAI,EAAE,CAAC,CAChB,CAAC;IAEF,qBAAqB;IACrB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAO,CAAC,CAAC;QAC7C,CAAC;QACD,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Store } from "../stores/Store.js";
2
+ /**
3
+ * Todo: add DI here
4
+ *
5
+ * @param store
6
+ * @param props
7
+ * @returns
8
+ */
9
+ export declare const useServerStore: <P extends object, T extends Store<P>>(store: new (...params: any[]) => T, props?: P) => T;
@@ -0,0 +1,30 @@
1
+ import { config } from "../config.js";
2
+ /**
3
+ * Todo: add DI here
4
+ *
5
+ * @param store
6
+ * @param props
7
+ * @returns
8
+ */
9
+ export const useServerStore = (
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ store, props) => {
12
+ // Resolve dependencies
13
+ const constructorParams = Reflect
14
+ .getMetadata("design:paramtypes", store) ?? [];
15
+ const resolvedParams = constructorParams.map((param) => {
16
+ if (typeof param === "function" && "prototype" in param) { // Check is class
17
+ if (param.prototype === Object.prototype) { // Typescript interface in props (props: P)
18
+ return props;
19
+ }
20
+ // True class
21
+ return config.di.resolver(param);
22
+ }
23
+ // Else props object
24
+ return props;
25
+ });
26
+ // eslint-disable-next-line new-cap
27
+ const resolvedStore = new store(...resolvedParams);
28
+ return resolvedStore;
29
+ };
30
+ //# sourceMappingURL=UseServerStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UseServerStore.js","sourceRoot":"","sources":["../../src/hooks/UseServerStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAGpC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;AAC1B,8DAA8D;AAC9D,KAAkC,EAClC,KAAS,EACR,EAAE;IACH,uBAAuB;IACvB,MAAM,iBAAiB,GAAc,OAAO;SACvC,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAgB,IAAI,EAAE,CAAC;IAElE,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,EAAE;QAC5D,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC,iBAAiB;YACxE,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,2CAA2C;gBACnF,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,aAAa;YACb,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAiC,CAAC,CAAC;QACjE,CAAC;QAED,oBAAoB;QACpB,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC,CAAC;IAEnD,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC"}
@@ -6,4 +6,12 @@ import type { Store } from "../stores/Store.js";
6
6
  * @param props
7
7
  * @returns
8
8
  */
9
- export declare const useStore: <P extends object, T extends Store<P>>(store: new (...params: any[]) => T, props?: P | undefined) => T;
9
+ export declare const useStore: <P extends object, T extends Store<P>>(store: new (...params: any[]) => T, props?: P) => T;
10
+ /**
11
+ * Todo: add DI here
12
+ *
13
+ * @param store
14
+ * @param props
15
+ * @returns
16
+ */
17
+ export declare const useStoreAsync: <P extends object, T extends Store<P>>(store: new (...params: any[]) => T, props?: P) => Promise<T>;
@@ -1,5 +1,5 @@
1
- import { useEffect, useMemo, useState } from "react";
2
- import { config } from "../config.js";
1
+ import { useClientStore } from "./UseClientStore.js";
2
+ import { useServerStore } from "./UseServerStore.js";
3
3
  /**
4
4
  * Todo: add DI here
5
5
  *
@@ -10,57 +10,25 @@ import { config } from "../config.js";
10
10
  export const useStore = (
11
11
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
12
  store, props) => {
13
- // Render function
14
- const [, setSeed] = useState(0);
15
- // Constructor
16
- let isInit = false;
17
- const [stateStore] = useState(() => {
18
- isInit = true;
19
- // Resolve dependencies
20
- const constructorParams = Reflect
21
- .getMetadata("design:paramtypes", store) ?? [];
22
- const resolvedParams = constructorParams.map((param) => {
23
- if (typeof param === "function" && "prototype" in param) { // Check is class
24
- if (param.prototype === Object.prototype) { // Typescript interface in props (props: P)
25
- return props;
26
- }
27
- // True class
28
- return config.di.resolver(param);
29
- }
30
- // Else props object
31
- return props;
32
- });
33
- // eslint-disable-next-line new-cap
34
- const resolvedStore = new store(...resolvedParams);
35
- resolvedStore.setRedrawFunction(() => {
36
- setSeed(Math.random());
37
- });
38
- return resolvedStore;
39
- });
40
- stateStore.isDrawTime = true;
41
- // Activate and Dispose(Destructor) methods
42
- useEffect(() => {
43
- stateStore.activate(props ?? {});
44
- return () => stateStore.dispose(props ?? {});
45
- }, []);
46
- // Update method
47
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
48
- if (!isInit) {
49
- stateStore.update(props ?? {});
13
+ if (typeof window !== "undefined") {
14
+ return useClientStore(store, props);
50
15
  }
51
- // PropsUpdate method
52
- useMemo(() => {
53
- if (!isInit) {
54
- stateStore.propsUpdate(props ?? {});
55
- }
56
- }, [props ?? {}]);
57
- // AfterUpdate method
58
- useEffect(() => {
59
- if (!isInit) {
60
- stateStore.afterUpdate(props ?? {});
61
- }
62
- stateStore.isDrawTime = false;
63
- });
64
- return stateStore;
16
+ return useServerStore(store, props);
17
+ };
18
+ /**
19
+ * Todo: add DI here
20
+ *
21
+ * @param store
22
+ * @param props
23
+ * @returns
24
+ */
25
+ export const useStoreAsync = async (
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ store, props) => {
28
+ await Promise.resolve();
29
+ if (typeof window !== "undefined") {
30
+ return useClientStore(store, props);
31
+ }
32
+ return useServerStore(store, props);
65
33
  };
66
34
  //# sourceMappingURL=UseStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UseStore.js","sourceRoot":"","sources":["../../src/hooks/UseStore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACnD,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAGpC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;AACpB,8DAA8D;AAC9D,KAAkC,EAClC,KAAS,EACR,EAAE;IACH,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhC,cAAc;IACd,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QAC/B,MAAM,GAAG,IAAI,CAAC;QAEd,uBAAuB;QACvB,MAAM,iBAAiB,GAAc,OAAO;aACvC,WAAW,CAAC,mBAAmB,EAAE,KAAK,CAAgB,IAAI,EAAE,CAAC;QAElE,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAc,EAAE,EAAE;YAC5D,IAAI,OAAO,KAAK,KAAK,UAAU,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC,iBAAiB;gBACxE,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,2CAA2C;oBACnF,OAAO,KAAK,CAAC;gBACjB,CAAC;gBAED,aAAa;gBACb,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAiC,CAAC,CAAC;YACjE,CAAC;YAED,oBAAoB;YACpB,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,mCAAmC;QACnC,MAAM,aAAa,GAAG,IAAI,KAAK,CAAC,GAAG,cAAc,CAAC,CAAC;QAEnD,aAAa,CAAC,iBAAiB,CAAC,GAAG,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;IAE7B,2CAA2C;IAC3C,SAAS,CAAC,GAAG,EAAE;QACX,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAO,CAAC,CAAC;QAEtC,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,EAAO,CAAC,CAAC;IACtD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,gBAAgB;IAChB,uEAAuE;IACvE,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,EAAO,CAAC,CAAC;IACxC,CAAC;IAED,qBAAqB;IACrB,OAAO,CACH,GAAG,EAAE;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAO,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC,EACD,CAAC,KAAK,IAAI,EAAE,CAAC,CAChB,CAAC;IAEF,qBAAqB;IACrB,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,EAAO,CAAC,CAAC;QAC7C,CAAC;QACD,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"UseStore.js","sourceRoot":"","sources":["../../src/hooks/UseStore.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;AACpB,8DAA8D;AAC9D,KAAkC,EAClC,KAAS,EACR,EAAE;IACH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,cAAc,CAAO,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,cAAc,CAAO,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK;AAC9B,8DAA8D;AAC9D,KAAkC,EAClC,KAAS,EACC,EAAE;IACZ,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IAExB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO,cAAc,CAAO,KAAK,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,cAAc,CAAO,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AutoStore.js","sourceRoot":"","sources":["../../src/stores/AutoStore.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC,MAAM,OAAO,SAAqC,SAAQ,KAAQ;IAqB9D;QACI,KAAK,EAAE,CAAC;QApBF,0BAAqB,GAAyB;YACpD,UAAU;YACV,aAAa;YACb,UAAU;YACV,QAAQ;YACR,aAAa;YACb,aAAa;YACb,SAAS;YACT,mBAAmB;YACnB,QAAQ;YACR,aAAa;YAEb,aAAa;YACb,YAAY;YACZ,qBAAqB;YACrB,gBAAgB;SAEnB,CAAC;QAIE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACO,gBAAgB;QACtB,MAAM,UAAU,GAAwB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE9D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAY,CAAC;YACjF,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvE,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAY,CAAC;gBAEvD,MAAM,CAAC,cAAc,CACjB,IAAI,EACJ,QAAQ,EACR;oBACI,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS;oBACpB,GAAG,EAAE,CAAC,KAAc,EAAE,EAAE;wBACpB,SAAS,GAAG,KAAK,CAAC;wBAClB,IAAI,CAAC,MAAM,EAAE,CAAC;oBAClB,CAAC;iBACJ,CACJ,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACO,aAAa;QACnB,MAAM,OAAO,GAAwB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAW,CAAC,CAAC;QAE5F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAY,CAAC;YAE/E,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACrE,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAsC,CAAC;gBACtF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAY,CAAC;gBAEnF,OAAO,CAAC,GAAG,CACP,IAAI,EACJ,MAAM,EACN,CAAC,GAAG,MAAiB,EAAE,EAAE;oBACrB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;wBACvB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,8DAA8D;oBACjF,CAAC;oBAED,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;oBAE7D,IAAI,YAAY,YAAY,OAAO,EAAE,CAAC;wBAClC,OAAO,YAAY;6BACd,IAAI,CAAC,CAAC,IAAa,EAAE,EAAE;4BACpB,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gCACvB,IAAI,CAAC,MAAM,EAAE,CAAC;4BAClB,CAAC;4BACD,OAAO,IAAI,CAAC;wBAChB,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;4BACb,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gCACvB,IAAI,CAAC,MAAM,EAAE,CAAC;4BAClB,CAAC;4BACD,MAAM,KAAK,CAAC;wBAChB,CAAC,CAAC,CAAC;oBACX,CAAC;oBAED,OAAO,YAAY,CAAC;gBACxB,CAAC,CACJ,CAAC;YACN,CAAC;QACL,CAAC;IACL,CAAC;CAEJ"}
1
+ {"version":3,"file":"AutoStore.js","sourceRoot":"","sources":["../../src/stores/AutoStore.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /* eslint-disable @typescript-eslint/class-methods-use-this */
1
+ /* eslint-disable class-methods-use-this */
2
2
  /* eslint-disable @typescript-eslint/no-unused-vars */
3
3
  import { config } from "../config.js";
4
4
  export class Store {
@@ -1 +1 @@
1
- {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/stores/Store.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,sDAAsD;AAEtD,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEpC,MAAM,OAAO,KAAK;IAAlB;QAEI;;;WAGG;QACI,eAAU,GAAY,IAAI,CAAC;QAExB,mBAAc,GAAe,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IA6GxD,CAAC;IA3GG;;;;;;;;;;;OAWG;IACI,QAAQ,CAAE,KAAQ;QACrB,WAAW;IACf,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAE,KAAQ;QACnB,WAAW;IACf,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,WAAW,CAAE,KAAQ;QACxB,WAAW;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACI,WAAW,CAAE,KAAQ;QACxB,WAAW;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACI,OAAO,CAAE,KAAQ;QACpB,WAAW;IACf,CAAC;IAEM,iBAAiB,CAAE,cAA0B;QAChD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,MAAM;QACT,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO;QACX,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,2CAA2C;YAC3C,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IAED;;OAEG;IACI,WAAW;QACd,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;CAEJ"}
1
+ {"version":3,"file":"Store.js","sourceRoot":"","sources":["../../src/stores/Store.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,sDAAsD;AAEtD,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEpC,MAAM,OAAO,KAAK;IAAlB;QAEI;;;WAGG;QACI,eAAU,GAAY,IAAI,CAAC;QAExB,mBAAc,GAAe,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IA6GxD,CAAC;IA3GG;;;;;;;;;;;OAWG;IACI,QAAQ,CAAE,KAAQ;QACrB,WAAW;IACf,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAE,KAAQ;QACnB,WAAW;IACf,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,WAAW,CAAE,KAAQ;QACxB,WAAW;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACI,WAAW,CAAE,KAAQ;QACxB,WAAW;IACf,CAAC;IAED;;;;;;;;;;;OAWG;IACI,OAAO,CAAE,KAAQ;QACpB,WAAW;IACf,CAAC;IAEM,iBAAiB,CAAE,cAA0B;QAChD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,MAAM;QACT,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO;QACX,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,2CAA2C;YAC3C,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;IACL,CAAC;IAED;;OAEG;IACI,WAAW;QACd,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;CAEJ"}
package/package.json CHANGED
@@ -1,59 +1,46 @@
1
1
  {
2
2
  "name": "reca",
3
- "version": "1.1.13",
3
+ "version": "2.2.0",
4
4
  "description": "ReCA - React Clean Architecture state manager",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
7
7
  "scripts": {
8
- "build": "npm run clean && tsc && npm run clean:dist-tests && npm run test:module",
8
+ "build": "npm run clean && tsc --project tsconfig.build.json && node ./dist/index.js",
9
9
  "clean": "rimraf ./dist",
10
- "lint": "eslint --fix -c .eslintrc.cjs --ext .tsx,.ts,.jsx,.js ./src/",
11
- "clean:dist-tests": "rimraf ./dist/__fixtures__ && rimraf ./dist/__tests__",
12
- "test": "mocha --parallel src/__tests__/*.spec.tsx",
13
- "test:watch": "mocha --parallel --watch --watch-files src/**/*.ts,src/**/*.tsx src/__tests__/*.spec.tsx",
14
- "test:module": "node ./dist/index.js",
15
- "prepublishOnly": "npm run test && npm run build && npm run release",
10
+ "lint": "eslint --fix ./src/",
11
+ "test": "node --import ./ts-loader.js --test --test-reporter=spec --test-reporter-destination=stdout \"tests/**/*.spec.tsx\"",
12
+ "test-watch": "node --watch --import ./ts-loader.js --test --test-reporter=spec --test-reporter-destination=stdout \"tests/**/*.spec.tsx\"",
13
+ "coverage": "node --import ./ts-loader.js --test --experimental-test-coverage --test-reporter=lcov --test-reporter-destination=coverage/lcov.info \"tests/**/*.spec.tsx\"",
16
14
  "release": "standard-version",
17
- "prepare": "husky install"
15
+ "prepublishOnly": "npm run test && npm run build"
18
16
  },
19
17
  "keywords": [
20
18
  "react",
21
19
  "state manager"
22
20
  ],
23
- "lint-staged": {
24
- "./src/**/*.(ts|tsx|js|jsx)": [
25
- "eslint --fix -c .eslintrc.cjs --ext .tsx,.ts,.jsx,.js"
26
- ]
27
- },
28
21
  "author": "LabEG",
29
22
  "license": "MIT",
30
23
  "dependencies": {
31
- "first-di": "^1.0.20"
24
+ "first-di": "^3.3.0"
32
25
  },
33
26
  "peerDependencies": {
34
27
  "react": ">=16.0.0",
35
28
  "reflect-metadata": ">=0.1.0"
36
29
  },
37
30
  "devDependencies": {
38
- "@commitlint/cli": "^18.4.3",
39
- "@commitlint/config-conventional": "^18.4.3",
40
- "@labeg/code-style": "^4.0.5",
41
- "@testing-library/react": "^14.1.2",
42
- "@types/chai": "^4.3.11",
43
- "@types/mocha": "^10.0.6",
44
- "@types/react": "^18.2.45",
45
- "chai": "^4.3.10",
46
- "global-jsdom": "^9.2.0",
47
- "husky": "^8.0.3",
48
- "jsdom": "^23.0.1",
49
- "lint-staged": "^15.2.0",
50
- "mocha": "^10.2.0",
51
- "react": "^18.2.0",
52
- "react-dom": "^18.2.0",
53
- "reflect-metadata": "^0.2.1",
54
- "rimraf": "^5.0.5",
31
+ "@testing-library/react": "^16.3.0",
32
+ "@swc-node/register": "^1.10.10",
33
+ "@types/chai": "^5.2.1",
34
+ "@types/react": "^19.1.0",
35
+ "chai": "^5.2.0",
36
+ "global-jsdom": "^26.0.0",
37
+ "jsdom": "^26.0.0",
38
+ "react": "^19.1.0",
39
+ "react-dom": "^19.1.0",
40
+ "reflect-metadata": "^0.2.2",
41
+ "rimraf": "^6.0.1",
55
42
  "standard-version": "^9.5.0",
56
43
  "ts-node": "^10.9.2",
57
- "typescript": "^5.3.3"
44
+ "typescript": "^5.8.3"
58
45
  }
59
46
  }