nanodb-orm 0.0.2 โ†’ 0.0.3

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.
Files changed (41) hide show
  1. package/README.md +71 -2
  2. package/dist/core/connection.d.ts +14 -2
  3. package/dist/core/connection.d.ts.map +1 -1
  4. package/dist/core/connection.js +36 -4
  5. package/dist/core/connection.js.map +1 -1
  6. package/dist/types/database.d.ts +74 -0
  7. package/dist/types/database.d.ts.map +1 -0
  8. package/dist/types/database.js +6 -0
  9. package/dist/types/database.js.map +1 -0
  10. package/dist/types/index.d.ts +1 -0
  11. package/dist/types/index.d.ts.map +1 -1
  12. package/dist/types/index.js +1 -0
  13. package/dist/types/index.js.map +1 -1
  14. package/dist/utils/error-handler.d.ts +36 -0
  15. package/dist/utils/error-handler.d.ts.map +1 -0
  16. package/dist/utils/error-handler.js +93 -0
  17. package/dist/utils/error-handler.js.map +1 -0
  18. package/dist/utils/index.d.ts +2 -0
  19. package/dist/utils/index.d.ts.map +1 -1
  20. package/dist/utils/index.js +5 -1
  21. package/dist/utils/index.js.map +1 -1
  22. package/dist/utils/migrations.d.ts.map +1 -1
  23. package/dist/utils/migrations.js +63 -46
  24. package/dist/utils/migrations.js.map +1 -1
  25. package/dist/utils/schema-introspection.d.ts +2 -6
  26. package/dist/utils/schema-introspection.d.ts.map +1 -1
  27. package/dist/utils/schema-introspection.js +7 -4
  28. package/dist/utils/schema-introspection.js.map +1 -1
  29. package/dist/utils/seeds.d.ts.map +1 -1
  30. package/dist/utils/seeds.js +6 -3
  31. package/dist/utils/seeds.js.map +1 -1
  32. package/dist/utils/sync.d.ts +3 -16
  33. package/dist/utils/sync.d.ts.map +1 -1
  34. package/dist/utils/sync.js +9 -8
  35. package/dist/utils/sync.js.map +1 -1
  36. package/dist/utils/transactions.d.ts +55 -0
  37. package/dist/utils/transactions.d.ts.map +1 -0
  38. package/dist/utils/transactions.js +159 -0
  39. package/dist/utils/transactions.js.map +1 -0
  40. package/llm.txt +72 -4
  41. package/package.json +1 -1
package/README.md CHANGED
@@ -1,16 +1,20 @@
1
1
  # nanodb-orm
2
2
 
3
- A generic, flexible database package built on top of Drizzle ORM with automatic migrations, schema introspection, and support for both local SQLite and remote Turso databases.
3
+ A production-ready, generic database package built on top of Drizzle ORM with automatic migrations, schema introspection, atomic transactions, and support for both local SQLite and remote Turso databases.
4
4
 
5
5
  ## Features
6
6
 
7
7
  - ๐Ÿš€ **Auto-Migrations**: Automatically creates and updates database schemas from Drizzle table definitions
8
8
  - ๐Ÿ” **Schema Introspection**: Comprehensive schema analysis and validation
9
9
  - ๐ŸŒ **Multi-Database Support**: Works with local SQLite and remote Turso databases
10
- - ๐Ÿ“ฆ **NPM Package Ready**: Designed to be used as a standalone npm package
10
+ - โšก **Atomic Transactions**: Full transaction support with rollback protection
11
11
  - ๐Ÿ›ก๏ธ **Type Safe**: Full TypeScript support with proper type inference
12
+ - ๐Ÿ”’ **Security**: SQL injection protection and input validation
13
+ - ๐Ÿงต **Thread Safe**: Race condition fixes and concurrent access protection
14
+ - ๐Ÿ“ฆ **NPM Package Ready**: Designed to be used as a standalone npm package
12
15
  - โš™๏ธ **Configurable**: Flexible migration and seeding options
13
16
  - ๐Ÿงช **Test Ready**: Built-in testing utilities and isolation
17
+ - ๐Ÿ”ง **Production Ready**: Enhanced error handling and reliability features
14
18
 
15
19
  ## Installation
16
20
 
@@ -337,6 +341,71 @@ initializeDatabase({
337
341
  });
