@slimr/dbsync 0.0.7 → 0.0.8
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/README.md +2 -0
- package/cjs/DbRepository.d.ts +8 -0
- package/cjs/DbRepository.js +10 -0
- package/cjs/DbRepository.js.map +1 -1
- package/cjs/DbSync.d.ts +2 -0
- package/cjs/DbSync.js +8 -1
- package/cjs/DbSync.js.map +1 -1
- package/cjs/DbTxRepository.d.ts +7 -0
- package/cjs/DbTxRepository.js +9 -0
- package/cjs/DbTxRepository.js.map +1 -1
- package/cjs/internal/DbTransaction.d.ts +9 -0
- package/cjs/internal/DbTransaction.js +11 -0
- package/cjs/internal/DbTransaction.js.map +1 -1
- package/cjs/internal/StorageManager.js +30 -3
- package/cjs/internal/StorageManager.js.map +1 -1
- package/esm/DbRepository.d.ts +8 -0
- package/esm/DbRepository.js +10 -0
- package/esm/DbRepository.js.map +1 -1
- package/esm/DbSync.d.ts +2 -0
- package/esm/DbSync.js +8 -1
- package/esm/DbSync.js.map +1 -1
- package/esm/DbTxRepository.d.ts +7 -0
- package/esm/DbTxRepository.js +9 -0
- package/esm/DbTxRepository.js.map +1 -1
- package/esm/internal/DbTransaction.d.ts +9 -0
- package/esm/internal/DbTransaction.js +11 -0
- package/esm/internal/DbTransaction.js.map +1 -1
- package/esm/internal/StorageManager.js +30 -3
- package/esm/internal/StorageManager.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -97,6 +97,7 @@ const tx = db.getTransaction();
|
|
|
97
97
|
|
|
98
98
|
tx.put('posts', { id: '1', content: 'Atomic write 1' });
|
|
99
99
|
tx.put('posts', { id: '2', content: 'Atomic write 2' });
|
|
100
|
+
tx.patch('posts', { id: '2', content: 'Atomic write 2b' });
|
|
100
101
|
tx.delete('users', 'bad_user');
|
|
101
102
|
|
|
102
103
|
// Writes hit the database together
|
|
@@ -121,6 +122,7 @@ class Tx {
|
|
|
121
122
|
const tx = new Tx();
|
|
122
123
|
tx.posts.put({ id: '1', content: 'Atomic write 1' });
|
|
123
124
|
tx.posts.put({ id: '2', content: 'Atomic write 2' });
|
|
125
|
+
tx.posts.patch({ id: '2', content: 'Atomic write 2b' });
|
|
124
126
|
tx.users.delete('bad_user');
|
|
125
127
|
|
|
126
128
|
// Writes hit the database together
|
package/cjs/DbRepository.d.ts
CHANGED
|
@@ -50,6 +50,14 @@ export declare class DbRepository<T> {
|
|
|
50
50
|
* @returns A promise resolving when the deletion is complete.
|
|
51
51
|
*/
|
|
52
52
|
delete(key: string | number): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Partially updates an existing record in the object store.
|
|
55
|
+
*
|
|
56
|
+
* @param value The partial object payload.
|
|
57
|
+
* @param key An optional explicit primary key.
|
|
58
|
+
* @returns A promise resolving to the final patched record.
|
|
59
|
+
*/
|
|
60
|
+
patch(value: Partial<T>, key?: string | number): Promise<T>;
|
|
53
61
|
/**
|
|
54
62
|
* Discards all records present in the object store.
|
|
55
63
|
*
|
package/cjs/DbRepository.js
CHANGED
|
@@ -65,6 +65,16 @@ class DbRepository {
|
|
|
65
65
|
async delete(key) {
|
|
66
66
|
return this.db.delete(this.storeName, key);
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Partially updates an existing record in the object store.
|
|
70
|
+
*
|
|
71
|
+
* @param value The partial object payload.
|
|
72
|
+
* @param key An optional explicit primary key.
|
|
73
|
+
* @returns A promise resolving to the final patched record.
|
|
74
|
+
*/
|
|
75
|
+
async patch(value, key) {
|
|
76
|
+
return this.db.patch(this.storeName, value, key);
|
|
77
|
+
}
|
|
68
78
|
/**
|
|
69
79
|
* Discards all records present in the object store.
|
|
70
80
|
*
|
package/cjs/DbRepository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbRepository.js","sourceRoot":"","sources":["../src/DbRepository.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,YAAY;IAQb;IACM;IARjB;;;;;OAKG;IACH,YACW,EAAU,EACJ,SAAiB;QADvB,OAAE,GAAF,EAAE,CAAQ;QACJ,cAAS,GAAT,SAAS,CAAQ;IAC/B,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAmB;QACjC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,KAAiB,EAAE,GAAqB;QACjD,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,KAAQ,EAAE,GAAqB;QACxC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,GAAoB;QAChC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACV,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;CACD;
|
|
1
|
+
{"version":3,"file":"DbRepository.js","sourceRoot":"","sources":["../src/DbRepository.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,YAAY;IAQb;IACM;IARjB;;;;;OAKG;IACH,YACW,EAAU,EACJ,SAAiB;QADvB,OAAE,GAAF,EAAE,CAAQ;QACJ,cAAS,GAAT,SAAS,CAAQ;IAC/B,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAmB;QACjC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,KAAiB,EAAE,GAAqB;QACjD,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,KAAQ,EAAE,GAAqB;QACxC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,GAAoB;QAChC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,KAAiB,EAAE,GAAqB;QACnD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACV,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;CACD;AAlFD,oCAkFC"}
|
package/cjs/DbSync.d.ts
CHANGED
|
@@ -52,6 +52,8 @@ export declare class DbSync {
|
|
|
52
52
|
put<T>(storeName: string, value: any, key?: string | number): Promise<T>;
|
|
53
53
|
/** Deletes a record from the given object store. */
|
|
54
54
|
delete(storeName: string, key: string | number): Promise<void>;
|
|
55
|
+
/** Partially updates an existing record in the given object store. */
|
|
56
|
+
patch<T>(storeName: string, value: Partial<T>, key?: string | number): Promise<T>;
|
|
55
57
|
/** Clears all records from the given object store. */
|
|
56
58
|
clear(storeName: string): Promise<void>;
|
|
57
59
|
/** Subscribes to store update notifications. */
|
package/cjs/DbSync.js
CHANGED
|
@@ -33,7 +33,9 @@ class DbSync {
|
|
|
33
33
|
const adapter = config.adapter;
|
|
34
34
|
const onSchemaChange = () => this.onSchemaChangeDetected();
|
|
35
35
|
this.storage = new StorageManager_js_1.StorageManager(config, this.events, onSchemaChange);
|
|
36
|
-
this.authManager = new AuthManager_js_1.AuthManager(adapter, this.storage, () => {
|
|
36
|
+
this.authManager = new AuthManager_js_1.AuthManager(adapter, this.storage, () => {
|
|
37
|
+
void this.stop();
|
|
38
|
+
});
|
|
37
39
|
this.syncEngine = new SyncEngine_js_1.SyncEngine(config, this.syncInterval, this.events, this.storage, this.authManager, adapter, onSchemaChange);
|
|
38
40
|
}
|
|
39
41
|
/** Returns a fresh RFC-4122 UUID. */
|
|
@@ -74,6 +76,11 @@ class DbSync {
|
|
|
74
76
|
async delete(storeName, key) {
|
|
75
77
|
await this.storage.executeTransaction([{ type: "delete", storeName, key }]);
|
|
76
78
|
}
|
|
79
|
+
/** Partially updates an existing record in the given object store. */
|
|
80
|
+
async patch(storeName, value, key) {
|
|
81
|
+
await this.storage.executeTransaction([{ type: "patch", storeName, value, key }]);
|
|
82
|
+
return value;
|
|
83
|
+
}
|
|
77
84
|
/** Clears all records from the given object store. */
|
|
78
85
|
async clear(storeName) {
|
|
79
86
|
await this.storage.executeTransaction([{ type: "clear", storeName }]);
|
package/cjs/DbSync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbSync.js","sourceRoot":"","sources":["../src/DbSync.ts"],"names":[],"mappings":";;;AACA,8DAAuD;AACvD,wDAAiE;AACjE,oEAA6D;AAC7D,4DAAqD;AACrD,kDAA6C;AAc7C;;GAEG;AACH,MAAa,MAAM;IAClB,oEAAoE;IAC7D,YAAY,GAAG,IAAI,CAAA;IAC1B,uDAAuD;IAChD,MAAM,CAAc;IAE3B,gEAAgE;IACxD,MAAM,CAAU;IACxB,qEAAqE;IAC9D,OAAO,CAAgB,CAAC,oDAAoD;IACnF,0DAA0D;IAClD,UAAU,CAAY;IAC9B,qEAAqE;IAC7D,WAAW,CAAa;IAEhC;;;;OAIG;IACH,YAAY,MAAoB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAQ,EAAE,CAAA;QAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAE9B,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAE1D,IAAI,CAAC,OAAO,GAAG,IAAI,kCAAc,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAEtE,IAAI,CAAC,WAAW,GAAG,IAAI,4BAAW,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"DbSync.js","sourceRoot":"","sources":["../src/DbSync.ts"],"names":[],"mappings":"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"}
|
package/cjs/DbTxRepository.d.ts
CHANGED
|
@@ -34,6 +34,13 @@ export declare class DbTxRepository<T> {
|
|
|
34
34
|
* @param key The primary key of the record to delete.
|
|
35
35
|
*/
|
|
36
36
|
delete(key: string | number): void;
|
|
37
|
+
/**
|
|
38
|
+
* Queues a partial update operation for an existing record.
|
|
39
|
+
*
|
|
40
|
+
* @param value The object partial payload to patch.
|
|
41
|
+
* @param key An optional explicit primary key.
|
|
42
|
+
*/
|
|
43
|
+
patch(value: Partial<T>, key?: string | number): void;
|
|
37
44
|
/**
|
|
38
45
|
* Queues an operation to remove all records from the object store.
|
|
39
46
|
*/
|
package/cjs/DbTxRepository.js
CHANGED
|
@@ -45,6 +45,15 @@ class DbTxRepository {
|
|
|
45
45
|
delete(key) {
|
|
46
46
|
this.tx.delete(this.storeName, key);
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Queues a partial update operation for an existing record.
|
|
50
|
+
*
|
|
51
|
+
* @param value The object partial payload to patch.
|
|
52
|
+
* @param key An optional explicit primary key.
|
|
53
|
+
*/
|
|
54
|
+
patch(value, key) {
|
|
55
|
+
this.tx.patch(this.storeName, value, key);
|
|
56
|
+
}
|
|
48
57
|
/**
|
|
49
58
|
* Queues an operation to remove all records from the object store.
|
|
50
59
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbTxRepository.js","sourceRoot":"","sources":["../src/DbTxRepository.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,cAAc;IAQf;IACM;IARjB;;;;;OAKG;IACH,YACW,EAAiB,EACX,SAAiB;QADvB,OAAE,GAAF,EAAE,CAAe;QACX,cAAS,GAAT,SAAS,CAAQ;IAC/B,CAAC;IAEJ;;;;;OAKG;IACH,GAAG,CAAC,KAAiB,EAAE,GAAqB;QAC3C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,KAAQ,EAAE,GAAqB;QAClC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,GAAoB;QAC1B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;CACD;
|
|
1
|
+
{"version":3,"file":"DbTxRepository.js","sourceRoot":"","sources":["../src/DbTxRepository.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,MAAa,cAAc;IAQf;IACM;IARjB;;;;;OAKG;IACH,YACW,EAAiB,EACX,SAAiB;QADvB,OAAE,GAAF,EAAE,CAAe;QACX,cAAS,GAAT,SAAS,CAAQ;IAC/B,CAAC;IAEJ;;;;;OAKG;IACH,GAAG,CAAC,KAAiB,EAAE,GAAqB;QAC3C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,KAAQ,EAAE,GAAqB;QAClC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,GAAoB;QAC1B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAiB,EAAE,GAAqB;QAC7C,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;CACD;AAzDD,wCAyDC"}
|
|
@@ -34,6 +34,15 @@ export declare class DbTransaction {
|
|
|
34
34
|
* @param key An optional explicit primary key.
|
|
35
35
|
*/
|
|
36
36
|
put(storeName: string, value: any, key?: string | number): void;
|
|
37
|
+
/**
|
|
38
|
+
* Queues a partial update of an existing record.
|
|
39
|
+
* Fails if the primary key does not already exist in the database.
|
|
40
|
+
*
|
|
41
|
+
* @param storeName The name of the target object store.
|
|
42
|
+
* @param value The partial object payload containing the primary key and fields to update.
|
|
43
|
+
* @param key An optional explicit primary key.
|
|
44
|
+
*/
|
|
45
|
+
patch(storeName: string, value: any, key?: string | number): void;
|
|
37
46
|
/**
|
|
38
47
|
* Queues a deletion operation.
|
|
39
48
|
*
|
|
@@ -44,6 +44,17 @@ class DbTransaction {
|
|
|
44
44
|
put(storeName, value, key) {
|
|
45
45
|
this.operations.push({ type: "put", storeName, value, key });
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Queues a partial update of an existing record.
|
|
49
|
+
* Fails if the primary key does not already exist in the database.
|
|
50
|
+
*
|
|
51
|
+
* @param storeName The name of the target object store.
|
|
52
|
+
* @param value The partial object payload containing the primary key and fields to update.
|
|
53
|
+
* @param key An optional explicit primary key.
|
|
54
|
+
*/
|
|
55
|
+
patch(storeName, value, key) {
|
|
56
|
+
this.operations.push({ type: "patch", storeName, value, key });
|
|
57
|
+
}
|
|
47
58
|
/**
|
|
48
59
|
* Queues a deletion operation.
|
|
49
60
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbTransaction.js","sourceRoot":"","sources":["../../src/internal/DbTransaction.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C;;;;GAIG;AACH,MAAa,aAAa;IAmBL;IAlBpB;;;OAGG;IACK,UAAU,GAKZ,EAAE,CAAA;IAER;;;;;;OAMG;IACH,YAAoB,QAAuC;QAAvC,aAAQ,GAAR,QAAQ,CAA+B;IAAG,CAAC;IAE/D;;;;;;OAMG;IACH,GAAG,CAAC,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAiB,EAAE,GAAoB;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;IACzD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAiB;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;IACnD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,MAAM;QACL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IACrB,CAAC;CACD;
|
|
1
|
+
{"version":3,"file":"DbTransaction.js","sourceRoot":"","sources":["../../src/internal/DbTransaction.ts"],"names":[],"mappings":";AAAA,8CAA8C;;;AAE9C;;;;GAIG;AACH,MAAa,aAAa;IAmBL;IAlBpB;;;OAGG;IACK,UAAU,GAKZ,EAAE,CAAA;IAER;;;;;;OAMG;IACH,YAAoB,QAAuC;QAAvC,aAAQ,GAAR,QAAQ,CAA+B;IAAG,CAAC;IAE/D;;;;;;OAMG;IACH,GAAG,CAAC,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAiB,EAAE,GAAoB;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;IACzD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAiB;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;IACnD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,MAAM;QACL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IACrB,CAAC;CACD;AA1FD,sCA0FC"}
|
|
@@ -93,6 +93,28 @@ class StorageManager {
|
|
|
93
93
|
"dirtyQueue",
|
|
94
94
|
"deletedQueue",
|
|
95
95
|
]);
|
|
96
|
+
// Pre-fetch objects for patch operations using a separate read-only transaction.
|
|
97
|
+
// A standard IndexedDB transaction auto-commits if we await inside it, so we must
|
|
98
|
+
// gather everything into memory synchronously before opening the main readwrite transaction.
|
|
99
|
+
const patchOperations = operations.filter((o) => o.type === "patch");
|
|
100
|
+
const patchRecords = {};
|
|
101
|
+
if (patchOperations.length > 0) {
|
|
102
|
+
const preTx = this.db.transaction(storeNames, "readonly");
|
|
103
|
+
const fetchPromises = patchOperations.map(async (op) => {
|
|
104
|
+
const recordId = String(op.key || op.value?.id);
|
|
105
|
+
const { promise: p, resolve: r, reject: rej } = (0, promiseWithResolvers_js_1.promiseWithResolvers)();
|
|
106
|
+
const getReq = preTx.objectStore(op.storeName).get(recordId);
|
|
107
|
+
getReq.onsuccess = () => r(getReq.result);
|
|
108
|
+
getReq.onerror = () => rej(getReq.error);
|
|
109
|
+
const existingRecord = await p;
|
|
110
|
+
if (!existingRecord) {
|
|
111
|
+
throw new Error(`[dbsync]: Cannot patch record ${recordId} in ${op.storeName} because it doesn't exist`);
|
|
112
|
+
}
|
|
113
|
+
patchRecords[`${op.storeName}-${recordId}`] = existingRecord;
|
|
114
|
+
});
|
|
115
|
+
await Promise.all(fetchPromises);
|
|
116
|
+
}
|
|
117
|
+
// Now execute the actual write bundle synchronously
|
|
96
118
|
const { promise, resolve, reject } = (0, promiseWithResolvers_js_1.promiseWithResolvers)();
|
|
97
119
|
const tx = this.db.transaction(storeNames, "readwrite");
|
|
98
120
|
tx.oncomplete = () => {
|
|
@@ -103,13 +125,18 @@ class StorageManager {
|
|
|
103
125
|
operations.forEach((op) => {
|
|
104
126
|
const store = tx.objectStore(op.storeName);
|
|
105
127
|
const recordId = op.key || op.value?.id;
|
|
106
|
-
if (op.type === "put" || op.type === "add") {
|
|
107
|
-
|
|
128
|
+
if (op.type === "put" || op.type === "add" || op.type === "patch") {
|
|
129
|
+
let payloadToWrite = op.value;
|
|
130
|
+
if (op.type === "patch") {
|
|
131
|
+
const existingRecord = patchRecords[`${op.storeName}-${recordId}`];
|
|
132
|
+
payloadToWrite = { ...existingRecord, ...op.value };
|
|
133
|
+
}
|
|
134
|
+
store.put(payloadToWrite);
|
|
108
135
|
if (op.storeName !== "dirtyQueue" && op.storeName !== "deletedQueue") {
|
|
109
136
|
tx.objectStore("dirtyQueue").put({
|
|
110
137
|
id: recordId,
|
|
111
138
|
table: op.storeName,
|
|
112
|
-
payload:
|
|
139
|
+
payload: payloadToWrite,
|
|
113
140
|
timestamp: Date.now(),
|
|
114
141
|
});
|
|
115
142
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageManager.js","sourceRoot":"","sources":["../../src/internal/StorageManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StorageManager.js","sourceRoot":"","sources":["../../src/internal/StorageManager.ts"],"names":[],"mappings":"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"}
|
package/esm/DbRepository.d.ts
CHANGED
|
@@ -50,6 +50,14 @@ export declare class DbRepository<T> {
|
|
|
50
50
|
* @returns A promise resolving when the deletion is complete.
|
|
51
51
|
*/
|
|
52
52
|
delete(key: string | number): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Partially updates an existing record in the object store.
|
|
55
|
+
*
|
|
56
|
+
* @param value The partial object payload.
|
|
57
|
+
* @param key An optional explicit primary key.
|
|
58
|
+
* @returns A promise resolving to the final patched record.
|
|
59
|
+
*/
|
|
60
|
+
patch(value: Partial<T>, key?: string | number): Promise<T>;
|
|
53
61
|
/**
|
|
54
62
|
* Discards all records present in the object store.
|
|
55
63
|
*
|
package/esm/DbRepository.js
CHANGED
|
@@ -62,6 +62,16 @@ export class DbRepository {
|
|
|
62
62
|
async delete(key) {
|
|
63
63
|
return this.db.delete(this.storeName, key);
|
|
64
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Partially updates an existing record in the object store.
|
|
67
|
+
*
|
|
68
|
+
* @param value The partial object payload.
|
|
69
|
+
* @param key An optional explicit primary key.
|
|
70
|
+
* @returns A promise resolving to the final patched record.
|
|
71
|
+
*/
|
|
72
|
+
async patch(value, key) {
|
|
73
|
+
return this.db.patch(this.storeName, value, key);
|
|
74
|
+
}
|
|
65
75
|
/**
|
|
66
76
|
* Discards all records present in the object store.
|
|
67
77
|
*
|
package/esm/DbRepository.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbRepository.js","sourceRoot":"","sources":["../src/DbRepository.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,OAAO,YAAY;IAQb;IACM;IARjB;;;;;OAKG;IACH,YACW,EAAU,EACJ,SAAiB;QADvB,OAAE,GAAF,EAAE,CAAQ;QACJ,cAAS,GAAT,SAAS,CAAQ;IAC/B,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAmB;QACjC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,KAAiB,EAAE,GAAqB;QACjD,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,KAAQ,EAAE,GAAqB;QACxC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,GAAoB;QAChC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACV,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"DbRepository.js","sourceRoot":"","sources":["../src/DbRepository.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,OAAO,YAAY;IAQb;IACM;IARjB;;;;;OAKG;IACH,YACW,EAAU,EACJ,SAAiB;QADvB,OAAE,GAAF,EAAE,CAAQ;QACJ,cAAS,GAAT,SAAS,CAAQ;IAC/B,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAmB;QACjC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAI,IAAI,CAAC,SAAS,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,KAAiB,EAAE,GAAqB;QACjD,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,KAAQ,EAAE,GAAqB;QACxC,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAClD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,GAAoB;QAChC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IAC3C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,KAAiB,EAAE,GAAqB;QACnD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACV,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC;CACD"}
|
package/esm/DbSync.d.ts
CHANGED
|
@@ -52,6 +52,8 @@ export declare class DbSync {
|
|
|
52
52
|
put<T>(storeName: string, value: any, key?: string | number): Promise<T>;
|
|
53
53
|
/** Deletes a record from the given object store. */
|
|
54
54
|
delete(storeName: string, key: string | number): Promise<void>;
|
|
55
|
+
/** Partially updates an existing record in the given object store. */
|
|
56
|
+
patch<T>(storeName: string, value: Partial<T>, key?: string | number): Promise<T>;
|
|
55
57
|
/** Clears all records from the given object store. */
|
|
56
58
|
clear(storeName: string): Promise<void>;
|
|
57
59
|
/** Subscribes to store update notifications. */
|
package/esm/DbSync.js
CHANGED
|
@@ -30,7 +30,9 @@ export class DbSync {
|
|
|
30
30
|
const adapter = config.adapter;
|
|
31
31
|
const onSchemaChange = () => this.onSchemaChangeDetected();
|
|
32
32
|
this.storage = new StorageManager(config, this.events, onSchemaChange);
|
|
33
|
-
this.authManager = new AuthManager(adapter, this.storage, () => {
|
|
33
|
+
this.authManager = new AuthManager(adapter, this.storage, () => {
|
|
34
|
+
void this.stop();
|
|
35
|
+
});
|
|
34
36
|
this.syncEngine = new SyncEngine(config, this.syncInterval, this.events, this.storage, this.authManager, adapter, onSchemaChange);
|
|
35
37
|
}
|
|
36
38
|
/** Returns a fresh RFC-4122 UUID. */
|
|
@@ -71,6 +73,11 @@ export class DbSync {
|
|
|
71
73
|
async delete(storeName, key) {
|
|
72
74
|
await this.storage.executeTransaction([{ type: "delete", storeName, key }]);
|
|
73
75
|
}
|
|
76
|
+
/** Partially updates an existing record in the given object store. */
|
|
77
|
+
async patch(storeName, value, key) {
|
|
78
|
+
await this.storage.executeTransaction([{ type: "patch", storeName, value, key }]);
|
|
79
|
+
return value;
|
|
80
|
+
}
|
|
74
81
|
/** Clears all records from the given object store. */
|
|
75
82
|
async clear(storeName) {
|
|
76
83
|
await this.storage.executeTransaction([{ type: "clear", storeName }]);
|
package/esm/DbSync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbSync.js","sourceRoot":"","sources":["../src/DbSync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAkB,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAc7C;;GAEG;AACH,MAAM,OAAO,MAAM;IAClB,oEAAoE;IAC7D,YAAY,GAAG,IAAI,CAAA;IAC1B,uDAAuD;IAChD,MAAM,CAAc;IAE3B,gEAAgE;IACxD,MAAM,CAAU;IACxB,qEAAqE;IAC9D,OAAO,CAAgB,CAAC,oDAAoD;IACnF,0DAA0D;IAClD,UAAU,CAAY;IAC9B,qEAAqE;IAC7D,WAAW,CAAa;IAEhC;;;;OAIG;IACH,YAAY,MAAoB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAA;QAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAA;QAE9B,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAE1D,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;QAEtE,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"DbSync.js","sourceRoot":"","sources":["../src/DbSync.ts"],"names":[],"mappings":"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"}
|
package/esm/DbTxRepository.d.ts
CHANGED
|
@@ -34,6 +34,13 @@ export declare class DbTxRepository<T> {
|
|
|
34
34
|
* @param key The primary key of the record to delete.
|
|
35
35
|
*/
|
|
36
36
|
delete(key: string | number): void;
|
|
37
|
+
/**
|
|
38
|
+
* Queues a partial update operation for an existing record.
|
|
39
|
+
*
|
|
40
|
+
* @param value The object partial payload to patch.
|
|
41
|
+
* @param key An optional explicit primary key.
|
|
42
|
+
*/
|
|
43
|
+
patch(value: Partial<T>, key?: string | number): void;
|
|
37
44
|
/**
|
|
38
45
|
* Queues an operation to remove all records from the object store.
|
|
39
46
|
*/
|
package/esm/DbTxRepository.js
CHANGED
|
@@ -42,6 +42,15 @@ export class DbTxRepository {
|
|
|
42
42
|
delete(key) {
|
|
43
43
|
this.tx.delete(this.storeName, key);
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Queues a partial update operation for an existing record.
|
|
47
|
+
*
|
|
48
|
+
* @param value The object partial payload to patch.
|
|
49
|
+
* @param key An optional explicit primary key.
|
|
50
|
+
*/
|
|
51
|
+
patch(value, key) {
|
|
52
|
+
this.tx.patch(this.storeName, value, key);
|
|
53
|
+
}
|
|
45
54
|
/**
|
|
46
55
|
* Queues an operation to remove all records from the object store.
|
|
47
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbTxRepository.js","sourceRoot":"","sources":["../src/DbTxRepository.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAQf;IACM;IARjB;;;;;OAKG;IACH,YACW,EAAiB,EACX,SAAiB;QADvB,OAAE,GAAF,EAAE,CAAe;QACX,cAAS,GAAT,SAAS,CAAQ;IAC/B,CAAC;IAEJ;;;;;OAKG;IACH,GAAG,CAAC,KAAiB,EAAE,GAAqB;QAC3C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,KAAQ,EAAE,GAAqB;QAClC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,GAAoB;QAC1B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"DbTxRepository.js","sourceRoot":"","sources":["../src/DbTxRepository.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAQf;IACM;IARjB;;;;;OAKG;IACH,YACW,EAAiB,EACX,SAAiB;QADvB,OAAE,GAAF,EAAE,CAAe;QACX,cAAS,GAAT,SAAS,CAAQ;IAC/B,CAAC;IAEJ;;;;;OAKG;IACH,GAAG,CAAC,KAAiB,EAAE,GAAqB;QAC3C,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,KAAQ,EAAE,GAAqB;QAClC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACxC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,GAAoB;QAC1B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;IACpC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAiB,EAAE,GAAqB;QAC7C,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK;QACJ,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC;CACD"}
|
|
@@ -34,6 +34,15 @@ export declare class DbTransaction {
|
|
|
34
34
|
* @param key An optional explicit primary key.
|
|
35
35
|
*/
|
|
36
36
|
put(storeName: string, value: any, key?: string | number): void;
|
|
37
|
+
/**
|
|
38
|
+
* Queues a partial update of an existing record.
|
|
39
|
+
* Fails if the primary key does not already exist in the database.
|
|
40
|
+
*
|
|
41
|
+
* @param storeName The name of the target object store.
|
|
42
|
+
* @param value The partial object payload containing the primary key and fields to update.
|
|
43
|
+
* @param key An optional explicit primary key.
|
|
44
|
+
*/
|
|
45
|
+
patch(storeName: string, value: any, key?: string | number): void;
|
|
37
46
|
/**
|
|
38
47
|
* Queues a deletion operation.
|
|
39
48
|
*
|
|
@@ -41,6 +41,17 @@ export class DbTransaction {
|
|
|
41
41
|
put(storeName, value, key) {
|
|
42
42
|
this.operations.push({ type: "put", storeName, value, key });
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Queues a partial update of an existing record.
|
|
46
|
+
* Fails if the primary key does not already exist in the database.
|
|
47
|
+
*
|
|
48
|
+
* @param storeName The name of the target object store.
|
|
49
|
+
* @param value The partial object payload containing the primary key and fields to update.
|
|
50
|
+
* @param key An optional explicit primary key.
|
|
51
|
+
*/
|
|
52
|
+
patch(storeName, value, key) {
|
|
53
|
+
this.operations.push({ type: "patch", storeName, value, key });
|
|
54
|
+
}
|
|
44
55
|
/**
|
|
45
56
|
* Queues a deletion operation.
|
|
46
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbTransaction.js","sourceRoot":"","sources":["../../src/internal/DbTransaction.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAE9C;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAmBL;IAlBpB;;;OAGG;IACK,UAAU,GAKZ,EAAE,CAAA;IAER;;;;;;OAMG;IACH,YAAoB,QAAuC;QAAvC,aAAQ,GAAR,QAAQ,CAA+B;IAAG,CAAC;IAE/D;;;;;;OAMG;IACH,GAAG,CAAC,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAiB,EAAE,GAAoB;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;IACzD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAiB;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;IACnD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,MAAM;QACL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IACrB,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"DbTransaction.js","sourceRoot":"","sources":["../../src/internal/DbTransaction.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAE9C;;;;GAIG;AACH,MAAM,OAAO,aAAa;IAmBL;IAlBpB;;;OAGG;IACK,UAAU,GAKZ,EAAE,CAAA;IAER;;;;;;OAMG;IACH,YAAoB,QAAuC;QAAvC,aAAQ,GAAR,QAAQ,CAA+B;IAAG,CAAC;IAE/D;;;;;;OAMG;IACH,GAAG,CAAC,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACvD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACzD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAiB,EAAE,GAAoB;QAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAA;IACzD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAiB;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;IACnD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM;QACX,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtC,CAAC;IAED;;OAEG;IACH,MAAM;QACL,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;IACrB,CAAC;CACD"}
|
|
@@ -90,6 +90,28 @@ export class StorageManager {
|
|
|
90
90
|
"dirtyQueue",
|
|
91
91
|
"deletedQueue",
|
|
92
92
|
]);
|
|
93
|
+
// Pre-fetch objects for patch operations using a separate read-only transaction.
|
|
94
|
+
// A standard IndexedDB transaction auto-commits if we await inside it, so we must
|
|
95
|
+
// gather everything into memory synchronously before opening the main readwrite transaction.
|
|
96
|
+
const patchOperations = operations.filter((o) => o.type === "patch");
|
|
97
|
+
const patchRecords = {};
|
|
98
|
+
if (patchOperations.length > 0) {
|
|
99
|
+
const preTx = this.db.transaction(storeNames, "readonly");
|
|
100
|
+
const fetchPromises = patchOperations.map(async (op) => {
|
|
101
|
+
const recordId = String(op.key || op.value?.id);
|
|
102
|
+
const { promise: p, resolve: r, reject: rej } = promiseWithResolvers();
|
|
103
|
+
const getReq = preTx.objectStore(op.storeName).get(recordId);
|
|
104
|
+
getReq.onsuccess = () => r(getReq.result);
|
|
105
|
+
getReq.onerror = () => rej(getReq.error);
|
|
106
|
+
const existingRecord = await p;
|
|
107
|
+
if (!existingRecord) {
|
|
108
|
+
throw new Error(`[dbsync]: Cannot patch record ${recordId} in ${op.storeName} because it doesn't exist`);
|
|
109
|
+
}
|
|
110
|
+
patchRecords[`${op.storeName}-${recordId}`] = existingRecord;
|
|
111
|
+
});
|
|
112
|
+
await Promise.all(fetchPromises);
|
|
113
|
+
}
|
|
114
|
+
// Now execute the actual write bundle synchronously
|
|
93
115
|
const { promise, resolve, reject } = promiseWithResolvers();
|
|
94
116
|
const tx = this.db.transaction(storeNames, "readwrite");
|
|
95
117
|
tx.oncomplete = () => {
|
|
@@ -100,13 +122,18 @@ export class StorageManager {
|
|
|
100
122
|
operations.forEach((op) => {
|
|
101
123
|
const store = tx.objectStore(op.storeName);
|
|
102
124
|
const recordId = op.key || op.value?.id;
|
|
103
|
-
if (op.type === "put" || op.type === "add") {
|
|
104
|
-
|
|
125
|
+
if (op.type === "put" || op.type === "add" || op.type === "patch") {
|
|
126
|
+
let payloadToWrite = op.value;
|
|
127
|
+
if (op.type === "patch") {
|
|
128
|
+
const existingRecord = patchRecords[`${op.storeName}-${recordId}`];
|
|
129
|
+
payloadToWrite = { ...existingRecord, ...op.value };
|
|
130
|
+
}
|
|
131
|
+
store.put(payloadToWrite);
|
|
105
132
|
if (op.storeName !== "dirtyQueue" && op.storeName !== "deletedQueue") {
|
|
106
133
|
tx.objectStore("dirtyQueue").put({
|
|
107
134
|
id: recordId,
|
|
108
135
|
table: op.storeName,
|
|
109
|
-
payload:
|
|
136
|
+
payload: payloadToWrite,
|
|
110
137
|
timestamp: Date.now(),
|
|
111
138
|
});
|
|
112
139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageManager.js","sourceRoot":"","sources":["../../src/internal/StorageManager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"StorageManager.js","sourceRoot":"","sources":["../../src/internal/StorageManager.ts"],"names":[],"mappings":"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"}
|