prostgles-client 4.0.264 → 4.0.266
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/dist/FunctionQueuer.d.ts +2 -1
- package/dist/FunctionQueuer.d.ts.map +1 -1
- package/dist/FunctionQueuer.js +34 -30
- package/dist/SyncedTable/SyncedTable.d.ts +6 -11
- package/dist/SyncedTable/SyncedTable.d.ts.map +1 -1
- package/dist/SyncedTable/SyncedTable.js +44 -79
- package/dist/getDbHandler.d.ts.map +1 -1
- package/dist/getDbHandler.js +7 -6
- package/dist/getSyncHandler.d.ts +1 -1
- package/dist/getSyncHandler.d.ts.map +1 -1
- package/dist/getSyncHandler.js +1 -1
- package/dist/hooks/reactImports.d.ts +8 -0
- package/dist/hooks/reactImports.d.ts.map +1 -0
- package/dist/hooks/reactImports.js +33 -0
- package/dist/hooks/useAsyncEffectQueue.d.ts +8 -0
- package/dist/hooks/useAsyncEffectQueue.d.ts.map +1 -0
- package/dist/hooks/useAsyncEffectQueue.js +57 -0
- package/dist/hooks/useEffectAsync.d.ts +2 -0
- package/dist/hooks/useEffectAsync.d.ts.map +1 -0
- package/dist/hooks/useEffectAsync.js +30 -0
- package/dist/hooks/useEffectDeep.d.ts +5 -0
- package/dist/hooks/useEffectDeep.d.ts.map +1 -0
- package/dist/hooks/useEffectDeep.js +21 -0
- package/dist/hooks/useFetch.d.ts +7 -0
- package/dist/hooks/useFetch.d.ts.map +1 -0
- package/dist/hooks/useFetch.js +30 -0
- package/dist/hooks/useIsMounted.d.ts +2 -0
- package/dist/hooks/useIsMounted.d.ts.map +1 -0
- package/dist/hooks/useIsMounted.js +17 -0
- package/dist/hooks/usePromise.d.ts +5 -0
- package/dist/hooks/usePromise.d.ts.map +1 -0
- package/dist/hooks/usePromise.js +67 -0
- package/dist/{useProstglesClient.d.ts → hooks/useProstglesClient.d.ts} +3 -2
- package/dist/hooks/useProstglesClient.d.ts.map +1 -0
- package/dist/{useProstglesClient.js → hooks/useProstglesClient.js} +25 -8
- package/dist/hooks/useSubscribe.d.ts +5 -0
- package/dist/hooks/useSubscribe.d.ts.map +1 -0
- package/dist/hooks/useSubscribe.js +46 -0
- package/dist/hooks/useSync.d.ts +20 -0
- package/dist/hooks/useSync.d.ts.map +1 -0
- package/dist/hooks/useSync.js +34 -0
- package/dist/index.js +1 -1
- package/dist/index.no-sync.js +1 -1
- package/dist/prostgles.d.ts +2 -2
- package/dist/prostgles.d.ts.map +1 -1
- package/dist/prostgles.js +2 -2
- package/package.json +2 -2
- package/dist/ProstglesLoginProvider.d.ts +0 -11
- package/dist/ProstglesLoginProvider.d.ts.map +0 -1
- package/dist/ProstglesLoginProvider.js +0 -26
- package/dist/react-hooks.d.ts +0 -47
- package/dist/react-hooks.d.ts.map +0 -1
- package/dist/react-hooks.js +0 -299
- package/dist/useProstglesClient.d.ts.map +0 -1
package/dist/FunctionQueuer.d.ts
CHANGED
|
@@ -3,9 +3,10 @@ export declare class FunctionQueuer<F extends Func> {
|
|
|
3
3
|
private queue;
|
|
4
4
|
private func;
|
|
5
5
|
private groupBy?;
|
|
6
|
-
constructor(func: F, groupBy?: (
|
|
6
|
+
constructor(func: F, groupBy?: (args: Parameters<F>) => string);
|
|
7
7
|
private isRunning;
|
|
8
8
|
run(args: Parameters<F>): Promise<ReturnType<F>>;
|
|
9
|
+
startQueueJob: () => Promise<void>;
|
|
9
10
|
}
|
|
10
11
|
export {};
|
|
11
12
|
//# sourceMappingURL=FunctionQueuer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FunctionQueuer.d.ts","sourceRoot":"","sources":["../lib/FunctionQueuer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FunctionQueuer.d.ts","sourceRoot":"","sources":["../lib/FunctionQueuer.ts"],"names":[],"mappings":"AAAA,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAMpC,qBAAa,cAAc,CAAC,CAAC,SAAS,IAAI;IACxC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,OAAO,CAAC,CAAkC;gBACtC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM;IAI9D,OAAO,CAAC,SAAS,CAAS;IACpB,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAWtD,aAAa,sBAkDX;CACH"}
|
package/dist/FunctionQueuer.js
CHANGED
|
@@ -5,58 +5,62 @@ class FunctionQueuer {
|
|
|
5
5
|
constructor(func, groupBy) {
|
|
6
6
|
this.queue = [];
|
|
7
7
|
this.isRunning = false;
|
|
8
|
-
this.
|
|
9
|
-
this.groupBy = groupBy;
|
|
10
|
-
}
|
|
11
|
-
async run(args) {
|
|
12
|
-
const result = new Promise((resolve, reject) => {
|
|
13
|
-
const item = { arguments: args, onResult: resolve, onFail: reject };
|
|
14
|
-
this.queue.push(item);
|
|
15
|
-
});
|
|
16
|
-
const startQueueJob = async () => {
|
|
8
|
+
this.startQueueJob = async () => {
|
|
17
9
|
if (this.isRunning) {
|
|
18
10
|
return;
|
|
19
11
|
}
|
|
20
12
|
this.isRunning = true;
|
|
21
|
-
const
|
|
22
|
-
if (item) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
13
|
+
const executeItem = async (item) => {
|
|
14
|
+
if (!item) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const result = await this.func(...item.arguments);
|
|
19
|
+
item.onResult(result);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
item.onFail(error);
|
|
30
23
|
}
|
|
31
24
|
};
|
|
32
25
|
if (!this.groupBy) {
|
|
33
26
|
const item = this.queue.shift();
|
|
34
|
-
await
|
|
27
|
+
await executeItem(item);
|
|
35
28
|
/** Run items in parallel for each group */
|
|
36
29
|
}
|
|
37
30
|
else {
|
|
38
|
-
const groups =
|
|
31
|
+
const groups = new Set();
|
|
39
32
|
const items = [];
|
|
40
|
-
this.queue.forEach(
|
|
33
|
+
this.queue.forEach((item) => {
|
|
41
34
|
const group = this.groupBy(item.arguments);
|
|
42
|
-
if (!groups.
|
|
43
|
-
groups.
|
|
44
|
-
items.push(
|
|
35
|
+
if (!groups.has(group)) {
|
|
36
|
+
groups.add(group);
|
|
37
|
+
items.push(item);
|
|
45
38
|
}
|
|
46
39
|
});
|
|
47
|
-
items
|
|
48
|
-
|
|
40
|
+
items
|
|
41
|
+
.slice(0)
|
|
42
|
+
.reverse()
|
|
43
|
+
.forEach((item) => {
|
|
44
|
+
this.queue.splice(this.queue.indexOf(item), 1);
|
|
49
45
|
});
|
|
50
|
-
await Promise.all(items.map(item => {
|
|
51
|
-
return
|
|
46
|
+
await Promise.all(items.map((item) => {
|
|
47
|
+
return executeItem(item);
|
|
52
48
|
}));
|
|
53
49
|
}
|
|
54
50
|
this.isRunning = false;
|
|
55
51
|
if (this.queue.length) {
|
|
56
|
-
startQueueJob();
|
|
52
|
+
this.startQueueJob();
|
|
57
53
|
}
|
|
58
54
|
};
|
|
59
|
-
|
|
55
|
+
this.func = func;
|
|
56
|
+
this.groupBy = groupBy;
|
|
57
|
+
}
|
|
58
|
+
async run(args) {
|
|
59
|
+
const result = new Promise((resolve, reject) => {
|
|
60
|
+
const item = { arguments: args, onResult: resolve, onFail: reject };
|
|
61
|
+
this.queue.push(item);
|
|
62
|
+
});
|
|
63
|
+
this.startQueueJob();
|
|
60
64
|
return result;
|
|
61
65
|
}
|
|
62
66
|
}
|
|
@@ -92,9 +92,8 @@ export type SubscriptionMulti<T extends AnyObject = AnyObject> = {
|
|
|
92
92
|
handles?: MultiSyncHandles<T>;
|
|
93
93
|
};
|
|
94
94
|
declare const STORAGE_TYPES: {
|
|
95
|
-
readonly
|
|
95
|
+
readonly map: "map";
|
|
96
96
|
readonly localStorage: "localStorage";
|
|
97
|
-
readonly object: "object";
|
|
98
97
|
};
|
|
99
98
|
export type MultiChangeListener<T extends AnyObject = AnyObject> = (items: SyncDataItem<T>[], delta: DeepPartial<T>[]) => any;
|
|
100
99
|
export type SingleChangeListener<T extends AnyObject = AnyObject, Full extends boolean = false> = (item: SyncDataItem<T, Full>, delta?: DeepPartial<T>) => any;
|
|
@@ -165,9 +164,8 @@ export declare class SyncedTable {
|
|
|
165
164
|
set singleSubscriptions(sSubs: SubscriptionSingle[]);
|
|
166
165
|
get singleSubscriptions(): SubscriptionSingle[];
|
|
167
166
|
dbSync?: DbTableSync;
|
|
168
|
-
items: AnyObject[];
|
|
169
167
|
storageType?: StorageType;
|
|
170
|
-
|
|
168
|
+
itemsMap: Map<string, AnyObject>;
|
|
171
169
|
patchText: boolean;
|
|
172
170
|
patchJSON: boolean;
|
|
173
171
|
isSynced: boolean;
|
|
@@ -242,7 +240,6 @@ export declare class SyncedTable {
|
|
|
242
240
|
setItem(_item: AnyObject, index: number | undefined, isFullData?: boolean, deleteItem?: boolean): void;
|
|
243
241
|
/**
|
|
244
242
|
* Sets the current data
|
|
245
|
-
* @param items data
|
|
246
243
|
*/
|
|
247
244
|
setItems: (_items: AnyObject[]) => void;
|
|
248
245
|
/**
|
|
@@ -251,16 +248,14 @@ export declare class SyncedTable {
|
|
|
251
248
|
getItems: <T extends AnyObject = AnyObject>() => T[];
|
|
252
249
|
/**
|
|
253
250
|
* Sync data request
|
|
254
|
-
* @param param0: SyncBatchRequest
|
|
255
251
|
*/
|
|
256
252
|
getBatch: ({ from_synced, to_synced, offset, limit }?: SyncBatchParams) => {
|
|
257
253
|
[x: string]: any;
|
|
258
254
|
}[];
|
|
259
255
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
export
|
|
264
|
-
export declare function quickClone<T>(obj: T): T;
|
|
256
|
+
export declare const mergeDeep: (_target: Record<string, unknown> | undefined, _source: Record<string, unknown> | undefined) => {
|
|
257
|
+
[x: string]: unknown;
|
|
258
|
+
};
|
|
259
|
+
export declare const quickClone: <T>(obj: T) => T;
|
|
265
260
|
export {};
|
|
266
261
|
//# sourceMappingURL=SyncedTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncedTable.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/SyncedTable.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SyncedTable.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/SyncedTable.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.quickClone = exports.SyncedTable = exports.debug = void 0;
|
|
3
|
+
exports.quickClone = exports.mergeDeep = exports.SyncedTable = exports.debug = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
5
|
const getMultiSyncSubscription_1 = require("./getMultiSyncSubscription");
|
|
6
6
|
const DEBUG_KEY = "DEBUG_SYNCEDTABLE";
|
|
@@ -12,9 +12,9 @@ const debug = function (...args) {
|
|
|
12
12
|
};
|
|
13
13
|
exports.debug = debug;
|
|
14
14
|
const STORAGE_TYPES = {
|
|
15
|
-
|
|
15
|
+
map: "map",
|
|
16
16
|
localStorage: "localStorage",
|
|
17
|
-
object: "object",
|
|
17
|
+
// object: "object",
|
|
18
18
|
};
|
|
19
19
|
class SyncedTable {
|
|
20
20
|
/**
|
|
@@ -34,15 +34,14 @@ class SyncedTable {
|
|
|
34
34
|
get singleSubscriptions() {
|
|
35
35
|
return this._singleSubscriptions;
|
|
36
36
|
}
|
|
37
|
-
constructor({ name, filter, onChange, onReady, onDebug, db, skipFirstTrigger = false, select = "*", storageType = "
|
|
37
|
+
constructor({ name, filter, onChange, onReady, onDebug, db, skipFirstTrigger = false, select = "*", storageType = "map", patchText = false, patchJSON = false, onError, }) {
|
|
38
38
|
this.throttle = 100;
|
|
39
39
|
this.batch_size = 50;
|
|
40
40
|
this.skipFirstTrigger = false;
|
|
41
41
|
this.columns = [];
|
|
42
42
|
this._multiSubscriptions = [];
|
|
43
43
|
this._singleSubscriptions = [];
|
|
44
|
-
this.
|
|
45
|
-
this.itemsObj = {};
|
|
44
|
+
this.itemsMap = new Map();
|
|
46
45
|
this.isSynced = false;
|
|
47
46
|
/**
|
|
48
47
|
* Will update text/json fields through patching method
|
|
@@ -168,8 +167,7 @@ class SyncedTable {
|
|
|
168
167
|
this.unsync();
|
|
169
168
|
this.multiSubscriptions = [];
|
|
170
169
|
this.singleSubscriptions = [];
|
|
171
|
-
this.
|
|
172
|
-
this.items = [];
|
|
170
|
+
this.itemsMap.clear();
|
|
173
171
|
this.onChange = undefined;
|
|
174
172
|
};
|
|
175
173
|
this.delete = async (item, from_server = false) => {
|
|
@@ -243,7 +241,7 @@ class SyncedTable {
|
|
|
243
241
|
* Merge deep
|
|
244
242
|
*/
|
|
245
243
|
if ((_a = item.opts) === null || _a === void 0 ? void 0 : _a.deepMerge) {
|
|
246
|
-
newItem = mergeDeep({ ...oldItem, ...idObj }, { ...delta });
|
|
244
|
+
newItem = (0, exports.mergeDeep)({ ...oldItem, ...idObj }, { ...delta });
|
|
247
245
|
}
|
|
248
246
|
}
|
|
249
247
|
/* Update existing -> Expecting delta */
|
|
@@ -311,23 +309,19 @@ class SyncedTable {
|
|
|
311
309
|
};
|
|
312
310
|
/**
|
|
313
311
|
* Sets the current data
|
|
314
|
-
* @param items data
|
|
315
312
|
*/
|
|
316
313
|
this.setItems = (_items) => {
|
|
317
|
-
const items = quickClone(_items);
|
|
314
|
+
const items = (0, exports.quickClone)(_items);
|
|
318
315
|
if (this.storageType === STORAGE_TYPES.localStorage) {
|
|
319
316
|
if (!hasWnd)
|
|
320
317
|
throw "Cannot access window object. Choose another storage method (array OR object)";
|
|
321
318
|
window.localStorage.setItem(this.name, JSON.stringify(items));
|
|
322
319
|
}
|
|
323
|
-
else if (this.storageType === STORAGE_TYPES.
|
|
324
|
-
this.
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
...a,
|
|
329
|
-
[this.getIdStr(v)]: { ...v },
|
|
330
|
-
}), {});
|
|
320
|
+
else if (this.storageType === STORAGE_TYPES.map) {
|
|
321
|
+
this.itemsMap = new Map(items.map((item) => {
|
|
322
|
+
const id = this.getIdStr(item);
|
|
323
|
+
return [id, { ...item }];
|
|
324
|
+
}));
|
|
331
325
|
}
|
|
332
326
|
};
|
|
333
327
|
/**
|
|
@@ -348,18 +342,14 @@ class SyncedTable {
|
|
|
348
342
|
}
|
|
349
343
|
}
|
|
350
344
|
}
|
|
351
|
-
else if (this.storageType === STORAGE_TYPES.
|
|
352
|
-
items = this.
|
|
353
|
-
}
|
|
354
|
-
else {
|
|
355
|
-
items = Object.values({ ...this.itemsObj });
|
|
345
|
+
else if (this.storageType === STORAGE_TYPES.map) {
|
|
346
|
+
items = Array.from(this.itemsMap.values()).map((d) => ({ ...d }));
|
|
356
347
|
}
|
|
357
348
|
if (this.id_fields.length && this.synced_field) {
|
|
358
349
|
const s_fields = [this.synced_field, ...this.id_fields.sort()];
|
|
359
350
|
items = items
|
|
360
351
|
.filter((d) => {
|
|
361
|
-
return
|
|
362
|
-
!(0, prostgles_types_1.getKeys)(this.filter).find((key) => d[key] !== this.filter[key]));
|
|
352
|
+
return !this.filter || !(0, prostgles_types_1.getKeys)(this.filter).find((key) => d[key] !== this.filter[key]);
|
|
363
353
|
})
|
|
364
354
|
.sort((a, b) => s_fields
|
|
365
355
|
.map((key) => (a[key] < b[key] ? -1
|
|
@@ -369,17 +359,13 @@ class SyncedTable {
|
|
|
369
359
|
}
|
|
370
360
|
else
|
|
371
361
|
throw "id_fields AND/OR synced_field missing";
|
|
372
|
-
|
|
373
|
-
return quickClone(items);
|
|
362
|
+
return (0, exports.quickClone)(items);
|
|
374
363
|
};
|
|
375
364
|
/**
|
|
376
365
|
* Sync data request
|
|
377
|
-
* @param param0: SyncBatchRequest
|
|
378
366
|
*/
|
|
379
367
|
this.getBatch = ({ from_synced, to_synced, offset, limit } = { offset: 0, limit: undefined }) => {
|
|
380
368
|
const items = this.getItems();
|
|
381
|
-
// params = params || {};
|
|
382
|
-
// const { from_synced, to_synced, offset = 0, limit = null } = params;
|
|
383
369
|
let res = items
|
|
384
370
|
.map((c) => ({ ...c }))
|
|
385
371
|
.filter((c) => (!Number.isFinite(from_synced) || +c[this.synced_field] >= +from_synced) &&
|
|
@@ -399,8 +385,8 @@ class SyncedTable {
|
|
|
399
385
|
if (!STORAGE_TYPES[storageType])
|
|
400
386
|
throw "Invalid storage type. Expecting one of: " + Object.keys(STORAGE_TYPES).join(", ");
|
|
401
387
|
if (!hasWnd && storageType === STORAGE_TYPES.localStorage) {
|
|
402
|
-
console.warn("Could not set storageType to localStorage: window object missing\nStorage changed to
|
|
403
|
-
storageType = "
|
|
388
|
+
console.warn("Could not set storageType to localStorage: window object missing\nStorage changed to map");
|
|
389
|
+
storageType = "map";
|
|
404
390
|
}
|
|
405
391
|
this.storageType = storageType;
|
|
406
392
|
this.patchText = patchText;
|
|
@@ -743,14 +729,10 @@ class SyncedTable {
|
|
|
743
729
|
const items = this.getItems();
|
|
744
730
|
d = items.find((d) => this.matchesIdObj(d, idObj));
|
|
745
731
|
}
|
|
746
|
-
else if (this.storageType === STORAGE_TYPES.array) {
|
|
747
|
-
d = this.items.find((d) => this.matchesIdObj(d, idObj));
|
|
748
|
-
}
|
|
749
732
|
else {
|
|
750
|
-
|
|
751
|
-
d = { ...this.itemsObj }[this.getIdStr(idObj)];
|
|
733
|
+
d = { ...this.itemsMap.get(this.getIdStr(idObj)) };
|
|
752
734
|
}
|
|
753
|
-
return { data: quickClone(d), index };
|
|
735
|
+
return { data: (0, exports.quickClone)(d), index };
|
|
754
736
|
}
|
|
755
737
|
/**
|
|
756
738
|
*
|
|
@@ -760,7 +742,8 @@ class SyncedTable {
|
|
|
760
742
|
* @param deleteItem
|
|
761
743
|
*/
|
|
762
744
|
setItem(_item, index, isFullData = false, deleteItem = false) {
|
|
763
|
-
|
|
745
|
+
var _a;
|
|
746
|
+
const item = (0, exports.quickClone)(_item);
|
|
764
747
|
if (this.storageType === STORAGE_TYPES.localStorage) {
|
|
765
748
|
let items = this.getItems();
|
|
766
749
|
if (!deleteItem) {
|
|
@@ -774,72 +757,54 @@ class SyncedTable {
|
|
|
774
757
|
if (hasWnd)
|
|
775
758
|
window.localStorage.setItem(this.name, JSON.stringify(items));
|
|
776
759
|
}
|
|
777
|
-
else if (this.storageType === STORAGE_TYPES.array) {
|
|
778
|
-
if (!deleteItem) {
|
|
779
|
-
if (index !== undefined && !this.items[index]) {
|
|
780
|
-
this.items.push(item);
|
|
781
|
-
}
|
|
782
|
-
else if (index !== undefined) {
|
|
783
|
-
this.items[index] = isFullData ? { ...item } : { ...this.items[index], ...item };
|
|
784
|
-
}
|
|
785
|
-
}
|
|
786
|
-
else
|
|
787
|
-
this.items = this.items.filter((d) => !this.matchesIdObj(d, item));
|
|
788
|
-
}
|
|
789
760
|
else {
|
|
790
|
-
|
|
791
|
-
if (
|
|
792
|
-
|
|
793
|
-
this.itemsObj[this.getIdStr(item)] = isFullData ? { ...item } : { ...existing, ...item };
|
|
761
|
+
const id = this.getIdStr(item);
|
|
762
|
+
if (deleteItem) {
|
|
763
|
+
this.itemsMap.delete(id);
|
|
794
764
|
}
|
|
795
765
|
else {
|
|
796
|
-
|
|
766
|
+
const existing = (_a = this.itemsMap.get(id)) !== null && _a !== void 0 ? _a : {};
|
|
767
|
+
this.itemsMap.set(id, isFullData ? { ...item } : { ...existing, ...item });
|
|
797
768
|
}
|
|
798
769
|
}
|
|
799
770
|
}
|
|
800
771
|
}
|
|
801
772
|
exports.SyncedTable = SyncedTable;
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
const target = _target ? quickClone(_target) : _target;
|
|
807
|
-
const source = _source ? quickClone(_source) : _source;
|
|
808
|
-
const output = Object.assign({}, target);
|
|
773
|
+
const mergeDeep = (_target, _source) => {
|
|
774
|
+
const target = _target ? (0, exports.quickClone)(_target) : _target;
|
|
775
|
+
const source = _source ? (0, exports.quickClone)(_source) : _source;
|
|
776
|
+
const output = (0, prostgles_types_1.isObject)(target) ? { ...target } : {};
|
|
809
777
|
if ((0, prostgles_types_1.isObject)(target) && (0, prostgles_types_1.isObject)(source)) {
|
|
810
|
-
Object.keys(source).forEach((
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
else {
|
|
816
|
-
output[key] = mergeDeep(target[key], source[key]);
|
|
817
|
-
}
|
|
778
|
+
Object.keys(source).forEach((sourceKey) => {
|
|
779
|
+
const sourceValue = source[sourceKey];
|
|
780
|
+
const targetValue = target[sourceKey];
|
|
781
|
+
if ((0, prostgles_types_1.isObject)(sourceValue) && (0, prostgles_types_1.isObject)(targetValue)) {
|
|
782
|
+
output[sourceKey] = (0, exports.mergeDeep)(targetValue, sourceValue);
|
|
818
783
|
}
|
|
819
784
|
else {
|
|
820
|
-
|
|
785
|
+
output[sourceKey] = (0, exports.quickClone)(sourceValue);
|
|
821
786
|
}
|
|
822
787
|
});
|
|
823
788
|
}
|
|
824
789
|
return output;
|
|
825
|
-
}
|
|
826
|
-
exports.
|
|
827
|
-
|
|
790
|
+
};
|
|
791
|
+
exports.mergeDeep = mergeDeep;
|
|
792
|
+
const quickClone = (obj) => {
|
|
828
793
|
if (hasWnd && "structuredClone" in window && typeof window.structuredClone === "function") {
|
|
829
794
|
return window.structuredClone(obj);
|
|
830
795
|
}
|
|
831
796
|
if (Array.isArray(obj)) {
|
|
832
|
-
return obj.slice(0).map((v) => quickClone(v));
|
|
797
|
+
return obj.slice(0).map((v) => (0, exports.quickClone)(v));
|
|
833
798
|
}
|
|
834
799
|
else if ((0, prostgles_types_1.isObject)(obj)) {
|
|
835
800
|
const result = {};
|
|
836
801
|
(0, prostgles_types_1.getKeys)(obj).map((k) => {
|
|
837
|
-
result[k] = quickClone(obj[k]);
|
|
802
|
+
result[k] = (0, exports.quickClone)(obj[k]);
|
|
838
803
|
});
|
|
839
804
|
return result;
|
|
840
805
|
}
|
|
841
806
|
return obj;
|
|
842
|
-
}
|
|
807
|
+
};
|
|
843
808
|
exports.quickClone = quickClone;
|
|
844
809
|
/**
|
|
845
810
|
* Type tests
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDbHandler.d.ts","sourceRoot":"","sources":["../lib/getDbHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAMlB,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"getDbHandler.d.ts","sourceRoot":"","sources":["../lib/getDbHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAMlB,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,WAAW,EAGjB,MAAM,2BAA2B,CAAC;AAKnC,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,oBAAoB,CAAC;IAC7B,WAAW,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,WAAW,EAAE,OAAO,WAAW,GAAG,SAAS,CAAC;IAC5C,WAAW,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAC/C,mBAAmB,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;CAChE,CAAC;AAIF,eAAO,MAAM,MAAM,6FAQhB,IAAI;;CAwNN,CAAC"}
|
package/dist/getDbHandler.js
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getDBO = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
-
const prostgles_1 = require("./prostgles");
|
|
6
5
|
const SyncedTable_1 = require("./SyncedTable/SyncedTable");
|
|
6
|
+
const useSubscribe_1 = require("./hooks/useSubscribe");
|
|
7
|
+
const useSync_1 = require("./hooks/useSync");
|
|
8
|
+
const useFetch_1 = require("./hooks/useFetch");
|
|
7
9
|
const preffix = prostgles_types_1.CHANNELS._preffix;
|
|
8
10
|
const getDBO = ({ schema, tableSchema, onDebug, syncedTable, syncHandler, subscriptionHandler, socket, }) => {
|
|
9
11
|
/* Building DBO object */
|
|
@@ -83,10 +85,10 @@ const getDBO = ({ schema, tableSchema, onDebug, syncedTable, syncHandler, subscr
|
|
|
83
85
|
dboTable.syncOne = syncOne;
|
|
84
86
|
dboTable.useSync = (basicFilter, options, hookOptions) =>
|
|
85
87
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
86
|
-
(0,
|
|
88
|
+
(0, useSync_1.useSync)(sync, basicFilter, options, hookOptions);
|
|
87
89
|
dboTable.useSyncOne = (basicFilter, options, hookOptions) =>
|
|
88
90
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
89
|
-
(0,
|
|
91
|
+
(0, useSync_1.useSync)(syncOne, basicFilter, options, hookOptions);
|
|
90
92
|
}
|
|
91
93
|
dboTable._sync = async function (param1, param2, syncHandles) {
|
|
92
94
|
await (onDebug === null || onDebug === void 0 ? void 0 : onDebug({
|
|
@@ -119,9 +121,8 @@ const getDBO = ({ schema, tableSchema, onDebug, syncedTable, syncHandler, subscr
|
|
|
119
121
|
: undefined;
|
|
120
122
|
if (handlerName) {
|
|
121
123
|
dboTable[handlerName] = (filter, options, hookOptions) =>
|
|
122
|
-
//@ts-ignore
|
|
123
124
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
124
|
-
(0,
|
|
125
|
+
(0, useSubscribe_1.useSubscribe)(subFunc, command === SUBONE, filter, options, hookOptions);
|
|
125
126
|
}
|
|
126
127
|
if (command === SUBONE || !subscribeCommands.includes(SUBONE)) {
|
|
127
128
|
dboTable[SUBONE] = async function (param1, param2, onChange, onError) {
|
|
@@ -173,7 +174,7 @@ const getDBO = ({ schema, tableSchema, onDebug, syncedTable, syncHandler, subscr
|
|
|
173
174
|
if (methodName) {
|
|
174
175
|
dboTable[methodName] = (param1, param2, hookOptions) =>
|
|
175
176
|
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
176
|
-
(0,
|
|
177
|
+
(0, useFetch_1.useFetch)(method, [param1, param2], hookOptions);
|
|
177
178
|
}
|
|
178
179
|
}
|
|
179
180
|
});
|
package/dist/getSyncHandler.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ClientSyncHandles } from "prostgles-types";
|
|
2
2
|
import type { CoreParams, InitOptions } from "./prostgles";
|
|
3
3
|
import type { SyncedTable } from "./SyncedTable/SyncedTable";
|
|
4
|
-
export declare const getSyncHandler: ({ socket
|
|
4
|
+
export declare const getSyncHandler: ({ socket }: Pick<InitOptions, "socket">) => {
|
|
5
5
|
destroySyncs: () => Promise<void>;
|
|
6
6
|
syncedTables: Record<string, SyncedTable>;
|
|
7
7
|
addSync: (params: CoreParams, triggers: ClientSyncHandles) => Promise<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSyncHandler.d.ts","sourceRoot":"","sources":["../lib/getSyncHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,KAAK,EAAe,UAAU,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AAElF,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAa1E,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"getSyncHandler.d.ts","sourceRoot":"","sources":["../lib/getSyncHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,KAAK,EAAe,UAAU,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AAElF,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAa1E,eAAO,MAAM,cAAc,eAAgB,KAAK,WAAW,EAAE,QAAQ,CAAC;;;sBAyDrC,UAAU,YAAY,iBAAiB,KAAG,QAAQ,GAAG,CAAC;;CAoItF,CAAC"}
|
package/dist/getSyncHandler.js
CHANGED
|
@@ -5,7 +5,7 @@ const prostgles_types_1 = require("prostgles-types");
|
|
|
5
5
|
const FunctionQueuer_1 = require("./FunctionQueuer");
|
|
6
6
|
const prostgles_1 = require("./prostgles");
|
|
7
7
|
const preffix = prostgles_types_1.CHANNELS._preffix;
|
|
8
|
-
const getSyncHandler = ({ socket
|
|
8
|
+
const getSyncHandler = ({ socket }) => {
|
|
9
9
|
let syncedTables = {};
|
|
10
10
|
let syncs = {};
|
|
11
11
|
const destroySyncs = async () => {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export type ReactT = typeof import("react");
|
|
3
|
+
declare let React: ReactT;
|
|
4
|
+
export declare const getReact: (throwError?: boolean) => ReactT;
|
|
5
|
+
declare const useEffect: typeof import("react").useEffect, useCallback: typeof import("react").useCallback, useRef: typeof import("react").useRef, useState: typeof import("react").useState;
|
|
6
|
+
export { useEffect, useCallback, useRef, useState, React };
|
|
7
|
+
export declare const __prglReactInstalled: () => boolean;
|
|
8
|
+
//# sourceMappingURL=reactImports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactImports.d.ts","sourceRoot":"","sources":["../../lib/hooks/reactImports.ts"],"names":[],"mappings":";AAAA,MAAM,MAAM,MAAM,GAAG,cAAc,OAAO,CAAC,CAAC;AAC5C,QAAA,IAAI,KAAK,EAAE,MAAM,CAAC;AAQlB,eAAO,MAAM,QAAQ,gBAAiB,OAAO,KAAG,MAQ/C,CAAC;AAEF,QAAA,MACE,SAAS,oCACT,WAAW,sCACX,MAAM,iCACN,QAAQ,iCAEM,CAAC;AAEjB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAE3D,eAAO,MAAM,oBAAoB,eAA0C,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.__prglReactInstalled = exports.React = exports.useState = exports.useRef = exports.useCallback = exports.useEffect = exports.getReact = void 0;
|
|
5
|
+
let React;
|
|
6
|
+
const alertNoReact = (...args) => {
|
|
7
|
+
throw "Must install react";
|
|
8
|
+
};
|
|
9
|
+
const alertNoReactT = (...args) => {
|
|
10
|
+
throw "Must install react";
|
|
11
|
+
};
|
|
12
|
+
const getReact = (throwError) => {
|
|
13
|
+
try {
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, @typescript-eslint/no-require-imports
|
|
15
|
+
React !== null && React !== void 0 ? React : (exports.React = React = require("react"));
|
|
16
|
+
}
|
|
17
|
+
catch (err) { }
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
19
|
+
if (throwError && !React)
|
|
20
|
+
throw new Error("Must install react");
|
|
21
|
+
return React;
|
|
22
|
+
};
|
|
23
|
+
exports.getReact = getReact;
|
|
24
|
+
(0, exports.getReact)();
|
|
25
|
+
const { useEffect = alertNoReact, useCallback = alertNoReact, useRef, useState = alertNoReactT,
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
27
|
+
} = (_a = React) !== null && _a !== void 0 ? _a : {};
|
|
28
|
+
exports.useEffect = useEffect;
|
|
29
|
+
exports.useCallback = useCallback;
|
|
30
|
+
exports.useRef = useRef;
|
|
31
|
+
exports.useState = useState;
|
|
32
|
+
const __prglReactInstalled = () => Boolean(React && useRef);
|
|
33
|
+
exports.__prglReactInstalled = __prglReactInstalled;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type EffectFunc = () => Promise<void | (() => void)>;
|
|
2
|
+
/**
|
|
3
|
+
* Debounce with execute first
|
|
4
|
+
* Used to ensure subscriptions are always cleaned up
|
|
5
|
+
*/
|
|
6
|
+
export declare const useAsyncEffectQueue: (effect: EffectFunc, deps: any[]) => void;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=useAsyncEffectQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAsyncEffectQueue.d.ts","sourceRoot":"","sources":["../../lib/hooks/useAsyncEffectQueue.ts"],"names":[],"mappings":"AAKA,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,SAgDlE,CAAC"}
|