338
342
  ```
339
343
 
344
+ ### Transaction Support (NEW in v0.0.3)
345
+
346
+ ```typescript
347
+ import { TransactionManager } from 'nanodb-orm';
348
+
349
+ // Atomic operations
350
+ await TransactionManager.execute(async (db) => {
351
+ await db.run('INSERT INTO users (name, email) VALUES (?, ?)', ['John', 'john@example.com']);
352
+ await db.run('INSERT INTO posts (title, content, userId) VALUES (?, ?, ?)', ['Hello', 'World', 1]);
353
+ // All operations succeed or all fail
354
+ });
355
+
356
+ // Batch operations
357
+ await TransactionManager.executeBatch([
358
+ async (db) => await db.run('INSERT INTO users ...'),
359
+ async (db) => await db.run('INSERT INTO posts ...'),
360
+ async (db) => await db.run('UPDATE stats ...')
361
+ ]);
362
+
363
+ // Table recreation with transactions
364
+ await TransactionManager.recreateTable('users', async (db) => {
365
+ await db.run('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)');
366
+ });
367
+ ```
368
+
369
+ ### Enhanced Error Handling (NEW in v0.0.3)
370
+
371
+ ```typescript
372
+ import { ErrorHandler, DatabaseError } from 'nanodb-orm';
373
+
374
+ try {
375
+ await DatabaseSync.setup();
376
+ } catch (error) {
377
+ if (error instanceof DatabaseError) {
378
+ console.log('Operation:', error.operation);
379
+ console.log('Context:', error.message);
380
+ console.log('Original Error:', error.originalError);
381
+ }
382
+ }
383
+
384
+ // Non-throwing error handling
385
+ const result = ErrorHandler.handleNonThrowingError(
386
+ someError,
387
+ 'optional-operation',
388
+ 'This operation is optional'
389
+ );
390
+ ```
391
+
392
+ ### Thread-Safe Connections (NEW in v0.0.3)
393
+
394
+ ```typescript
395
+ import { DatabaseConnection } from 'nanodb-orm';
396
+
397
+ // NEW: Async connection (recommended)
398
+ const db = await DatabaseConnection.getInstance();
399
+
400
+ // OLD: Synchronous connection (deprecated but still works)
401
+ const db = DatabaseConnection.getInstanceSync();
402
+
403
+ // Check connection status
404
+ if (DatabaseConnection.isConnected()) {
405
+ console.log('Database is connected');
406
+ }
407
+ ```
408
+
340
409
  ### Schema Introspection
341
410
 
342
411
  ```typescript
@@ -1,15 +1,27 @@
1
+ import { drizzle } from 'drizzle-orm/libsql';
1
2
  /**
2
3
  * Database connection management
3
4
  * Handles the creation and configuration of database connections
4
5
  */
