@slimr/dbsync 0.0.8 → 0.0.10

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 CHANGED
@@ -34,7 +34,7 @@ const dbAdapter = process.env.TEST ? new LocalAdapter() : new RestAdapter({ url:
34
34
  const db = new DbSync({
35
35
  adapter: dbAdapter,
36
36
  tables: {
37
- posts: { indexes: ['userId', 'updatedAt'] },
37
+ posts: { indexes: ['userId', 'updatedAt'], beforeWrite: () => ({ category: 0 }) },
38
38
  users: { indexes: ['email'] }
39
39
  }
40
40
  });
@@ -116,7 +116,7 @@ class Tx {
116
116
  posts = new DbTxRepository<Post>(this.tx, 'posts');
117
117
  users = new DbTxRepository<User>(this.tx, 'users');
118
118
 
119
- commit = () => this.tx.commit();
119
+ commit = this.tx.commit.bind(this.tx);
120
120
  }
121
121
 
122
122
  const tx = new Tx();
@@ -152,9 +152,10 @@ import { useDbQuery } from '@slimr/dbsync/react';
152
152
 
153
153
  function PostList({ db }) {
154
154
  // Re-renders automatically whenever the 'posts' table changes!
155
- const posts = useDbQuery(db, 'posts', () => db.findAll('posts'));
155
+ const { value: posts, loading } = useDbQuery(db, 'posts', () => db.findAll('posts'));
156
156
 
157
- if (!posts) return <Spinner />;
157
+ if (loading) return <Spinner />;
158
+ if (!posts) return <p>No posts found.</p>;
158
159
  return <ul>{posts.map(p => <li key={p.id}>{p.content}</li>)}</ul>;
159
160
  }
160
161
  ```
package/cjs/DbSync.d.ts CHANGED
@@ -1,15 +1,19 @@
1
1
  import type { BackendAdapter } from "./adapters/types.js";
2
2
  import { type SyncState } from "./internal/EventBus.js";
3
3
  import { StorageManager } from "./internal/StorageManager.js";
4
+ export interface DbSyncTableConfig {
5
+ /** Optional index names to create for the store. */
6
+ indexes?: string[];
7
+ /** Optional callback that fills in default fields before write operations. */
8
+ beforeWrite?: (value: any) => any;
9
+ }
4
10
  export interface DbSyncConfig {
5
11
  /** The backend adapter used for authentication and synchronization. */
6
12
  adapter: BackendAdapter;
7
13
  /** Optional fixed IndexedDB version. */
8
14
  version?: number;
9
15
  /** The object stores and their index definitions. */
10
- tables: Record<string, {
11
- indexes?: string[];
12
- }>;
16
+ tables: Record<string, DbSyncTableConfig>;
13
17
  }
14
18
  export type { SyncState };
15
19
  /**
@@ -48,12 +52,12 @@ export declare class DbSync {
48
52
  findAll<T>(storeName: string): Promise<T[]>;
49
53
  /** Inserts a new record into the given object store. */
50
54
  add<T>(storeName: string, value: any, key?: string | number): Promise<T>;
55
+ /** Partially updates an existing record in the given object store. */
56
+ patch<T>(storeName: string, value: Partial<T>, key?: string | number): Promise<T>;
51
57
  /** Upserts a record into the given object store. */
52
58
  put<T>(storeName: string, value: any, key?: string | number): Promise<T>;
53
59
  /** Deletes a record from the given object store. */
54
60
  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>;
57
61
  /** Clears all records from the given object store. */
58
62
  clear(storeName: string): Promise<void>;
59
63
  /** Subscribes to store update notifications. */
package/cjs/DbSync.js CHANGED
@@ -64,23 +64,27 @@ class DbSync {
64
64
  }
65
65
  /** Inserts a new record into the given object store. */
66
66
  async add(storeName, value, key) {
67
- await this.storage.executeTransaction([{ type: "add", storeName, value, key }]);
67
+ const [executedWrite] = await this.storage.executeTransaction([
68
+ { type: "add", storeName, value, key },
69
+ ]);
70
+ return executedWrite?.value;
71
+ }
72
+ /** Partially updates an existing record in the given object store. */
73
+ async patch(storeName, value, key) {
74
+ await this.storage.executeTransaction([{ type: "patch", storeName, value, key }]);
68
75
  return value;
69
76
  }
70
77
  /** Upserts a record into the given object store. */
71
78
  async put(storeName, value, key) {
72
- await this.storage.executeTransaction([{ type: "put", storeName, value, key }]);
73
- return value;
79
+ const [executedWrite] = await this.storage.executeTransaction([
80
+ { type: "put", storeName, value, key },
81
+ ]);
82
+ return executedWrite?.value;
74
83
  }
75
84
  /** Deletes a record from the given object store. */
76
85
  async delete(storeName, key) {
77
86
  await this.storage.executeTransaction([{ type: "delete", storeName, key }]);
78
87
  }
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
- }
84
88
  /** Clears all records from the given object store. */
85
89
  async clear(storeName) {
86
90
  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":"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"}
1
+ {"version":3,"file":"DbSync.js","sourceRoot":"","sources":["../src/DbSync.ts"],"names":[],"mappings":";;;AACA,8DAAuD;AACvD,wDAAiE;AACjE,oEAA6D;AAC7D,4DAAqD;AACrD,kDAA6C;AAqB7C;;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;YAC9D,KAAK,IAAI,CAAC,IAAI,EAAE,CAAA;QACjB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,0BAAU,CAC/B,MAAM,EACN,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,WAAW,EAChB,OAAO,EACP,cAAc,CACd,CAAA;IACF,CAAC;IAED,qCAAqC;IAC9B,OAAO;QACb,OAAO,IAAA,kBAAO,GAAE,CAAA;IACjB,CAAC;IAED,2DAA2D;IAC3D,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAA;IAC5B,CAAC;IACD,mDAAmD;IAC5C,KAAK,CAAC,IAAI;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;IAC3B,CAAC;IACD,8DAA8D;IACvD,cAAc;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAA;IACrC,CAAC,CAAC,iCAAiC;IAEnC,2CAA2C;IACpC,KAAK,CAAC,GAAG,CAAI,SAAiB,EAAE,EAAmB;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAI,SAAS,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IACD,qDAAqD;IAC9C,KAAK,CAAC,OAAO,CAAI,SAAiB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAI,SAAS,CAAC,CAAA;IAC1C,CAAC;IACD,wDAAwD;IACjD,KAAK,CAAC,GAAG,CAAI,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACvE,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC7D,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;SACtC,CAAC,CAAA;QACF,OAAO,aAAa,EAAE,KAAU,CAAA;IACjC,CAAC;IACD,sEAAsE;IAC/D,KAAK,CAAC,KAAK,CAAI,SAAiB,EAAE,KAAiB,EAAE,GAAqB;QAChF,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;QACjF,OAAO,KAAU,CAAA;IAClB,CAAC;IACD,oDAAoD;IAC7C,KAAK,CAAC,GAAG,CAAI,SAAiB,EAAE,KAAU,EAAE,GAAqB;QACvE,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC7D,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;SACtC,CAAC,CAAA;QACF,OAAO,aAAa,EAAE,KAAU,CAAA;IACjC,CAAC;IACD,oDAAoD;IAC7C,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,GAAoB;QAC1D,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD,sDAAsD;IAC/C,KAAK,CAAC,KAAK,CAAC,SAAiB;QACnC,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IACtE,CAAC;IAED,gDAAgD;IACzC,SAAS,CAAC,QAAoC;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACvC,CAAC;IACD,wCAAwC;IACjC,iBAAiB,CAAC,QAAoC;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,4DAA4D;IAC5D,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;IAC/B,CAAC;IACD,2DAA2D;IACpD,KAAK,CAAC,SAAS;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAA;IACpC,CAAC;IACD,0CAA0C;IACnC,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,IAAY;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;IACD,sCAAsC;IAC/B,KAAK,CAAC,MAAM;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;IACjC,CAAC;IACD,8CAA8C;IACvC,KAAK,CAAC,KAAK;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IAChC,CAAC;IAED,oDAAoD;IACpD,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAA;IACjC,CAAC;IACD,mEAAmE;IACnE,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IAC9B,CAAC;IACD,kDAAkD;IAC3C,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;QAEpC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA;IACxB,CAAC;IACD,iDAAiD;IAC1C,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;IACvB,CAAC;IACD,6DAA6D;IACtD,KAAK,CAAC,WAAW;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAA;IACrC,CAAC;IACD,gDAAgD;IACzC,KAAK,CAAC,WAAW;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAA;IACrC,CAAC;IAED,mCAAmC;IAC5B,iBAAiB;QACvB,IAAI,CAAC,KAAK,EAAE,CAAA;IACb,CAAC;IACD,oCAAoC;IAC7B,gBAAgB;QACtB,IAAI,CAAC,IAAI,EAAE,CAAA;IACZ,CAAC;IAED,4EAA4E;IAClE,sBAAsB;QAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;QACtB,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QACzB,CAAC;IACF,CAAC;IAED,6DAA6D;IACtD,OAAO;QACb,IAAI,CAAC,IAAI,EAAE,CAAA;QACX,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;QACrB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;IACvB,CAAC;CACD;AApLD,wBAoLC"}
package/cjs/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./DbRepository.js";
2
2
  export * from "./DbSync.js";
3
3
  export * from "./DbTxRepository.js";
4
+ export type { MigrationManagerMigration } from "./internal/MigrationManager.js";
@@ -3,7 +3,7 @@
3
3
  * Migrations allow existing offline data to be selectively upgraded rather than wiped
4
4
  * when backend domain modeling changes.
5
5
  */
6
- export interface IMigration<T = any> {
6
+ export interface MigrationManagerMigration<T = any> {
7
7
  /**
8
8
  * An ascending integer determining execution order. A record currently at `storeVersion: 1`
9
9
  * will only trigger migrations where `version >= 2`.
@@ -39,7 +39,7 @@ export declare class MigrationManager {
39
39
  *
40
40
  * @param schemaMigrations A dictionary mapping store names to arrays of `IMigration` steps.
41
41
  */
42
- runAll(schemaMigrations: Record<string, IMigration[]>): Promise<void>;
42
+ runAll(schemaMigrations: Record<string, MigrationManagerMigration[]>): Promise<void>;
43
43
  /**
44
44
  * Sorts and attempts to apply a sequence of migrations to a single record in memory.
45
45
  * Evaluates `storeVersion` to ensure migrations are only executed sequentially and exactly once.
@@ -48,7 +48,7 @@ export declare class MigrationManager {
48
48
  * @param migrations The full list of potential migrations for the record's domain type.
49
49
  * @returns The functionally upgraded record with an updated `storeVersion`.
50
50
  */
51
- static upgradeRecord<T>(record: any, migrations: IMigration<T>[]): Promise<any>;
51
+ static upgradeRecord<T>(record: any, migrations: MigrationManagerMigration<T>[]): Promise<any>;
52
52
  /**
53
53
  * Reads all records from a specific store, upgrades out-of-date entries,
54
54
  * and atomically flushes the changed entries back within a single database transaction.
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationManager.js","sourceRoot":"","sources":["../../src/internal/MigrationManager.ts"],"names":[],"mappings":";;;AA0BA;;;GAGG;AACH,MAAa,gBAAgB;IAOR;IANpB;;;;;OAKG;IACH,YAAoB,EAAO;QAAP,OAAE,GAAF,EAAE,CAAK;IAAG,CAAC,CAAC,wBAAwB;IAExD;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,gBAA8C;QAC1D,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAC/C,CAAC;IACF,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAI,MAAW,EAAE,UAA2B;QAC5E,MAAM,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QAC9E,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;YAC/C,IAAI,cAAc,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC/B,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,OAAO,CAAA;YACxC,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,UAAwB;QACrE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAA;QAEnC,KAAK,MAAM,aAAa,IAAI,UAAU,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,EAAE,GAAG,aAAa,EAAE,CAAA;YACvC,MAAM,gBAAgB,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAE5D,IAAI,UAAU,CAAC,YAAY,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC5D,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAC9B,CAAC;QACF,CAAC;QAED,MAAM,EAAE,CAAC,MAAM,EAAE,CAAA;IAClB,CAAC;CACD;AA9DD,4CA8DC"}
1
+ {"version":3,"file":"MigrationManager.js","sourceRoot":"","sources":["../../src/internal/MigrationManager.ts"],"names":[],"mappings":";;;AA0BA;;;GAGG;AACH,MAAa,gBAAgB;IAOR;IANpB;;;;;OAKG;IACH,YAAoB,EAAO;QAAP,OAAE,GAAF,EAAE,CAAK;IAAG,CAAC,CAAC,wBAAwB;IAExD;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,gBAA6D;QACzE,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAC/C,CAAC;IACF,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAI,MAAW,EAAE,UAA0C;QAC3F,MAAM,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QAC9E,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;YAC/C,IAAI,cAAc,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC/B,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,OAAO,CAAA;YACxC,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,UAAuC;QACpF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAA;QAEnC,KAAK,MAAM,aAAa,IAAI,UAAU,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,EAAE,GAAG,aAAa,EAAE,CAAA;YACvC,MAAM,gBAAgB,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAE5D,IAAI,UAAU,CAAC,YAAY,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC5D,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAC9B,CAAC;QACF,CAAC;QAED,MAAM,EAAE,CAAC,MAAM,EAAE,CAAA;IAClB,CAAC;CACD;AA9DD,4CA8DC"}
@@ -1,6 +1,12 @@
1
1
  import type { DbSyncConfig } from "../DbSync.js";
2
2
  import { DbTransaction } from "./DbTransaction.js";
3
3
  import type { EventBus } from "./EventBus.js";
4
+ type ExecutedWrite = {
5
+ type: string;
6
+ storeName: string;
7
+ value?: any;
8
+ key?: string | number;
9
+ };
4
10
  /**
5
11
  * Owns IndexedDB initialization, transactions, and record access.
6
12
  */
@@ -29,7 +35,7 @@ export declare class StorageManager {
29
35
  /** Opens IndexedDB and creates the configured stores when needed. */
30
36
  init(): Promise<void>;
31
37
  /** Executes a batch of writes inside a single IndexedDB transaction. */
32
- executeTransaction(operations: any[]): Promise<void>;
38
+ executeTransaction(operations: any[]): Promise<ExecutedWrite[]>;
33
39
  /** Reads a typed record by primary key from the requested store. */
34
40
  get<T>(storeName: string, id: string | number): Promise<T | undefined>;
35
41
  /** Returns every record from the requested store. */
@@ -39,3 +45,4 @@ export declare class StorageManager {
39
45
  /** Closes the underlying IndexedDB connection. */
40
46
  dispose(): void;
41
47
  }
48
+ export {};
@@ -42,7 +42,9 @@ class StorageManager {
42
42
  }
43
43
  /** Creates a transaction wrapper used by the sync engine and public facade. */
44
44
  getTransaction() {
45
- return new DbTransaction_js_1.DbTransaction((operations) => this.executeTransaction(operations));
45
+ return new DbTransaction_js_1.DbTransaction(async (operations) => {
46
+ await this.executeTransaction(operations);
47
+ });
46
48
  }
47
49
  /** Opens IndexedDB and creates the configured stores when needed. */
48
50
  async init() {
@@ -93,6 +95,7 @@ class StorageManager {
93
95
  "dirtyQueue",
94
96
  "deletedQueue",
95
97
  ]);
98
+ const executedWrites = [];
96
99
  // Pre-fetch objects for patch operations using a separate read-only transaction.
97
100
  // A standard IndexedDB transaction auto-commits if we await inside it, so we must
98
101
  // gather everything into memory synchronously before opening the main readwrite transaction.
@@ -119,19 +122,33 @@ class StorageManager {
119
122
  const tx = this.db.transaction(storeNames, "readwrite");
120
123
  tx.oncomplete = () => {
121
124
  this.events.notifySubscribers(storeNames);
122
- resolve();
125
+ resolve(executedWrites);
123
126
  };
124
127
  tx.onerror = () => reject(tx.error);
125
128
  operations.forEach((op) => {
126
129
  const store = tx.objectStore(op.storeName);
127
- const recordId = op.key || op.value?.id;
130
+ let payloadToWrite = op.value;
131
+ let recordId = op.key || op.value?.id;
128
132
  if (op.type === "put" || op.type === "add" || op.type === "patch") {
129
- let payloadToWrite = op.value;
130
- if (op.type === "patch") {
133
+ if (op.type === "put" || op.type === "add") {
134
+ const beforeWrite = this.config.tables[op.storeName]?.beforeWrite;
135
+ if (beforeWrite) {
136
+ payloadToWrite = beforeWrite(payloadToWrite);
137
+ }
138
+ recordId = op.key || payloadToWrite?.id;
139
+ }
140
+ else if (op.type === "patch") {
131
141
  const existingRecord = patchRecords[`${op.storeName}-${recordId}`];
132
142
  payloadToWrite = { ...existingRecord, ...op.value };
143
+ recordId = op.key || payloadToWrite?.id;
133
144
  }
134
145
  store.put(payloadToWrite);
146
+ executedWrites.push({
147
+ type: op.type,
148
+ storeName: op.storeName,
149
+ value: payloadToWrite,
150
+ key: recordId,
151
+ });
135
152
  if (op.storeName !== "dirtyQueue" && op.storeName !== "deletedQueue") {
136
153
  tx.objectStore("dirtyQueue").put({
137
154
  id: recordId,
@@ -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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"}
@@ -1,4 +1,8 @@
1
1
  import type { DbSync } from "./DbSync.js";
2
+ type DbQueryState<T> = {
3
+ value: T | null;
4
+ loading: boolean;
5
+ };
2
6
  /**
3
7
  * A React hook that subscribes to one or more `DbSync` tables and natively
4
8
  * re-evaluates a strictly typed query function whenever local mutations or
@@ -8,6 +12,7 @@ import type { DbSync } from "./DbSync.js";
8
12
  * @param stores A string or array of strings containing the table names the query function reads from.
9
13
  * @param queryFn An asynchronous function invoked to pull data from IndexedDB.
10
14
  * @param deps A standard React dependency array for parameters referenced inside the `queryFn`.
11
- * @returns The resolved data of the `queryFn`, or `undefined` while the initial fetch evaluates.
15
+ * @returns An object containing the latest query result and whether the initial fetch is still pending.
12
16
  */
13
- export declare function useDbQuery<T>(db: DbSync, stores: string | string[], queryFn: () => Promise<T>, deps?: any[]): T | undefined;
17
+ export declare function useDbQuery<T>(db: DbSync, stores: string | string[], queryFn: () => Promise<T>, deps?: any[]): DbQueryState<T>;
18
+ export {};
package/cjs/useDbQuery.js CHANGED
@@ -11,11 +11,11 @@ const react_1 = require("react");
11
11
  * @param stores A string or array of strings containing the table names the query function reads from.
12
12
  * @param queryFn An asynchronous function invoked to pull data from IndexedDB.
13
13
  * @param deps A standard React dependency array for parameters referenced inside the `queryFn`.
14
- * @returns The resolved data of the `queryFn`, or `undefined` while the initial fetch evaluates.
14
+ * @returns An object containing the latest query result and whether the initial fetch is still pending.
15
15
  */
16
16
  function useDbQuery(db, stores, queryFn, deps = []) {
17
- /** Holds the latest query result. */
18
- const [data, setData] = (0, react_1.useState)(undefined);
17
+ /** Holds the latest query result and loading state. */
18
+ const [state, setState] = (0, react_1.useState)({ value: null, loading: true });
19
19
  /** Normalizes the store input into an array for matching. */
20
20
  const storeArray = Array.isArray(stores) ? stores : [stores];
21
21
  (0, react_1.useEffect)(() => {
@@ -34,11 +34,15 @@ function useDbQuery(db, stores, queryFn, deps = []) {
34
34
  }
35
35
  try {
36
36
  const result = await queryFn();
37
- if (isMounted)
38
- setData(result);
37
+ if (isMounted) {
38
+ setState({ value: result ?? null, loading: false });
39
+ }
39
40
  }
40
41
  catch (err) {
41
42
  console.error("[dbsync useDbQuery]: Query failed", err);
43
+ if (isMounted) {
44
+ setState((current) => ({ ...current, loading: false }));
45
+ }
42
46
  }
43
47
  };
44
48
  // Initial fetch
@@ -56,6 +60,6 @@ function useDbQuery(db, stores, queryFn, deps = []) {
56
60
  };
57
61
  // eslint-disable-next-line react-hooks/exhaustive-deps
58
62
  }, [db, JSON.stringify(storeArray), ...deps]);
59
- return data;
63
+ return state;
60
64
  }
61
65
  //# sourceMappingURL=useDbQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDbQuery.js","sourceRoot":"","sources":["../src/useDbQuery.ts"],"names":[],"mappings":";;AAcA,gCAqDC;AAnED,iCAA2C;AAG3C;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CACzB,EAAU,EACV,MAAyB,EACzB,OAAyB,EACzB,OAAc,EAAE;IAEhB,qCAAqC;IACrC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAgB,SAAS,CAAC,CAAA;IAC1D,6DAA6D;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAE5D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,IAAI,SAAS,GAAG,IAAI,CAAA;QAEpB,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;gBACjB,oDAAoD;gBACpD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACnC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;wBAC9B,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;4BAC9B,aAAa,CAAC,KAAK,CAAC,CAAA;4BACpB,OAAO,EAAE,CAAA;wBACV,CAAC;oBACF,CAAC,EAAE,EAAE,CAAC,CAAA;gBACP,CAAC,CAAC,CAAA;YACH,CAAC;YACD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAA;gBAC9B,IAAI,SAAS;oBAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;YACxD,CAAC;QACF,CAAC,CAAA;QAED,gBAAgB;QAChB,SAAS,EAAE,CAAA;QAEX,+BAA+B;QAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE;YAC1C,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YACtE,IAAI,YAAY,EAAE,CAAC;gBAClB,SAAS,EAAE,CAAA;YACZ,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACX,SAAS,GAAG,KAAK,CAAA;YACjB,GAAG,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAA;QACD,uDAAuD;IACxD,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAE7C,OAAO,IAAI,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"useDbQuery.js","sourceRoot":"","sources":["../src/useDbQuery.ts"],"names":[],"mappings":";;AAmBA,gCA0DC;AA7ED,iCAA2C;AAQ3C;;;;;;;;;;GAUG;AACH,SAAgB,UAAU,CACzB,EAAU,EACV,MAAyB,EACzB,OAAyB,EACzB,OAAc,EAAE;IAEhB,uDAAuD;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACnF,6DAA6D;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAE5D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACd,IAAI,SAAS,GAAG,IAAI,CAAA;QAEpB,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;gBACjB,oDAAoD;gBACpD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACnC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;wBAC9B,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;4BAC9B,aAAa,CAAC,KAAK,CAAC,CAAA;4BACpB,OAAO,EAAE,CAAA;wBACV,CAAC;oBACF,CAAC,EAAE,EAAE,CAAC,CAAA;gBACP,CAAC,CAAC,CAAA;YACH,CAAC;YACD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAA;gBAC9B,IAAI,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;gBACpD,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;gBACvD,IAAI,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;gBACxD,CAAC;YACF,CAAC;QACF,CAAC,CAAA;QAED,gBAAgB;QAChB,SAAS,EAAE,CAAA;QAEX,+BAA+B;QAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE;YAC1C,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YACtE,IAAI,YAAY,EAAE,CAAC;gBAClB,SAAS,EAAE,CAAA;YACZ,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACX,SAAS,GAAG,KAAK,CAAA;YACjB,GAAG,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAA;QACD,uDAAuD;IACxD,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAE7C,OAAO,KAAK,CAAA;AACb,CAAC"}
package/esm/DbSync.d.ts CHANGED
@@ -1,15 +1,19 @@
1
1
  import type { BackendAdapter } from "./adapters/types.js";
2
2
  import { type SyncState } from "./internal/EventBus.js";
3
3
  import { StorageManager } from "./internal/StorageManager.js";
4
+ export interface DbSyncTableConfig {
5
+ /** Optional index names to create for the store. */
6
+ indexes?: string[];
7
+ /** Optional callback that fills in default fields before write operations. */
8
+ beforeWrite?: (value: any) => any;
9
+ }
4
10
  export interface DbSyncConfig {
5
11
  /** The backend adapter used for authentication and synchronization. */
6
12
  adapter: BackendAdapter;
7
13
  /** Optional fixed IndexedDB version. */
8
14
  version?: number;
9
15
  /** The object stores and their index definitions. */
10
- tables: Record<string, {
11
- indexes?: string[];
12
- }>;
16
+ tables: Record<string, DbSyncTableConfig>;
13
17
  }
14
18
  export type { SyncState };
15
19
  /**
@@ -48,12 +52,12 @@ export declare class DbSync {
48
52
  findAll<T>(storeName: string): Promise<T[]>;
49
53
  /** Inserts a new record into the given object store. */
50
54
  add<T>(storeName: string, value: any, key?: string | number): Promise<T>;
55
+ /** Partially updates an existing record in the given object store. */
56
+ patch<T>(storeName: string, value: Partial<T>, key?: string | number): Promise<T>;
51
57
  /** Upserts a record into the given object store. */
52
58
  put<T>(storeName: string, value: any, key?: string | number): Promise<T>;
53
59
  /** Deletes a record from the given object store. */
54
60
  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>;
57
61
  /** Clears all records from the given object store. */
58
62
  clear(storeName: string): Promise<void>;
59
63
  /** Subscribes to store update notifications. */
package/esm/DbSync.js CHANGED
@@ -61,23 +61,27 @@ export class DbSync {
61
61
  }
62
62
  /** Inserts a new record into the given object store. */
63
63
  async add(storeName, value, key) {
64
- await this.storage.executeTransaction([{ type: "add", storeName, value, key }]);
64
+ const [executedWrite] = await this.storage.executeTransaction([
65
+ { type: "add", storeName, value, key },
66
+ ]);
67
+ return executedWrite?.value;
68
+ }
69
+ /** Partially updates an existing record in the given object store. */
70
+ async patch(storeName, value, key) {
71
+ await this.storage.executeTransaction([{ type: "patch", storeName, value, key }]);
65
72
  return value;
66
73
  }
67
74
  /** Upserts a record into the given object store. */
68
75
  async put(storeName, value, key) {
69
- await this.storage.executeTransaction([{ type: "put", storeName, value, key }]);
70
- return value;
76
+ const [executedWrite] = await this.storage.executeTransaction([
77
+ { type: "put", storeName, value, key },
78
+ ]);
79
+ return executedWrite?.value;
71
80
  }
72
81
  /** Deletes a record from the given object store. */
73
82
  async delete(storeName, key) {
74
83
  await this.storage.executeTransaction([{ type: "delete", storeName, key }]);
75
84
  }
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
- }
81
85
  /** Clears all records from the given object store. */
82
86
  async clear(storeName) {
83
87
  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":"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"}
1
+ {"version":3,"file":"DbSync.js","sourceRoot":"","sources":["../src/DbSync.ts"],"names":[],"mappings":"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"}
package/esm/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./DbRepository.js";
2
2
  export * from "./DbSync.js";
3
3
  export * from "./DbTxRepository.js";
4
+ export type { MigrationManagerMigration } from "./internal/MigrationManager.js";
@@ -3,7 +3,7 @@
3
3
  * Migrations allow existing offline data to be selectively upgraded rather than wiped
4
4
  * when backend domain modeling changes.
5
5
  */
6
- export interface IMigration<T = any> {
6
+ export interface MigrationManagerMigration<T = any> {
7
7
  /**
8
8
  * An ascending integer determining execution order. A record currently at `storeVersion: 1`
9
9
  * will only trigger migrations where `version >= 2`.
@@ -39,7 +39,7 @@ export declare class MigrationManager {
39
39
  *
40
40
  * @param schemaMigrations A dictionary mapping store names to arrays of `IMigration` steps.
41
41
  */
42
- runAll(schemaMigrations: Record<string, IMigration[]>): Promise<void>;
42
+ runAll(schemaMigrations: Record<string, MigrationManagerMigration[]>): Promise<void>;
43
43
  /**
44
44
  * Sorts and attempts to apply a sequence of migrations to a single record in memory.
45
45
  * Evaluates `storeVersion` to ensure migrations are only executed sequentially and exactly once.
@@ -48,7 +48,7 @@ export declare class MigrationManager {
48
48
  * @param migrations The full list of potential migrations for the record's domain type.
49
49
  * @returns The functionally upgraded record with an updated `storeVersion`.
50
50
  */
51
- static upgradeRecord<T>(record: any, migrations: IMigration<T>[]): Promise<any>;
51
+ static upgradeRecord<T>(record: any, migrations: MigrationManagerMigration<T>[]): Promise<any>;
52
52
  /**
53
53
  * Reads all records from a specific store, upgrades out-of-date entries,
54
54
  * and atomically flushes the changed entries back within a single database transaction.
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationManager.js","sourceRoot":"","sources":["../../src/internal/MigrationManager.ts"],"names":[],"mappings":"AA0BA;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAOR;IANpB;;;;;OAKG;IACH,YAAoB,EAAO;QAAP,OAAE,GAAF,EAAE,CAAK;IAAG,CAAC,CAAC,wBAAwB;IAExD;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,gBAA8C;QAC1D,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAC/C,CAAC;IACF,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAI,MAAW,EAAE,UAA2B;QAC5E,MAAM,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QAC9E,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;YAC/C,IAAI,cAAc,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC/B,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,OAAO,CAAA;YACxC,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,UAAwB;QACrE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAA;QAEnC,KAAK,MAAM,aAAa,IAAI,UAAU,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,EAAE,GAAG,aAAa,EAAE,CAAA;YACvC,MAAM,gBAAgB,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAE5D,IAAI,UAAU,CAAC,YAAY,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC5D,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAC9B,CAAC;QACF,CAAC;QAED,MAAM,EAAE,CAAC,MAAM,EAAE,CAAA;IAClB,CAAC;CACD"}
1
+ {"version":3,"file":"MigrationManager.js","sourceRoot":"","sources":["../../src/internal/MigrationManager.ts"],"names":[],"mappings":"AA0BA;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAOR;IANpB;;;;;OAKG;IACH,YAAoB,EAAO;QAAP,OAAE,GAAF,EAAE,CAAK;IAAG,CAAC,CAAC,wBAAwB;IAExD;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,gBAA6D;QACzE,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QAC/C,CAAC;IACF,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAI,MAAW,EAAE,UAA0C;QAC3F,MAAM,gBAAgB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAA;QAC9E,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;YAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,CAAA;YAC/C,IAAI,cAAc,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;gBACxC,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC/B,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,OAAO,CAAA;YACxC,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAA;IACd,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,UAAuC;QACpF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE,CAAA;QAEnC,KAAK,MAAM,aAAa,IAAI,UAAU,EAAE,CAAC;YACxC,MAAM,UAAU,GAAG,EAAE,GAAG,aAAa,EAAE,CAAA;YACvC,MAAM,gBAAgB,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAE5D,IAAI,UAAU,CAAC,YAAY,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC5D,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAC9B,CAAC;QACF,CAAC;QAED,MAAM,EAAE,CAAC,MAAM,EAAE,CAAA;IAClB,CAAC;CACD"}
@@ -1,6 +1,12 @@
1
1
  import type { DbSyncConfig } from "../DbSync.js";
2
2
  import { DbTransaction } from "./DbTransaction.js";
3
3
  import type { EventBus } from "./EventBus.js";
4
+ type ExecutedWrite = {
5
+ type: string;
6
+ storeName: string;
7
+ value?: any;
8
+ key?: string | number;
9
+ };
4
10
  /**
5
11
  * Owns IndexedDB initialization, transactions, and record access.
6
12
  */
@@ -29,7 +35,7 @@ export declare class StorageManager {
29
35
  /** Opens IndexedDB and creates the configured stores when needed. */
30
36
  init(): Promise<void>;
31
37
  /** Executes a batch of writes inside a single IndexedDB transaction. */
32
- executeTransaction(operations: any[]): Promise<void>;
38
+ executeTransaction(operations: any[]): Promise<ExecutedWrite[]>;
33
39
  /** Reads a typed record by primary key from the requested store. */
34
40
  get<T>(storeName: string, id: string | number): Promise<T | undefined>;
35
41
  /** Returns every record from the requested store. */
@@ -39,3 +45,4 @@ export declare class StorageManager {
39
45
  /** Closes the underlying IndexedDB connection. */
40
46
  dispose(): void;
41
47
  }
48
+ export {};
@@ -39,7 +39,9 @@ export class StorageManager {
39
39
  }
40
40
  /** Creates a transaction wrapper used by the sync engine and public facade. */
41
41
  getTransaction() {
42
- return new DbTransaction((operations) => this.executeTransaction(operations));
42
+ return new DbTransaction(async (operations) => {
43
+ await this.executeTransaction(operations);
44
+ });
43
45
  }
44
46
  /** Opens IndexedDB and creates the configured stores when needed. */
45
47
  async init() {
@@ -90,6 +92,7 @@ export class StorageManager {
90
92
  "dirtyQueue",
91
93
  "deletedQueue",
92
94
  ]);
95
+ const executedWrites = [];
93
96
  // Pre-fetch objects for patch operations using a separate read-only transaction.
94
97
  // A standard IndexedDB transaction auto-commits if we await inside it, so we must
95
98
  // gather everything into memory synchronously before opening the main readwrite transaction.
@@ -116,19 +119,33 @@ export class StorageManager {
116
119
  const tx = this.db.transaction(storeNames, "readwrite");
117
120
  tx.oncomplete = () => {
118
121
  this.events.notifySubscribers(storeNames);
119
- resolve();
122
+ resolve(executedWrites);
120
123
  };
121
124
  tx.onerror = () => reject(tx.error);
122
125
  operations.forEach((op) => {
123
126
  const store = tx.objectStore(op.storeName);
124
- const recordId = op.key || op.value?.id;
127
+ let payloadToWrite = op.value;
128
+ let recordId = op.key || op.value?.id;
125
129
  if (op.type === "put" || op.type === "add" || op.type === "patch") {
126
- let payloadToWrite = op.value;
127
- if (op.type === "patch") {
130
+ if (op.type === "put" || op.type === "add") {
131
+ const beforeWrite = this.config.tables[op.storeName]?.beforeWrite;
132
+ if (beforeWrite) {
133
+ payloadToWrite = beforeWrite(payloadToWrite);
134
+ }
135
+ recordId = op.key || payloadToWrite?.id;
136
+ }
137
+ else if (op.type === "patch") {
128
138
  const existingRecord = patchRecords[`${op.storeName}-${recordId}`];
129
139
  payloadToWrite = { ...existingRecord, ...op.value };
140
+ recordId = op.key || payloadToWrite?.id;
130
141
  }
131
142
  store.put(payloadToWrite);
143
+ executedWrites.push({
144
+ type: op.type,
145
+ storeName: op.storeName,
146
+ value: payloadToWrite,
147
+ key: recordId,
148
+ });
132
149
  if (op.storeName !== "dirtyQueue" && op.storeName !== "deletedQueue") {
133
150
  tx.objectStore("dirtyQueue").put({
134
151
  id: recordId,
@@ -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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"}
@@ -1,4 +1,8 @@
1
1
  import type { DbSync } from "./DbSync.js";
2
+ type DbQueryState<T> = {
3
+ value: T | null;
4
+ loading: boolean;
5
+ };
2
6
  /**
3
7
  * A React hook that subscribes to one or more `DbSync` tables and natively
4
8
  * re-evaluates a strictly typed query function whenever local mutations or
@@ -8,6 +12,7 @@ import type { DbSync } from "./DbSync.js";
8
12
  * @param stores A string or array of strings containing the table names the query function reads from.
9
13
  * @param queryFn An asynchronous function invoked to pull data from IndexedDB.
10
14
  * @param deps A standard React dependency array for parameters referenced inside the `queryFn`.
11
- * @returns The resolved data of the `queryFn`, or `undefined` while the initial fetch evaluates.
15
+ * @returns An object containing the latest query result and whether the initial fetch is still pending.
12
16
  */
13
- export declare function useDbQuery<T>(db: DbSync, stores: string | string[], queryFn: () => Promise<T>, deps?: any[]): T | undefined;
17
+ export declare function useDbQuery<T>(db: DbSync, stores: string | string[], queryFn: () => Promise<T>, deps?: any[]): DbQueryState<T>;
18
+ export {};
package/esm/useDbQuery.js CHANGED
@@ -8,11 +8,11 @@ import { useEffect, useState } from "react";
8
8
  * @param stores A string or array of strings containing the table names the query function reads from.
9
9
  * @param queryFn An asynchronous function invoked to pull data from IndexedDB.
10
10
  * @param deps A standard React dependency array for parameters referenced inside the `queryFn`.
11
- * @returns The resolved data of the `queryFn`, or `undefined` while the initial fetch evaluates.
11
+ * @returns An object containing the latest query result and whether the initial fetch is still pending.
12
12
  */
13
13
  export function useDbQuery(db, stores, queryFn, deps = []) {
14
- /** Holds the latest query result. */
15
- const [data, setData] = useState(undefined);
14
+ /** Holds the latest query result and loading state. */
15
+ const [state, setState] = useState({ value: null, loading: true });
16
16
  /** Normalizes the store input into an array for matching. */
17
17
  const storeArray = Array.isArray(stores) ? stores : [stores];
18
18
  useEffect(() => {
@@ -31,11 +31,15 @@ export function useDbQuery(db, stores, queryFn, deps = []) {
31
31
  }
32
32
  try {
33
33
  const result = await queryFn();
34
- if (isMounted)
35
- setData(result);
34
+ if (isMounted) {
35
+ setState({ value: result ?? null, loading: false });
36
+ }
36
37
  }
37
38
  catch (err) {
38
39
  console.error("[dbsync useDbQuery]: Query failed", err);
40
+ if (isMounted) {
41
+ setState((current) => ({ ...current, loading: false }));
42
+ }
39
43
  }
40
44
  };
41
45
  // Initial fetch
@@ -53,6 +57,6 @@ export function useDbQuery(db, stores, queryFn, deps = []) {
53
57
  };
54
58
  // eslint-disable-next-line react-hooks/exhaustive-deps
55
59
  }, [db, JSON.stringify(storeArray), ...deps]);
56
- return data;
60
+ return state;
57
61
  }
58
62
  //# sourceMappingURL=useDbQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDbQuery.js","sourceRoot":"","sources":["../src/useDbQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAG3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACzB,EAAU,EACV,MAAyB,EACzB,OAAyB,EACzB,OAAc,EAAE;IAEhB,qCAAqC;IACrC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAgB,SAAS,CAAC,CAAA;IAC1D,6DAA6D;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAE5D,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,SAAS,GAAG,IAAI,CAAA;QAEpB,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;gBACjB,oDAAoD;gBACpD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACnC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;wBAC9B,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;4BAC9B,aAAa,CAAC,KAAK,CAAC,CAAA;4BACpB,OAAO,EAAE,CAAA;wBACV,CAAC;oBACF,CAAC,EAAE,EAAE,CAAC,CAAA;gBACP,CAAC,CAAC,CAAA;YACH,CAAC;YACD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAA;gBAC9B,IAAI,SAAS;oBAAE,OAAO,CAAC,MAAM,CAAC,CAAA;YAC/B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;YACxD,CAAC;QACF,CAAC,CAAA;QAED,gBAAgB;QAChB,SAAS,EAAE,CAAA;QAEX,+BAA+B;QAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE;YAC1C,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YACtE,IAAI,YAAY,EAAE,CAAC;gBAClB,SAAS,EAAE,CAAA;YACZ,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACX,SAAS,GAAG,KAAK,CAAA;YACjB,GAAG,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAA;QACD,uDAAuD;IACxD,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAE7C,OAAO,IAAI,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"useDbQuery.js","sourceRoot":"","sources":["../src/useDbQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAQ3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,UAAU,CACzB,EAAU,EACV,MAAyB,EACzB,OAAyB,EACzB,OAAc,EAAE;IAEhB,uDAAuD;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACnF,6DAA6D;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAE5D,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,SAAS,GAAG,IAAI,CAAA;QAEpB,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;gBACjB,oDAAoD;gBACpD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBACnC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;wBAC9B,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;4BAC9B,aAAa,CAAC,KAAK,CAAC,CAAA;4BACpB,OAAO,EAAE,CAAA;wBACV,CAAC;oBACF,CAAC,EAAE,EAAE,CAAC,CAAA;gBACP,CAAC,CAAC,CAAA;YACH,CAAC;YACD,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAA;gBAC9B,IAAI,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;gBACpD,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;gBACvD,IAAI,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;gBACxD,CAAC;YACF,CAAC;QACF,CAAC,CAAA;QAED,gBAAgB;QAChB,SAAS,EAAE,CAAA;QAEX,+BAA+B;QAC/B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE;YAC1C,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;YACtE,IAAI,YAAY,EAAE,CAAC;gBAClB,SAAS,EAAE,CAAA;YACZ,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACX,SAAS,GAAG,KAAK,CAAA;YACjB,GAAG,CAAC,KAAK,EAAE,CAAA;QACZ,CAAC,CAAA;QACD,uDAAuD;IACxD,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;IAE7C,OAAO,KAAK,CAAA;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slimr/dbsync",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "author": "Brian Dombrowski",
5
5
  "license": "ISC",
6
6
  "private": false,