prostgles-client 4.0.94 → 4.0.96
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/{SyncedTable.d.ts → SyncedTable/SyncedTable.d.ts} +21 -20
- package/dist/SyncedTable/SyncedTable.d.ts.map +1 -0
- package/dist/{SyncedTable.js → SyncedTable/SyncedTable.js} +8 -53
- package/dist/SyncedTable/getMultiSyncSubscription.d.ts +12 -0
- package/dist/SyncedTable/getMultiSyncSubscription.d.ts.map +1 -0
- package/dist/SyncedTable/getMultiSyncSubscription.js +58 -0
- package/dist/SyncedTable/getSingleSyncSubscription.d.ts +1 -0
- package/dist/SyncedTable/getSingleSyncSubscription.d.ts.map +1 -0
- package/dist/SyncedTable/getSingleSyncSubscription.js +1 -0
- package/dist/index.js +1 -1
- package/dist/index.no-sync.js +1 -1
- package/dist/prostgles-full-cdn.js +1 -1
- package/dist/prostgles-full.d.ts +1 -1
- package/dist/prostgles-full.js +1 -1
- package/dist/prostgles.d.ts +18 -4
- package/dist/prostgles.d.ts.map +1 -1
- package/dist/prostgles.js +54 -17
- package/dist/react-hooks.d.ts +1 -0
- package/dist/react-hooks.d.ts.map +1 -1
- package/dist/react-hooks.js +11 -1
- package/dist/typeTests.js +3 -1
- package/lib/{SyncedTable.ts → SyncedTable/SyncedTable.ts} +28 -77
- package/lib/SyncedTable/getMultiSyncSubscription.ts +67 -0
- package/lib/SyncedTable/getSingleSyncSubscription.ts +0 -0
- package/lib/prostgles-full-cdn.ts +1 -1
- package/lib/prostgles-full.ts +1 -1
- package/lib/prostgles.ts +72 -31
- package/lib/react-hooks.ts +9 -2
- package/lib/typeTests.ts +2 -1
- package/package.json +6 -2
- package/tests/package-lock.json +6 -2
- package/dist/SyncedTable.d.ts.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FieldFilter, WAL, AnyObject, ClientSyncHandles, SyncBatchParams, EqualityFilter } from "prostgles-types";
|
|
2
|
-
import { DBHandlerClient } from "
|
|
1
|
+
import { FieldFilter, WAL, WALItem, AnyObject, ClientSyncHandles, SyncBatchParams, TableHandler, EqualityFilter } from "prostgles-types";
|
|
2
|
+
import { DBHandlerClient } from "../prostgles";
|
|
3
3
|
export declare const debug: any;
|
|
4
4
|
export type SyncOptions = Partial<SyncedTableOptions> & {
|
|
5
5
|
select?: FieldFilter;
|
|
@@ -46,7 +46,7 @@ export type ItemUpdated = ItemUpdate & {
|
|
|
46
46
|
};
|
|
47
47
|
export type CloneSync<T extends AnyObject, Full extends boolean> = (onChange: SingleChangeListener<T, Full>, onError?: (error: any) => void) => SingleSyncHandles<T, Full>;
|
|
48
48
|
export type CloneMultiSync<T extends AnyObject> = (onChange: MultiChangeListener<T>, onError?: (error: any) => void) => MultiSyncHandles<T>;
|
|
49
|
-
type $UpdateOpts = {
|
|
49
|
+
export type $UpdateOpts = {
|
|
50
50
|
deepMerge: boolean;
|
|
51
51
|
};
|
|
52
52
|
type DeepPartial<T> = T extends Array<any> ? T : T extends object ? {
|
|
@@ -93,6 +93,7 @@ declare const STORAGE_TYPES: {
|
|
|
93
93
|
};
|
|
94
94
|
export type MultiChangeListener<T extends AnyObject = AnyObject> = (items: SyncDataItem<T>[], delta: DeepPartial<T>[]) => any;
|
|
95
95
|
export type SingleChangeListener<T extends AnyObject = AnyObject, Full extends boolean = false> = (item: SyncDataItem<T, Full>, delta?: DeepPartial<T>) => any;
|
|
96
|
+
type StorageType = keyof typeof STORAGE_TYPES;
|
|
96
97
|
export type SyncedTableOptions = {
|
|
97
98
|
name: string;
|
|
98
99
|
filter?: AnyObject;
|
|
@@ -102,9 +103,9 @@ export type SyncedTableOptions = {
|
|
|
102
103
|
pushDebounce?: number;
|
|
103
104
|
skipFirstTrigger?: boolean;
|
|
104
105
|
select?: "*" | {};
|
|
105
|
-
storageType
|
|
106
|
-
patchText
|
|
107
|
-
patchJSON
|
|
106
|
+
storageType?: StorageType;
|
|
107
|
+
patchText?: boolean;
|
|
108
|
+
patchJSON?: boolean;
|
|
108
109
|
onReady: () => any;
|
|
109
110
|
skipIncomingDeltaCheck?: boolean;
|
|
110
111
|
onDebug?: (event: SyncDebugEvent, tbl: SyncedTable) => Promise<void>;
|
|
@@ -141,7 +142,7 @@ export declare class SyncedTable {
|
|
|
141
142
|
get singleSubscriptions(): SubscriptionSingle[];
|
|
142
143
|
dbSync?: DbTableSync;
|
|
143
144
|
items: AnyObject[];
|
|
144
|
-
storageType
|
|
145
|
+
storageType?: StorageType;
|
|
145
146
|
itemsObj: AnyObject;
|
|
146
147
|
patchText: boolean;
|
|
147
148
|
patchJSON: boolean;
|
|
@@ -154,15 +155,15 @@ export declare class SyncedTable {
|
|
|
154
155
|
* This will send less data to server
|
|
155
156
|
* @param walData
|
|
156
157
|
*/
|
|
157
|
-
|
|
158
|
-
static create(opts: SyncedTableOptions): Promise<SyncedTable>;
|
|
158
|
+
updatePatches: (walData: WALItem[]) => Promise<any[]>;
|
|
159
|
+
static create(opts: Omit<SyncedTableOptions, "onReady">): Promise<SyncedTable>;
|
|
159
160
|
/**
|
|
160
161
|
* Returns a sync handler to all records within the SyncedTable instance
|
|
161
162
|
* @param onChange change listener <(items: object[], delta: object[]) => any >
|
|
162
163
|
* @param handlesOnData If true then $upsert and $unsync handles will be added on each data item. True by default;
|
|
163
164
|
*/
|
|
164
165
|
sync<T extends AnyObject = AnyObject>(onChange: MultiChangeListener<T>, handlesOnData?: boolean): MultiSyncHandles<T>;
|
|
165
|
-
|
|
166
|
+
makeSingleSyncHandles<T extends AnyObject = AnyObject, Full extends boolean = false>(idObj: Partial<T>, onChange: SingleChangeListener<T, Full> | MultiChangeListener<T>): SingleSyncHandles<T, Full>;
|
|
166
167
|
/**
|
|
167
168
|
* Returns a sync handler to a specific record within the SyncedTable instance
|
|
168
169
|
* @param idObj object containing the target id_fields properties
|
|
@@ -174,28 +175,28 @@ export declare class SyncedTable {
|
|
|
174
175
|
* Notifies multi subs with ALL data + deltas. Attaches handles on data if required
|
|
175
176
|
* @param newData -> updates. Must include id_fields + updates
|
|
176
177
|
*/
|
|
177
|
-
|
|
178
|
+
_notifySubscribers: (changes?: Pick<ItemUpdated, "idObj" | "newItem" | "delta">[]) => void;
|
|
178
179
|
unsubscribe: (onChange: Function) => string;
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
getIdStr(d: AnyObject): string;
|
|
181
|
+
getIdObj(d: AnyObject): AnyObject;
|
|
182
|
+
getRowSyncObj(d: AnyObject): AnyObject;
|
|
182
183
|
unsync: () => void;
|
|
183
184
|
destroy: () => void;
|
|
184
|
-
|
|
185
|
-
|
|
185
|
+
matchesFilter(item: AnyObject): boolean;
|
|
186
|
+
matchesIdObj(a: AnyObject, b: AnyObject): boolean;
|
|
186
187
|
/**
|
|
187
188
|
* Returns properties that are present in {n} and are different to {o}
|
|
188
189
|
* @param o current full data item
|
|
189
190
|
* @param n new data item
|
|
190
191
|
*/
|
|
191
|
-
|
|
192
|
+
getDelta(o: AnyObject, n: AnyObject): AnyObject;
|
|
192
193
|
deleteAll(): void;
|
|
193
|
-
|
|
194
|
-
|
|
194
|
+
get tableHandler(): Pick<TableHandler, "update" | "updateBatch" | "delete"> | undefined;
|
|
195
|
+
delete: (item: AnyObject, from_server?: boolean) => Promise<boolean>;
|
|
195
196
|
/**
|
|
196
197
|
* Ensures that all object keys match valid column names
|
|
197
198
|
*/
|
|
198
|
-
|
|
199
|
+
checkItemCols: (item: AnyObject) => void;
|
|
199
200
|
/**
|
|
200
201
|
* Upserts data locally -> notify subs -> sends to server if required
|
|
201
202
|
* synced_field is populated if data is not from server
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncedTable.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/SyncedTable.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.quickClone = exports.SyncedTable = exports.debug = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
+
const getMultiSyncSubscription_1 = require("./getMultiSyncSubscription");
|
|
5
6
|
const DEBUG_KEY = "DEBUG_SYNCEDTABLE";
|
|
6
7
|
const hasWnd = typeof window !== "undefined";
|
|
7
8
|
const debug = function (...args) {
|
|
@@ -560,56 +561,10 @@ class SyncedTable {
|
|
|
560
561
|
* @param handlesOnData If true then $upsert and $unsync handles will be added on each data item. True by default;
|
|
561
562
|
*/
|
|
562
563
|
sync(onChange, handlesOnData = true) {
|
|
563
|
-
const handles = {
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
getItems: () => { return this.getItems(); },
|
|
568
|
-
$upsert: (newData) => {
|
|
569
|
-
if (newData) {
|
|
570
|
-
const prepareOne = (d) => {
|
|
571
|
-
return ({
|
|
572
|
-
idObj: this.getIdObj(d),
|
|
573
|
-
delta: d
|
|
574
|
-
});
|
|
575
|
-
};
|
|
576
|
-
if (Array.isArray(newData)) {
|
|
577
|
-
this.upsert(newData.map(d => prepareOne(d)));
|
|
578
|
-
}
|
|
579
|
-
else {
|
|
580
|
-
this.upsert([prepareOne(newData)]);
|
|
581
|
-
}
|
|
582
|
-
}
|
|
583
|
-
// this.upsert(newData, newData)
|
|
584
|
-
}
|
|
585
|
-
}, sub = {
|
|
586
|
-
_onChange: onChange,
|
|
587
|
-
handlesOnData,
|
|
588
|
-
handles,
|
|
589
|
-
notify: (_allItems, _allDeltas) => {
|
|
590
|
-
let allItems = [..._allItems], allDeltas = [..._allDeltas];
|
|
591
|
-
if (handlesOnData) {
|
|
592
|
-
allItems = allItems.map((item, i) => {
|
|
593
|
-
const getItem = (d, idObj) => ({
|
|
594
|
-
...d,
|
|
595
|
-
...this.makeSingleSyncHandles(idObj, onChange),
|
|
596
|
-
$get: () => getItem(this.getItem(idObj).data, idObj),
|
|
597
|
-
$find: (idObject) => getItem(this.getItem(idObject).data, idObject),
|
|
598
|
-
$update: (newData, opts) => {
|
|
599
|
-
return this.upsert([{ idObj, delta: newData, opts }]).then(r => true);
|
|
600
|
-
},
|
|
601
|
-
$delete: async () => {
|
|
602
|
-
return this.delete(idObj);
|
|
603
|
-
},
|
|
604
|
-
$cloneMultiSync: (onChange) => this.sync(onChange, handlesOnData)
|
|
605
|
-
});
|
|
606
|
-
const idObj = this.getIdObj(item);
|
|
607
|
-
return getItem(item, idObj);
|
|
608
|
-
});
|
|
609
|
-
}
|
|
610
|
-
return onChange(allItems, allDeltas);
|
|
611
|
-
}
|
|
612
|
-
};
|
|
564
|
+
const { sub, handles } = getMultiSyncSubscription_1.getMultiSyncSubscription.bind(this)({
|
|
565
|
+
onChange: onChange,
|
|
566
|
+
handlesOnData
|
|
567
|
+
});
|
|
613
568
|
this.multiSubscriptions.push(sub);
|
|
614
569
|
if (!this.skipFirstTrigger) {
|
|
615
570
|
setTimeout(() => {
|
|
@@ -713,7 +668,7 @@ class SyncedTable {
|
|
|
713
668
|
return Boolean(a && b && !this.id_fields.sort().find(k => a[k] !== b[k]));
|
|
714
669
|
}
|
|
715
670
|
// TODO: offline-first deletes if allow_delete = true
|
|
716
|
-
//
|
|
671
|
+
// setDeleted(idObj, fullArray){
|
|
717
672
|
// let deleted: object[] = [];
|
|
718
673
|
// if(fullArray) deleted = fullArray;
|
|
719
674
|
// else {
|
|
@@ -722,11 +677,11 @@ class SyncedTable {
|
|
|
722
677
|
// }
|
|
723
678
|
// if(hasWnd) window.localStorage.setItem(this.name + "_$$psql$$_deleted", <any>deleted);
|
|
724
679
|
// }
|
|
725
|
-
//
|
|
680
|
+
// getDeleted(){
|
|
726
681
|
// const delStr = if(hasWnd) window.localStorage.getItem(this.name + "_$$psql$$_deleted") || '[]';
|
|
727
682
|
// return JSON.parse(delStr);
|
|
728
683
|
// }
|
|
729
|
-
//
|
|
684
|
+
// syncDeleted = async () => {
|
|
730
685
|
// try {
|
|
731
686
|
// await Promise.all(this.getDeleted().map(async idObj => {
|
|
732
687
|
// return this.db[this.name].delete(idObj);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AnyObject } from "prostgles-types";
|
|
2
|
+
import { MultiChangeListener, MultiSyncHandles, SubscriptionMulti, SyncedTable } from "./SyncedTable";
|
|
3
|
+
type Args = {
|
|
4
|
+
onChange: MultiChangeListener<AnyObject>;
|
|
5
|
+
handlesOnData: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare function getMultiSyncSubscription(this: SyncedTable, { onChange, handlesOnData }: Args): {
|
|
8
|
+
sub: SubscriptionMulti<AnyObject>;
|
|
9
|
+
handles: MultiSyncHandles<AnyObject>;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=getMultiSyncSubscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMultiSyncSubscription.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/getMultiSyncSubscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAe,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnH,KAAK,IAAI,GAAG;IACV,QAAQ,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACzC,aAAa,EAAE,OAAO,CAAC;CACxB,CAAA;AACD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI;;;EA2D5F"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMultiSyncSubscription = void 0;
|
|
4
|
+
function getMultiSyncSubscription({ onChange, handlesOnData }) {
|
|
5
|
+
const handles = {
|
|
6
|
+
$unsync: () => {
|
|
7
|
+
return this.unsubscribe(onChange);
|
|
8
|
+
},
|
|
9
|
+
getItems: () => { return this.getItems(); },
|
|
10
|
+
$upsert: (newData) => {
|
|
11
|
+
if (!newData) {
|
|
12
|
+
throw "No data provided for upsert";
|
|
13
|
+
}
|
|
14
|
+
const prepareOne = (d) => {
|
|
15
|
+
return ({
|
|
16
|
+
idObj: this.getIdObj(d),
|
|
17
|
+
delta: d
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
if (Array.isArray(newData)) {
|
|
21
|
+
this.upsert(newData.map(d => prepareOne(d)));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
this.upsert([prepareOne(newData)]);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const sub = {
|
|
29
|
+
_onChange: onChange,
|
|
30
|
+
handlesOnData,
|
|
31
|
+
handles,
|
|
32
|
+
notify: (_allItems, _allDeltas) => {
|
|
33
|
+
let allItems = [..._allItems], allDeltas = [..._allDeltas];
|
|
34
|
+
if (handlesOnData) {
|
|
35
|
+
allItems = allItems.map((item, i) => {
|
|
36
|
+
const getItem = (d, idObj) => ({
|
|
37
|
+
...d,
|
|
38
|
+
...this.makeSingleSyncHandles(idObj, onChange),
|
|
39
|
+
$get: () => getItem(this.getItem(idObj).data, idObj),
|
|
40
|
+
$find: (idObject) => getItem(this.getItem(idObject).data, idObject),
|
|
41
|
+
$update: (newData, opts) => {
|
|
42
|
+
return this.upsert([{ idObj, delta: newData, opts }]).then(r => true);
|
|
43
|
+
},
|
|
44
|
+
$delete: async () => {
|
|
45
|
+
return this.delete(idObj);
|
|
46
|
+
},
|
|
47
|
+
$cloneMultiSync: (onChange) => this.sync(onChange, handlesOnData)
|
|
48
|
+
});
|
|
49
|
+
const idObj = this.getIdObj(item);
|
|
50
|
+
return getItem(item, idObj);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return onChange(allItems, allDeltas);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
return { sub, handles };
|
|
57
|
+
}
|
|
58
|
+
exports.getMultiSyncSubscription = getMultiSyncSubscription;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=getSingleSyncSubscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getSingleSyncSubscription.d.ts","sourceRoot":"","sources":["../../lib/SyncedTable/getSingleSyncSubscription.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|