5
6
  export declare class DatabaseConnection {
6
7
  private static instance;
8
+ private static isCreating;
9
+ private static creationPromise;
7
10
  /**
8
- * Get or create the database connection instance
11
+ * Get or create the database connection instance (thread-safe)
9
12
  */
10
- static getInstance(): import("drizzle-orm/libsql").LibSQLDatabase<Record<string, unknown>> & {
13
+ static getInstance(): Promise<ReturnType<typeof drizzle>>;
14
+ /**
15
+ * Synchronous getter for backward compatibility (deprecated)
16
+ * @deprecated Use getInstance() instead for thread safety
17
+ */
18
+ static getInstanceSync(): import("drizzle-orm/libsql").LibSQLDatabase<Record<string, unknown>> & {
11
19
  $client: import("@libsql/client").Client;
12
20
  };
21
+ /**
22
+ * Create a new database connection asynchronously
23
+ */
24
+ private static createConnectionAsync;
13
25
  /**
14
26
  * Create a new database connection
15
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2C;IAElE;;OAEG;IACH,MAAM,CAAC,WAAW;;;IAOlB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAmC/B;;OAEG;IACH,MAAM,CAAC,KAAK;IAIZ;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B;AAGD,eAAO,MAAM,EAAE;;CAAmC,CAAC"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAK7C;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA2C;IAClE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAS;IAClC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAoD;IAElF;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;IAqB/D;;;OAGG;IACH,MAAM,CAAC,eAAe;;;IAOtB;;OAEG;mBACkB,qBAAqB;IAI1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAmC/B;;OAEG;IACH,MAAM,CAAC,KAAK;IAMZ;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;CAG9B;AAGD,eAAO,MAAM,EAAE;;CAAuC,CAAC"}
@@ -11,14 +11,42 @@ const errors_1 = require("../types/errors");
11
11
  */
12
12
  class DatabaseConnection {
13
13
  /**
14
- * Get or create the database connection instance
14
+ * Get or create the database connection instance (thread-safe)
15
15
  */
16
- static getInstance() {
16
+ static async getInstance() {
17
+ if (this.instance) {
18
+ return this.instance;
19
+ }
20
+ if (this.isCreating && this.creationPromise) {
21
+ return this.creationPromise;
22
+ }
23
+ this.isCreating = true;
24
+ this.creationPromise = this.createConnectionAsync();
25
+ try {
26
+ this.instance = await this.creationPromise;
27
+ return this.instance;
28
+ }
29
+ finally {
30
+ this.isCreating = false;
31
+ this.creationPromise = null;
32
+ }
33
+ }
34
+ /**
35
+ * Synchronous getter for backward compatibility (deprecated)
36
+ * @deprecated Use getInstance() instead for thread safety
37
+ */
38
+ static getInstanceSync() {
17
39
  if (!this.instance) {
18
40
  this.instance = this.createConnection();
19
41
  }
20
42
  return this.instance;
21
43
  }
44
+ /**
45
+ * Create a new database connection asynchronously
46
+ */
47
+ static async createConnectionAsync() {
48
+ return this.createConnection();
49
+ }
22
50
  /**
23
51
  * Create a new database connection
24
52
  */
@@ -62,6 +90,8 @@ class DatabaseConnection {
62
90
  */
63
91
  static reset() {
64
92
  this.instance = null;
93
+ this.isCreating = false;
94
+ this.creationPromise = null;
65
95
  }
66
96
  /**
67
97
  * Check if connection is established
@@ -72,6 +102,8 @@ class DatabaseConnection {
72
102
  }
73
103
  exports.DatabaseConnection = DatabaseConnection;
74
104
  DatabaseConnection.instance = null;
75
- // Export the database instance for convenience
76
- exports.db = DatabaseConnection.getInstance();
105
+ DatabaseConnection.isCreating = false;
106
+ DatabaseConnection.creationPromise = null;
107
+ // Export the database instance for convenience (deprecated - use getInstance() instead)
108
+ exports.db = DatabaseConnection.getInstanceSync();
77
109
  //# sourceMappingURL=connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAC7C,2CAA8C;AAC9C,qCAA6C;AAC7C,4CAAgD;AAEhD;;;GAGG;AACH,MAAa,kBAAkB;IAG7B;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,gBAAgB;QAC7B,IAAI,CAAC;YACH,4EAA4E;YAC5E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;gBAC7E,iEAAiE;gBACjE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBACpG,OAAO,CAAC,GAAG,CAAC,4CAA4C,UAAU,EAAE,CAAC,CAAC;gBACtE,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC;oBAC1B,GAAG,EAAE,QAAQ,UAAU,EAAE;iBAC1B,CAAC,CAAC;gBACH,OAAO,IAAA,gBAAO,EAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAED,2EAA2E;YAC3E,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAA,0BAAiB,GAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC;oBAC1B,GAAG,EAAE,MAAM,CAAC,aAAa;oBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC3C,OAAO,IAAA,gBAAO,EAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,oCAAoC;gBACpC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC;oBAC1B,GAAG,EAAE,kBAAkB;iBACxB,CAAC,CAAC;gBACH,OAAO,IAAA,gBAAO,EAAC,MAAM,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,sBAAa,CAAC,yCAA0C,KAAe,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,KAAc,CAAC,CAAC;QAC7H,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;IAChC,CAAC;;AA/DH,gDAgEC;AA/DgB,2BAAQ,GAAsC,IAAI,CAAC;AAiEpE,+CAA+C;AAClC,QAAA,EAAE,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../core/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Database type definitions for better type safety
3
+ */
4
+ export interface DatabaseClient {
5
+ run(query: string, params?: any[]): Promise<{
6
+ rows: any[];
7
+ }>;
8
+ $client?: {
9
+ sync?: () => Promise<void>;
10
+ [key: string]: any;
11
+ };
12
+ }
13
+ export interface TableColumn {
14
+ name: string;
15
+ dataType: string;
16
+ primary?: boolean;
17
+ autoIncrement?: boolean;
18
+ notNull?: boolean;
19
+ unique?: boolean;
20
+ default?: any;
21
+ references?: {
22
+ table: string;
23
+ column: string;
24
+ onDelete?: string;
25
+ };
26
+ }
27
+ export interface TableDefinition {
28
+ name: string;
29
+ columns: Record<string, TableColumn>;
30
+ primaryKey: string[];
31
+ foreignKeys: Array<{
32
+ column: string;
33
+ references: string;
34
+ table: string;
35
+ }>;
36
+ indexes: string[];
37
+ }
38
+ export interface DatabaseRow {
39
+ [key: string]: any;
40
+ }
41
+ export interface QueryResult {
42
+ rows: DatabaseRow[];
43
+ changes?: number;
44
+ lastInsertRowid?: number;
45
+ }
46
+ export interface MigrationResult {
47
+ success: boolean;
48
+ message: string;
49
+ tablesAffected: string[];
50
+ errors: string[];
51
+ }
52
+ export interface SchemaValidationResult {
53
+ isValid: boolean;
54
+ missingTables: string[];
55
+ extraTables: string[];
56
+ errors: string[];
57
+ }
58
+ export interface DatabaseInfoExtended {
59
+ tables: string[];
60
+ tableCounts: Record<string, number>;
61
+ totalRecords: number;
62
+ schemaValid: boolean;
63
+ syncSupported: boolean;
64
+ }
65
+ export interface HealthCheckResultExtended {
66
+ healthy: boolean;
67
+ tables: string[];
68
+ tableCounts: Record<string, number>;
69
+ totalRecords: number;
70
+ schemaValid: boolean;
71
+ syncSupported: boolean;
72
+ errors: string[];
73
+ }
74
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../types/database.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,KAAK,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Database type definitions for better type safety
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../types/database.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -4,4 +4,5 @@
4
4
  */
5
5
  export * from './types';
6
6
  export * from './errors';
7
+ export * from './database';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
@@ -20,4 +20,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  __exportStar(require("./types"), exports);
22
22
  __exportStar(require("./errors"), exports);
23
+ __exportStar(require("./database"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Standardized error handling utilities for database operations
3
+ */
4
+ import { DatabaseError } from '../types/errors';
5
+ export interface ErrorHandlerOptions {
6
+ operation: string;
7
+ context?: string | undefined;
8
+ throwError?: boolean;
9
+ logLevel?: 'debug' | 'info' | 'warn' | 'error';
10
+ }
11
+ /**
12
+ * Standardized error handling for database operations
13
+ */
14
+ export declare class ErrorHandler {
15
+ /**
16
+ * Handle database errors with consistent logging and error creation
17
+ */
18
+ static handleError(error: unknown, options: ErrorHandlerOptions): DatabaseError | null;
19
+ /**
20
+ * Handle errors that should not throw (e.g., validation failures)
21
+ */
22
+ static handleNonThrowingError(error: unknown, operation: string, context?: string): DatabaseError;
23
+ /**
24
+ * Handle errors that should be logged but not thrown (e.g., optional operations)
25
+ */
26
+ static handleOptionalError(error: unknown, operation: string, context?: string): void;
27
+ /**
28
+ * Wrap async operations with standardized error handling
29
+ */
30
+ static wrapAsync<T>(operation: () => Promise<T>, options: ErrorHandlerOptions): Promise<T>;
31
+ /**
32
+ * Wrap sync operations with standardized error handling
33
+ */
34
+ static wrapSync<T>(operation: () => T, options: ErrorHandlerOptions): T;
35
+ }
36
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../utils/error-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAChD;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,WAAW,CAChB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,mBAAmB,GAC3B,aAAa,GAAG,IAAI;IAuCvB;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAC3B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,aAAa;IAUhB;;OAEG;IACH,MAAM,CAAC,mBAAmB,CACxB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IASP;;OAEG;WACU,SAAS,CAAC,CAAC,EACtB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC;IASb;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EACf,SAAS,EAAE,MAAM,CAAC,EAClB,OAAO,EAAE,mBAAmB,GAC3B,CAAC;CAQL"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ /**
3
+ * Standardized error handling utilities for database operations
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ErrorHandler = void 0;
7
+ const logger_1 = require("./logger");
8
+ const errors_1 = require("../types/errors");
9
+ /**
10
+ * Standardized error handling for database operations
11
+ */
12
+ class ErrorHandler {
13
+ /**
14
+ * Handle database errors with consistent logging and error creation
15
+ */
16
+ static handleError(error, options) {
17
+ const { operation, context, throwError = true, logLevel = 'error' } = options;
18
+ const errorMessage = error instanceof Error ? error.message : String(error);
19
+ const fullMessage = context
20
+ ? `${context}: ${errorMessage}`
21
+ : errorMessage;
22
+ const dbError = new errors_1.DatabaseError(fullMessage, operation, error instanceof Error ? error : undefined);
23
+ // Log with appropriate level
24
+ switch (logLevel) {
25
+ case 'debug':
26
+ logger_1.logger.debug(dbError.message, dbError);
27
+ break;
28
+ case 'info':
29
+ logger_1.logger.info(dbError.message, dbError);
30
+ break;
31
+ case 'warn':
32
+ logger_1.logger.warn(dbError.message, dbError);
33
+ break;
34
+ case 'error':
35
+ default:
36
+ logger_1.logger.error(dbError.message, dbError);
37
+ break;
38
+ }
39
+ if (throwError) {
40
+ throw dbError;
41
+ }
42
+ return dbError;
43
+ }
44
+ /**
45
+ * Handle errors that should not throw (e.g., validation failures)
46
+ */
47
+ static handleNonThrowingError(error, operation, context) {
48
+ const result = this.handleError(error, {
49
+ operation,
50
+ context,
51
+ throwError: false,
52
+ logLevel: 'warn'
53
+ });
54
+ return result; // We know it won't be null because throwError is false
55
+ }
56
+ /**
57
+ * Handle errors that should be logged but not thrown (e.g., optional operations)
58
+ */
59
+ static handleOptionalError(error, operation, context) {
60
+ this.handleError(error, {
61
+ operation,
62
+ context,
63
+ throwError: false,
64
+ logLevel: 'info'
65
+ });
66
+ }
67
+ /**
68
+ * Wrap async operations with standardized error handling
69
+ */
70
+ static async wrapAsync(operation, options) {
71
+ try {
72
+ return await operation();
73
+ }
74
+ catch (error) {
75
+ this.handleError(error, options);
76
+ throw error; // This will never be reached due to handleError throwing
77
+ }
78
+ }
79
+ /**
80
+ * Wrap sync operations with standardized error handling
81
+ */
82
+ static wrapSync(operation, options) {
83
+ try {
84
+ return operation();
85
+ }
86
+ catch (error) {
87
+ this.handleError(error, options);
88
+ throw error; // This will never be reached due to handleError throwing
89
+ }
90
+ }
91
+ }
92
+ exports.ErrorHandler = ErrorHandler;
93
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../utils/error-handler.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,qCAAkC;AAClC,4CAAgD;AAShD;;GAEG;AACH,MAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,WAAW,CAChB,KAAc,EACd,OAA4B;QAE5B,MAAM,EACJ,SAAS,EACT,OAAO,EACP,UAAU,GAAG,IAAI,EACjB,QAAQ,GAAG,OAAO,EACnB,GAAG,OAAO,CAAC;QAEZ,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,OAAO;YACzB,CAAC,CAAC,GAAG,OAAO,KAAK,YAAY,EAAE;YAC/B,CAAC,CAAC,YAAY,CAAC;QAEjB,MAAM,OAAO,GAAG,IAAI,sBAAa,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEtG,6BAA6B;QAC7B,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,OAAO;gBACV,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,MAAM;gBACT,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,MAAM;gBACT,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,OAAO,CAAC;YACb;gBACE,eAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACvC,MAAM;QACV,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,OAAO,CAAC;QAChB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAC3B,KAAc,EACd,SAAiB,EACjB,OAAgB;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YACrC,SAAS;YACT,OAAO;YACP,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;QACH,OAAO,MAAO,CAAC,CAAC,uDAAuD;IACzE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CACxB,KAAc,EACd,SAAiB,EACjB,OAAgB;QAEhB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;YACtB,SAAS;YACT,OAAO;YACP,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,SAA2B,EAC3B,OAA4B;QAE5B,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjC,MAAM,KAAK,CAAC,CAAC,yDAAyD;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CACb,SAAkB,EAClB,OAA4B;QAE5B,IAAI,CAAC;YACH,OAAO,SAAS,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjC,MAAM,KAAK,CAAC,CAAC,yDAAyD;QACxE,CAAC;IACH,CAAC;CACF;AA5GD,oCA4GC"}
@@ -7,4 +7,6 @@ export { DatabaseMigrations } from './migrations';
7
7
  export { DatabaseSeeds } from './seeds';
8
8
  export { SchemaIntrospection } from './schema-introspection';
9
9
  export { logger } from './logger';
10
+ export { ErrorHandler } from './error-handler';
11
+ export { TransactionManager } from './transactions';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Helper functions and services for database operations
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.logger = exports.SchemaIntrospection = exports.DatabaseSeeds = exports.DatabaseMigrations = exports.DatabaseSync = void 0;
7
+ exports.TransactionManager = exports.ErrorHandler = exports.logger = exports.SchemaIntrospection = exports.DatabaseSeeds = exports.DatabaseMigrations = exports.DatabaseSync = void 0;
8
8
  var sync_1 = require("./sync");
9
9
  Object.defineProperty(exports, "DatabaseSync", { enumerable: true, get: function () { return sync_1.DatabaseSync; } });
10
10
  var migrations_1 = require("./migrations");
@@ -15,4 +15,8 @@ var schema_introspection_1 = require("./schema-introspection");
15
15
  Object.defineProperty(exports, "SchemaIntrospection", { enumerable: true, get: function () { return schema_introspection_1.SchemaIntrospection; } });
16
16
  var logger_1 = require("./logger");
17
17
  Object.defineProperty(exports, "logger", { enumerable: true, get: function () { return logger_1.logger; } });
18
+ var error_handler_1 = require("./error-handler");
19
+ Object.defineProperty(exports, "ErrorHandler", { enumerable: true, get: function () { return error_handler_1.ErrorHandler; } });
20
+ var transactions_1 = require("./transactions");
21
+ Object.defineProperty(exports, "TransactionManager", { enumerable: true, get: function () { return transactions_1.TransactionManager; } });
18
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAAsC;AAA7B,oGAAA,YAAY,OAAA;AACrB,2CAAkD;AAAzC,gHAAA,kBAAkB,OAAA;AAC3B,iCAAwC;AAA/B,sGAAA,aAAa,OAAA;AACtB,+DAA6D;AAApD,2HAAA,mBAAmB,OAAA;AAC5B,mCAAkC;AAAzB,gGAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAAsC;AAA7B,oGAAA,YAAY,OAAA;AACrB,2CAAkD;AAAzC,gHAAA,kBAAkB,OAAA;AAC3B,iCAAwC;AAA/B,sGAAA,aAAa,OAAA;AACtB,+DAA6D;AAApD,2HAAA,mBAAmB,OAAA;AAC5B,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AACf,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,+CAAoD;AAA3C,kHAAA,kBAAkB,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../utils/migrations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,CAA2B;IAChD,OAAO,CAAC,MAAM,CAAC,eAAe,CAI5B;IAEF;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,IAAI;IASR;;;OAGG;WACU,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB9C;;;OAGG;mBACkB,sBAAsB;IAqD3C;;OAEG;mBACkB,mBAAmB;IAqCxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA8BjC;;OAEG;mBACkB,gBAAgB;IAarC;;OAEG;mBACkB,YAAY;IAcjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IA8FrC;;;OAGG;WACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3C;;;OAGG;WACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3C;;;OAGG;WACU,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA4BpE;;;OAGG;WACU,cAAc,IAAI,OAAO,CAAC;QACrC,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IAuCF;;;OAGG;WACU,kBAAkB,IAAI,OAAO,CAAC;QACzC,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CAwBH"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../utils/migrations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,CAA2B;IAChD,OAAO,CAAC,MAAM,CAAC,eAAe,CAI5B;IAEF;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5B,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,eAAe,CAAC,EAAE,eAAe,CAAC;KACnC,GAAG,IAAI;IASR;;;OAGG;WACU,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB9C;;;OAGG;mBACkB,sBAAsB;IAoE3C;;OAEG;mBACkB,mBAAmB;IA6CxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA8BjC;;OAEG;mBACkB,gBAAgB;IAarC;;OAEG;mBACkB,YAAY;IAcjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAiGrC;;;OAGG;WACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAmC3C;;;OAGG;WACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3C;;;OAGG;WACU,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IA4BpE;;;OAGG;WACU,cAAc,IAAI,OAAO,CAAC;QACrC,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IAuCF;;;OAGG;WACU,kBAAkB,IAAI,OAAO,CAAC;QACzC,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CAwBH"}