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.
@@ -1,5 +1,5 @@
1
- import { FieldFilter, WAL, AnyObject, ClientSyncHandles, SyncBatchParams, EqualityFilter } from "prostgles-types";
2
- import { DBHandlerClient } from "./prostgles";
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: keyof typeof STORAGE_TYPES;
106
- patchText: boolean;
107
- patchJSON: boolean;
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: string;
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
- private updatePatches;
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
- private makeSingleSyncHandles;
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
- private _notifySubscribers;
178
+ _notifySubscribers: (changes?: Pick<ItemUpdated, "idObj" | "newItem" | "delta">[]) => void;
178
179
  unsubscribe: (onChange: Function) => string;
179
- private getIdStr;
180
- private getIdObj;
181
- private getRowSyncObj;
180
+ getIdStr(d: AnyObject): string;
181
+ getIdObj(d: AnyObject): AnyObject;
182
+ getRowSyncObj(d: AnyObject): AnyObject;
182
183
  unsync: () => void;
183
184
  destroy: () => void;
184
- private matchesFilter;
185
- private matchesIdObj;
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
- private getDelta;
192
+ getDelta(o: AnyObject, n: AnyObject): AnyObject;
192
193
  deleteAll(): void;
193
- private get tableHandler();
194
- private delete;
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
- private checkItemCols;
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":"AAAA,OAAO,EAAE,WAAW,EAAyB,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,eAAe,EAAqC,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnM,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAK/C,eAAO,MAAM,KAAK,EAAE,GAInB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG;IACtD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAA;AACD,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,GAAG;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,iBAAiB,CAAC;IACjC,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAA;AACrF,MAAM,MAAM,IAAI,CACd,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,EACrG,MAAM,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,IAC9D,CACF,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,EAC9B,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,KAC3B,OAAO,CAAC;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;CACrB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAErP,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB,CAAA;AACD,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG;IACrC,OAAO,EAAE,GAAG,CAAC;IACb,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;IACzD,WAAW,EAAE,OAAO,CAAC;CACtB,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,IAAI,SAAS,OAAO,IAAI,CACjE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,EACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,KAC3B,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAEhC,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,IAAI,CAChD,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,KAC3B,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAEzB,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AACD,KAAK,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG;KACjE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,GAAG,CAAC,CAAC;AAEN;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,IAAI,SAAS,OAAO,GAAG,KAAK,IAAI;IAC7F,IAAI,EAAE,MAAM,CAAC,CAAC;IACd,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC9C,OAAO,EAAE,MAAM,GAAG,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,SAAS,WAAW,EAAE,OAAO,EAAE,IAAI,SAAS;QAAE,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,GAAG,CAAC;IACjI,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/B,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CACpC,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,IAAI,SAAS,OAAO,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,IAAI,GAAG,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAErL,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,SAAS,IAAI;IAClD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC;IAC/B,QAAQ,EAAE,MAAM,SAAS,EAAE,CAAC;CAC7B,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,IAAI,SAAS,OAAO,GAAG,KAAK,IAAI;IAC9F,SAAS,EAAE,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACxC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;CACtC,CAAA;AACD,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI;IAC/D,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;CAC/B,CAAA;AAED,QAAA,MAAM,aAAa;;;;CAIT,CAAC;AAEX,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC;AAC9H,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,IAAI,SAAS,OAAO,GAAG,KAAK,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAC/J,KAAK,WAAW,GAAG,MAAM,OAAO,aAAa,CAAC;AAC9C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,EAAE,EAAE,GAAG,CAAC;IACR,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAG1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,CAAC;IACnB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,KAAK,IAAI,CAAC;CACzF,CAAC;AAEF,qBAAa,WAAW;IAEtB,EAAE,EAAE,eAAe,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAO;IACvB,UAAU,EAAE,MAAM,CAAM;IACxB,gBAAgB,EAAE,OAAO,CAAS;IAElC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAM;IAEpD,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV,SAAS,CAAC,EAAE,GAAG,CAAC;IAEhB,mBAAmB,EAAE,iBAAiB,EAAE,CAAM;IAC9C,oBAAoB,EAAE,kBAAkB,EAAE,CAAM;IAEhD;;OAEG;IACH,IAAI,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAGhD;IACD,IAAI,kBAAkB,IAAI,iBAAiB,EAAE,CAE5C;IAED,IAAI,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAGlD;IACD,IAAI,mBAAmB,IAAI,kBAAkB,EAAE,CAE9C;IAED,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,SAAS,EAAE,CAAM;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAM;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAS;IAC1B,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;gBAEjF,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAwB,EAAE,MAAY,EAAE,WAAsB,EAAE,SAAiB,EAAE,SAAiB,EAAE,OAAO,EAAE,EAAE,kBAAkB;IAkK/L;;;;OAIG;IACH,aAAa,YAAmB,OAAO,EAAE,oBAyDxC;IAED,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAiB9E;;;;OAIG;IACH,IAAI,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,aAAa,UAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC;IAgBlH,qBAAqB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,IAAI,SAAS,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC;IAkCrM;;;;;OAKG;IACH,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,IAAI,SAAS,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,aAAa,UAAO,GAAG,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC;IAoCpL;;;OAGG;IACH,kBAAkB,aAAa,KAAK,WAAW,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,EAAE,UAuDhF;IAED,WAAW,aAAc,QAAQ,YAKhC;IAED,QAAQ,CAAC,CAAC,EAAE,SAAS;IAGrB,QAAQ,CAAC,CAAC,EAAE,SAAS;IAOrB,aAAa,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS;IAQtC,MAAM,aAEL;IAED,OAAO,aAON;IAED,aAAa,CAAC,IAAI,EAAE,SAAS;IAU7B,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS;IA+BvC;;;;OAIG;IACH,QAAQ,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,SAAS;IAsB/C,SAAS;IAIT,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,aAAa,GAAG,QAAQ,CAAC,GAAG,SAAS,CAOtF;IAED,MAAM,SAAgB,SAAS,6CAS9B;IAED;;OAEG;IACH,aAAa,SAAU,SAAS,UAU/B;IAED;;;;;OAKG;IACH,MAAM,UAAiB,UAAU,EAAE,4BAAwB,QAAQ,GAAG,CAAC,CA8HtE;IAGD,OAAO,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAetE;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,GAAE,OAAe,EAAE,UAAU,GAAE,OAAe;IA4B7G;;;OAGG;IACH,QAAQ,WAAY,SAAS,EAAE,KAAG,IAAI,CAarC;IAED;;OAEG;IACH,QAAQ,6CAwCP;IAED;;;OAGG;IACH,QAAQ,+CAA+C,eAAe;;QAarE;CACF;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,OAAO,KAAA,EAAE,OAAO,KAAA,OAkBjD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAevC"}
@@ -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
- $unsync: () => {
565
- return this.unsubscribe(onChange);
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
- // private setDeleted(idObj, fullArray){
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
- // private getDeleted(){
680
+ // getDeleted(){
726
681
  // const delStr = if(hasWnd) window.localStorage.getItem(this.name + "_$$psql$$_deleted") || '[]';
727
682
  // return JSON.parse(delStr);
728
683
  // }
729
- // private syncDeleted = async () => {
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";