prostgles-client 4.0.225 → 4.0.227

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.
@@ -1 +1 @@
1
- {"version":3,"file":"react-hooks.d.ts","sourceRoot":"","sources":["../lib/react-hooks.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,mBAAmB,EAA8B,MAAM,iBAAiB,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,KAAK,MAAM,GAAG,cAAc,OAAO,CAAC,CAAC;AASrC,eAAO,MAAM,QAAQ,gBAAiB,OAAO,KAAG,MAQ/C,CAAC;AAWF,eAAO,MAAM,KAAK,gEAOjB,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAW,GAAG,cAQ/C,CAAC;AAEF,eAAO,MAAM,WAAW,gCAGD,CAAC;AAExB,eAAO,MAAM,aAAa,kCAGD,CAAC;AAe1B,KAAK,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AAErD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,WAAY,UAAU,QAAQ,GAAG,EAAE,SAkDlE,CAAC;AACF,eAAO,MAAM,cAAc,WAAY,MAAM,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,GAAG,EAAE,SAsBvF,CAAC;AAEF,eAAO,MAAM,YAAY,qBAaxB,CAAC;AAEF,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACtC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE/C,eAAO,MAAM,UAAU,qDAEf,GAAG,EAAE,wJA2DZ,CAAC;AAOF,eAAO,MAAM,YAAY,qBACL,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,QAAQ,mBAAmB,CAAC,cACnF,OAAO,UACX,GAAG,WACF,GAAG,gBACE,WAAW;;;;CA0C1B,CAAC;AAEF,eAAO,MAAM,OAAO,aACR,SAAS,kBAAkB,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC,SAAS,CAAC,eAC3E,WAAW,SAAS,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,eACnD,WAAW,SAAS,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,gBAClD,WAAW;;;;CA4B1B,CAAC;AAEF,eAAO,MAAM,QAAQ,wBACE,GAAG,KAAK,QAAQ,GAAG,CAAC,SACnC,GAAG,EAAE,gBACG,WAAW;;;;CAmB1B,CAAC;AAEF,eAAO,MAAM,oBAAoB,eAA0C,CAAC"}
1
+ {"version":3,"file":"react-hooks.d.ts","sourceRoot":"","sources":["../lib/react-hooks.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,mBAAmB,EAA8B,MAAM,iBAAiB,CAAC;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACnE,KAAK,MAAM,GAAG,cAAc,OAAO,CAAC,CAAC;AASrC,eAAO,MAAM,QAAQ,gBAAiB,OAAO,KAAG,MAQ/C,CAAC;AAWF,eAAO,MAAM,KAAK,gEAOjB,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAW,GAAG,cAQ/C,CAAC;AAEF,eAAO,MAAM,WAAW,gCAGD,CAAC;AAExB,eAAO,MAAM,aAAa,kCAGD,CAAC;AAa1B,KAAK,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AAOrD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,WAAY,UAAU,QAAQ,GAAG,EAAE,SAkDlE,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,MAAM,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,GAAG,EAAE,SAsBvF,CAAC;AAEF,eAAO,MAAM,YAAY,qBAaxB,CAAC;AAEF,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AACtC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE/C,eAAO,MAAM,UAAU,qDAEf,GAAG,EAAE,wJA2DZ,CAAC;AAOF,eAAO,MAAM,YAAY,qBACL,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,QAAQ,mBAAmB,CAAC,cACnF,OAAO,UACX,GAAG,WACF,GAAG,gBACE,WAAW;;;;CA0C1B,CAAC;AAEF,eAAO,MAAM,OAAO,aACR,SAAS,kBAAkB,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC,SAAS,CAAC,eAC3E,WAAW,SAAS,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,eACnD,WAAW,SAAS,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,gBAClD,WAAW;;;;CA4B1B,CAAC;AAEF,eAAO,MAAM,QAAQ,wBACE,GAAG,KAAK,QAAQ,GAAG,CAAC,SACnC,GAAG,EAAE,gBACG,WAAW;;;;CAmB1B,CAAC;AAEF,eAAO,MAAM,oBAAoB,eAA0C,CAAC"}
@@ -58,49 +58,51 @@ exports.useEffectDeep = ((callback, deps) => {
58
58
  * Used to ensure subscriptions are always cleaned up
59
59
  */
60
60
  const useAsyncEffectQueue = (effect, deps) => {
61
- const queue = useRef({
62
- activeEffect: undefined,
63
- newEffect: undefined,
64
- });
65
- // const onCleanup = async (effectFunc: EffectFunc) => {
66
- // /** New effect did not start. Just remove */
67
- // if (queue.current.newEffect?.effect === effectFunc) {
68
- // queue.current.newEffect = undefined;
69
- // /** Very likely it's an unmount */
70
- // } else if (queue.current.activeEffect?.effect === effectFunc) {
71
- // await (await queue.current.activeEffect.resolvingCleanup)?.run?.()?.catch(console.error);
72
- // }
73
- // };
74
- const onRender = async (newEffect) => {
75
- var _a, _b, _c, _d;
76
- queue.current.newEffect = newEffect;
61
+ const newEffect = useRef();
62
+ const activeEffect = useRef();
63
+ const onRender = async () => {
64
+ var _a;
77
65
  /**
78
- * Await and cleanup existing effect
66
+ * Await and cleanup previous effect
79
67
  * */
80
- await ((_d = (_c = (_b = (await ((_a = queue.current.activeEffect) === null || _a === void 0 ? void 0 : _a.resolvingCleanup))) === null || _b === void 0 ? void 0 : _b.run) === null || _c === void 0 ? void 0 : _c.call(_b)) === null || _d === void 0 ? void 0 : _d.catch(console.error));
81
- if (!newEffect)
82
- return;
83
- queue.current.newEffect = undefined;
68
+ if (((_a = activeEffect.current) === null || _a === void 0 ? void 0 : _a.state) === "resolved") {
69
+ const { cleanup, effect } = activeEffect.current;
70
+ activeEffect.current = { state: "cleaning", effect };
71
+ await cleanup().catch(console.error);
72
+ activeEffect.current = undefined;
73
+ }
84
74
  /**
85
- * Execute the new effect
75
+ * Start new effect
86
76
  */
87
- queue.current.activeEffect = newEffect;
88
- queue.current.activeEffect.resolvingCleanup = newEffect.effect().then((run) => {
89
- return {
77
+ if (newEffect.current && !activeEffect.current) {
78
+ const currentEffect = newEffect.current;
79
+ const { effect } = currentEffect;
80
+ activeEffect.current = { state: "resolving", effect };
81
+ const cleanup = await effect()
82
+ .then((run) => {
90
83
  /**
91
84
  * Wrapped in a promise to ensure cleanup is awaited
92
85
  */
93
- run: async () => {
86
+ return async () => {
94
87
  await (run === null || run === void 0 ? void 0 : run());
95
- },
96
- };
97
- });
88
+ };
89
+ })
90
+ .catch((e) => {
91
+ console.error(e);
92
+ return async () => { };
93
+ });
94
+ activeEffect.current = { state: "resolved", effect, cleanup };
95
+ if (currentEffect !== newEffect.current) {
96
+ onRender();
97
+ }
98
+ }
98
99
  };
99
100
  (0, exports.useEffectDeep)(() => {
100
- const newEffect = { effect, deps };
101
- onRender(newEffect);
101
+ newEffect.current = { effect, deps };
102
+ onRender();
102
103
  return () => {
103
- onRender(undefined);
104
+ newEffect.current = undefined;
105
+ onRender();
104
106
  };
105
107
  }, deps);
106
108
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-client",
3
- "version": "4.0.225",
3
+ "version": "4.0.227",
4
4
  "description": "Reactive client for Postgres",
5
5
  "main": "dist/prostgles-full.js",
6
6
  "types": "dist/prostgles-full.d.ts",