prostgles-client 4.0.102 → 4.0.104
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/.eslintignore +8 -0
- package/.eslintrc.js +44 -0
- package/dist/index.js +1 -1
- package/dist/index.no-sync.js +1 -1
- package/dist/prostgles.d.ts.map +1 -1
- package/dist/prostgles.js +6 -6
- package/dist/react-hooks.d.ts +5 -2
- package/dist/react-hooks.d.ts.map +1 -1
- package/dist/react-hooks.js +7 -5
- package/lib/prostgles.ts +9 -8
- package/lib/react-hooks.ts +13 -5
- package/package.json +6 -2
- package/tests/package-lock.json +5 -1
package/dist/prostgles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prostgles.d.ts","sourceRoot":"","sources":["../lib/prostgles.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,SAAS,EAKT,iBAAiB,EAIjB,QAAQ,EACR,aAAa,EACb,WAAW,EAEX,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,SAAS,EACT,YAAY,EAGZ,eAAe,EAGf,YAAY,EAEZ,WAAW,EACX,MAAM,EAKP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAoB,KAAK,IAAI,EAAE,KAAK,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAE9I,OAAO,KAAK,EAAE,cAAc,EAAU,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"prostgles.d.ts","sourceRoot":"","sources":["../lib/prostgles.ts"],"names":[],"mappings":"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"}
|
package/dist/prostgles.js
CHANGED
|
@@ -39,11 +39,10 @@ const useProstglesClient = ({ skip, socketOptions, ...initOpts } = {}) => {
|
|
|
39
39
|
});
|
|
40
40
|
const getIsMounted = (0, react_hooks_1.useIsMounted)();
|
|
41
41
|
const socketRef = useRef();
|
|
42
|
-
const
|
|
43
|
-
(0, react_hooks_1.useEffectDeep)(() => {
|
|
42
|
+
const socket = (0, react_hooks_1.useMemoDeep)(() => {
|
|
44
43
|
var _a;
|
|
45
44
|
if (skip)
|
|
46
|
-
return;
|
|
45
|
+
return undefined;
|
|
47
46
|
(_a = socketRef.current) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
48
47
|
const io = (0, react_hooks_1.getIO)();
|
|
49
48
|
const opts = {
|
|
@@ -51,9 +50,10 @@ const useProstglesClient = ({ skip, socketOptions, ...initOpts } = {}) => {
|
|
|
51
50
|
reconnection: true,
|
|
52
51
|
...(0, prostgles_types_1.omitKeys)(socketOptions !== null && socketOptions !== void 0 ? socketOptions : {}, ["uri"]),
|
|
53
52
|
};
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
const socket = typeof (socketOptions === null || socketOptions === void 0 ? void 0 : socketOptions.uri) === "string" ? io(socketOptions.uri, opts) : io(opts);
|
|
54
|
+
socketRef.current = socket;
|
|
55
|
+
return socket;
|
|
56
|
+
}, [socketOptions, skip]);
|
|
57
57
|
(0, react_hooks_1.useAsyncEffectQueue)(async () => {
|
|
58
58
|
if (!socket || skip)
|
|
59
59
|
return;
|
package/dist/react-hooks.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { SubscriptionHandler } from "prostgles-types";
|
|
2
3
|
import { TableHandlerClient } from "./prostgles";
|
|
3
|
-
|
|
4
|
+
type ReactT = typeof import("react");
|
|
5
|
+
export declare const getReact: (throwError?: boolean) => ReactT;
|
|
4
6
|
export declare const getIO: (throwError?: boolean) => typeof import("socket.io-client").io;
|
|
5
7
|
export declare const isEqual: (x: any, y: any) => boolean;
|
|
6
8
|
export declare const useDeepCompareMemoize: (value: any) => undefined;
|
|
7
|
-
export declare const
|
|
9
|
+
export declare const useMemoDeep: typeof import("react").useMemo;
|
|
10
|
+
export declare const useEffectDeep: typeof import("react").useEffect;
|
|
8
11
|
/**
|
|
9
12
|
* Debounce with execute first
|
|
10
13
|
* Used to ensure subscriptions are always cleaned up
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-hooks.d.ts","sourceRoot":"","sources":["../lib/react-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAqB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"react-hooks.d.ts","sourceRoot":"","sources":["../lib/react-hooks.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAqB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,KAAK,MAAM,GAAG,cAAc,OAAO,CAAC,CAAC;AAKrC,eAAO,MAAM,QAAQ,gBAAiB,OAAO,KAAG,MAQ/C,CAAC;AAKF,eAAO,MAAM,KAAK,gEAQjB,CAAA;AACD,eAAO,MAAM,OAAO,6BAqBnB,CAAA;AAED,eAAO,MAAM,qBAAqB,UAAW,GAAG,cAQ/C,CAAA;AAED,eAAO,MAAM,WAAW,gCAKD,CAAA;AAEvB,eAAO,MAAM,aAAa,kCAKD,CAAA;AAgBzB;;;GAGG;AACH,eAAO,MAAM,mBAAmB,WAAY,MAAM,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,GAAG,EAAE,SAkD1F,CAAA;AACD,eAAO,MAAM,cAAc,WAAY,MAAM,QAAQ,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,UAAU,GAAG,EAAE,SAsBvF,CAAA;AAED,wBAAgB,YAAY,QAS3B;AAED,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;AACrC,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE/C,eAAO,MAAM,UAAU,qDAAqD,GAAG,EAAE,wJA6ChF,CAAA;AAOD,eAAO,MAAM,YAAY,qBACL,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,QAAQ,mBAAmB,CAAC,cACnF,OAAO,UACX,GAAG,WACF,GAAG;;;;CA8Bb,CAAA;AAED,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;;;;CA2BjE,CAAA;AAED,eAAO,MAAM,QAAQ,wBAAyB,GAAG,KAAK,QAAQ,GAAG,CAAC,SAAQ,GAAG,EAAE;;;;CAiB9E,CAAA;AAED,eAAO,MAAM,oBAAoB,eAAiC,CAAC"}
|
package/dist/react-hooks.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.__prglReactInstalled = exports.useFetch = exports.useSync = exports.useSubscribe = exports.usePromise = exports.useIsMounted = exports.useEffectAsync = exports.useAsyncEffectQueue = exports.useEffectDeep = exports.useDeepCompareMemoize = exports.isEqual = exports.getIO = exports.getReact = void 0;
|
|
4
|
+
exports.__prglReactInstalled = exports.useFetch = exports.useSync = exports.useSubscribe = exports.usePromise = exports.useIsMounted = exports.useEffectAsync = exports.useAsyncEffectQueue = exports.useEffectDeep = exports.useMemoDeep = exports.useDeepCompareMemoize = exports.isEqual = exports.getIO = exports.getReact = void 0;
|
|
5
5
|
const prostgles_types_1 = require("prostgles-types");
|
|
6
6
|
let React;
|
|
7
7
|
const alertNoReact = (...args) => { throw "Must install react"; };
|
|
@@ -63,10 +63,12 @@ const useDeepCompareMemoize = (value) => {
|
|
|
63
63
|
return ref.current;
|
|
64
64
|
};
|
|
65
65
|
exports.useDeepCompareMemoize = useDeepCompareMemoize;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
};
|
|
69
|
-
exports.useEffectDeep =
|
|
66
|
+
exports.useMemoDeep = ((callback, deps) => {
|
|
67
|
+
React.useMemo(callback, deps === null || deps === void 0 ? void 0 : deps.map(exports.useDeepCompareMemoize));
|
|
68
|
+
});
|
|
69
|
+
exports.useEffectDeep = ((callback, deps) => {
|
|
70
|
+
useEffect(callback, deps === null || deps === void 0 ? void 0 : deps.map(exports.useDeepCompareMemoize));
|
|
71
|
+
});
|
|
70
72
|
/**
|
|
71
73
|
* Debounce with execute first
|
|
72
74
|
* Used to ensure subscriptions are always cleaned up
|
package/lib/prostgles.ts
CHANGED
|
@@ -41,8 +41,9 @@ import {
|
|
|
41
41
|
} from "prostgles-types";
|
|
42
42
|
|
|
43
43
|
import { SyncDataItem, SyncOneOptions, SyncOptions, SyncedTable, type DbTableSync, type Sync, type SyncOne } from "./SyncedTable/SyncedTable";
|
|
44
|
-
import { getIO, getReact, isEqual, useAsyncEffectQueue, useEffectDeep, useFetch, useIsMounted, useSubscribe, useSync } from "./react-hooks";
|
|
44
|
+
import { getIO, getReact, isEqual, useAsyncEffectQueue, useEffectDeep, useFetch, useIsMounted, useMemoDeep, useSubscribe, useSync } from "./react-hooks";
|
|
45
45
|
import type { ManagerOptions, Socket, SocketOptions } from "socket.io-client";
|
|
46
|
+
import { useMemo } from "react";
|
|
46
47
|
|
|
47
48
|
const DEBUG_KEY = "DEBUG_SYNCEDTABLE";
|
|
48
49
|
const hasWnd = typeof window !== "undefined";
|
|
@@ -78,11 +79,10 @@ export const useProstglesClient = <DBSchema>({ skip, socketOptions, ...initOpts
|
|
|
78
79
|
isLoading: true
|
|
79
80
|
});
|
|
80
81
|
const getIsMounted = useIsMounted();
|
|
81
|
-
const socketRef = useRef<Socket>();
|
|
82
|
-
const [socket, setSocket] = useState<Socket>();
|
|
83
82
|
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
const socketRef = useRef<Socket>();
|
|
84
|
+
const socket = useMemoDeep(() => {
|
|
85
|
+
if(skip) return undefined;
|
|
86
86
|
socketRef.current?.disconnect();
|
|
87
87
|
const io = getIO();
|
|
88
88
|
const opts = {
|
|
@@ -90,9 +90,10 @@ export const useProstglesClient = <DBSchema>({ skip, socketOptions, ...initOpts
|
|
|
90
90
|
reconnection: true,
|
|
91
91
|
...omitKeys(socketOptions ?? {}, ["uri"]),
|
|
92
92
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
const socket = typeof socketOptions?.uri === "string" ? io(socketOptions.uri, opts) : io(opts);
|
|
94
|
+
socketRef.current = socket;
|
|
95
|
+
return socket;
|
|
96
|
+
}, [socketOptions, skip]);
|
|
96
97
|
|
|
97
98
|
useAsyncEffectQueue(async () => {
|
|
98
99
|
if(!socket || skip) return;
|
package/lib/react-hooks.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { SubscriptionHandler, getKeys, isObject } from "prostgles-types";
|
|
2
2
|
import { TableHandlerClient } from "./prostgles";
|
|
3
|
-
|
|
3
|
+
type ReactT = typeof import("react");
|
|
4
|
+
let React: ReactT;
|
|
4
5
|
|
|
5
6
|
const alertNoReact = (...args: any[]): any => { throw "Must install react" }
|
|
6
7
|
const alertNoReactT = <T>(...args: any[]): any => { throw "Must install react" }
|
|
7
|
-
export const getReact = (throwError?: boolean):
|
|
8
|
+
export const getReact = (throwError?: boolean): ReactT => {
|
|
8
9
|
try {
|
|
9
10
|
React ??= require("react");
|
|
10
11
|
} catch(err){
|
|
@@ -59,12 +60,19 @@ export const useDeepCompareMemoize = (value: any) => {
|
|
|
59
60
|
return ref.current
|
|
60
61
|
}
|
|
61
62
|
|
|
62
|
-
export const
|
|
63
|
+
export const useMemoDeep = ((callback, deps) => {
|
|
64
|
+
React.useMemo(
|
|
65
|
+
callback,
|
|
66
|
+
deps?.map(useDeepCompareMemoize)
|
|
67
|
+
)
|
|
68
|
+
}) as ReactT["useMemo"]
|
|
69
|
+
|
|
70
|
+
export const useEffectDeep = ((callback, deps) => {
|
|
63
71
|
useEffect(
|
|
64
72
|
callback,
|
|
65
|
-
deps
|
|
73
|
+
deps?.map(useDeepCompareMemoize)
|
|
66
74
|
)
|
|
67
|
-
}
|
|
75
|
+
}) as ReactT["useEffect"]
|
|
68
76
|
|
|
69
77
|
type AsyncCleanup = void | (() => void | Promise<void>)
|
|
70
78
|
type AsyncActiveEffect = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prostgles-client",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.104",
|
|
4
4
|
"description": "Reactive client for Postgres",
|
|
5
5
|
"main": "dist/prostgles-full.js",
|
|
6
6
|
"types": "dist/prostgles-full.d.ts",
|
|
@@ -37,7 +37,11 @@
|
|
|
37
37
|
"tsconfig-paths-webpack-plugin": "^4.0.0",
|
|
38
38
|
"typescript": "^5.3.3",
|
|
39
39
|
"webpack": "^5.76.2",
|
|
40
|
-
"webpack-cli": "^4.9.2"
|
|
40
|
+
"webpack-cli": "^4.9.2",
|
|
41
|
+
"eslint": "^8.57.0",
|
|
42
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
43
|
+
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
44
|
+
"@typescript-eslint/parser": "^5.62.0"
|
|
41
45
|
},
|
|
42
46
|
"peerDependencies": {
|
|
43
47
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
package/tests/package-lock.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"..": {
|
|
19
19
|
"name": "prostgles-client",
|
|
20
|
-
"version": "4.0.
|
|
20
|
+
"version": "4.0.103",
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"prostgles-types": "^4.0.73"
|
|
@@ -25,6 +25,10 @@
|
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@types/node": "^14.14.14",
|
|
27
27
|
"@types/react": "^18.2.19",
|
|
28
|
+
"@typescript-eslint/eslint-plugin": "^5.62.0",
|
|
29
|
+
"@typescript-eslint/parser": "^5.62.0",
|
|
30
|
+
"eslint": "^8.57.0",
|
|
31
|
+
"eslint-plugin-react-hooks": "^4.6.0",
|
|
28
32
|
"ts-loader": "^9.5.1",
|
|
29
33
|
"tsconfig-paths-webpack-plugin": "^4.0.0",
|
|
30
34
|
"typescript": "^5.3.3",
|