@coherent.js/database 1.0.0-beta.5 → 1.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/database/adapters/memory.js +7 -7
- package/dist/database/adapters/mongodb.js +6 -6
- package/dist/database/adapters/postgresql.js +2 -2
- package/dist/database/adapters/sqlite.js +4 -4
- package/dist/database/connection-manager.d.ts +13 -0
- package/dist/database/connection-manager.d.ts.map +1 -1
- package/dist/database/connection-manager.js +31 -16
- package/dist/database/connection-manager.js.map +1 -1
- package/dist/database/index.d.ts +3 -3
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +8 -5
- package/dist/database/index.js.map +1 -1
- package/dist/database/middleware.d.ts.map +1 -1
- package/dist/database/middleware.js +59 -46
- package/dist/database/middleware.js.map +1 -1
- package/dist/database/migration.d.ts +122 -16
- package/dist/database/migration.d.ts.map +1 -1
- package/dist/database/migration.js +541 -18
- package/dist/database/migration.js.map +1 -1
- package/dist/database/model.d.ts +74 -1
- package/dist/database/model.d.ts.map +1 -1
- package/dist/database/model.js +519 -0
- package/dist/database/model.js.map +1 -1
- package/dist/database/query-builder.d.ts +25 -0
- package/dist/database/query-builder.d.ts.map +1 -1
- package/dist/database/query-builder.js +66 -5
- package/dist/database/query-builder.js.map +1 -1
- package/dist/database/utils.js +12 -12
- package/dist/index.cjs +1049 -830
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +1049 -830
- package/dist/index.js.map +3 -3
- package/package.json +6 -2
- package/types/index.d.ts +337 -116
|
@@ -89,7 +89,7 @@ export class MemoryAdapter {
|
|
|
89
89
|
direction = 'ASC';
|
|
90
90
|
}
|
|
91
91
|
if (field) {
|
|
92
|
-
const
|
|
92
|
+
const _dir = direction.toLowerCase();
|
|
93
93
|
results.sort((a, b) => {
|
|
94
94
|
if (a[field] < b[field])
|
|
95
95
|
return dir === 'asc' ? -1 : 1;
|
|
@@ -174,7 +174,7 @@ export class MemoryAdapter {
|
|
|
174
174
|
* @returns {Promise<*>} Result of the transaction
|
|
175
175
|
*/
|
|
176
176
|
async transaction(callback) {
|
|
177
|
-
// In a real implementation, this would track changes and rollback on
|
|
177
|
+
// In a real implementation, this would track changes and rollback on error
|
|
178
178
|
// For this simple implementation, we'll just execute the callback
|
|
179
179
|
try {
|
|
180
180
|
const result = await callback({
|
|
@@ -182,9 +182,9 @@ export class MemoryAdapter {
|
|
|
182
182
|
});
|
|
183
183
|
return result;
|
|
184
184
|
}
|
|
185
|
-
catch (
|
|
185
|
+
catch (error) {
|
|
186
186
|
// In a real implementation, we would rollback changes here
|
|
187
|
-
throw
|
|
187
|
+
throw error;
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
190
|
};
|
|
@@ -233,7 +233,7 @@ export class MemoryAdapter {
|
|
|
233
233
|
* @returns {Promise<*>} Result of the transaction
|
|
234
234
|
*/
|
|
235
235
|
async transaction(callback) {
|
|
236
|
-
// In a real implementation, this would track changes and rollback on
|
|
236
|
+
// In a real implementation, this would track changes and rollback on error
|
|
237
237
|
// For this simple implementation, we'll just execute the callback
|
|
238
238
|
try {
|
|
239
239
|
const result = await callback({
|
|
@@ -241,9 +241,9 @@ export class MemoryAdapter {
|
|
|
241
241
|
});
|
|
242
242
|
return result;
|
|
243
243
|
}
|
|
244
|
-
catch (
|
|
244
|
+
catch (error) {
|
|
245
245
|
// In a real implementation, we would rollback changes here
|
|
246
|
-
throw
|
|
246
|
+
throw error;
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
}
|
|
@@ -46,8 +46,8 @@ export function createMongoDBAdapter() {
|
|
|
46
46
|
db = client.db(config.database);
|
|
47
47
|
return instance;
|
|
48
48
|
}
|
|
49
|
-
catch (
|
|
50
|
-
throw new Error(`Failed to connect to MongoDB: ${
|
|
49
|
+
catch (error) {
|
|
50
|
+
throw new Error(`Failed to connect to MongoDB: ${error.message}`);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
@@ -79,8 +79,8 @@ export function createMongoDBAdapter() {
|
|
|
79
79
|
}
|
|
80
80
|
return cursor.toArray();
|
|
81
81
|
}
|
|
82
|
-
catch (
|
|
83
|
-
throw new Error(`MongoDB query
|
|
82
|
+
catch (error) {
|
|
83
|
+
throw new Error(`MongoDB query error: ${error.message}`);
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
/**
|
|
@@ -96,8 +96,8 @@ export function createMongoDBAdapter() {
|
|
|
96
96
|
try {
|
|
97
97
|
return await db.command(command);
|
|
98
98
|
}
|
|
99
|
-
catch (
|
|
100
|
-
throw new Error(`MongoDB command
|
|
99
|
+
catch (error) {
|
|
100
|
+
throw new Error(`MongoDB command error: ${error.message}`);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
@@ -55,8 +55,8 @@ export function createPostgreSQLAdapter() {
|
|
|
55
55
|
ssl: config.ssl || false
|
|
56
56
|
};
|
|
57
57
|
const pool = new pg.Pool(poolConfig);
|
|
58
|
-
pool.on('
|
|
59
|
-
console.
|
|
58
|
+
pool.on('error', (err) => {
|
|
59
|
+
console.error('PostgreSQL pool error:', err);
|
|
60
60
|
});
|
|
61
61
|
return pool;
|
|
62
62
|
},
|
|
@@ -54,8 +54,8 @@ export function createSQLiteAdapter() {
|
|
|
54
54
|
resolve(instance);
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
-
catch (
|
|
58
|
-
reject(new Error(`Failed to connect to SQLite database: ${
|
|
57
|
+
catch (error) {
|
|
58
|
+
reject(new Error(`Failed to connect to SQLite database: ${error.message}`));
|
|
59
59
|
}
|
|
60
60
|
});
|
|
61
61
|
}
|
|
@@ -73,7 +73,7 @@ export function createSQLiteAdapter() {
|
|
|
73
73
|
}
|
|
74
74
|
db.all(sql, params, (err, rows) => {
|
|
75
75
|
if (err) {
|
|
76
|
-
return reject(new Error(`SQLite query
|
|
76
|
+
return reject(new Error(`SQLite query error: ${err.message}`));
|
|
77
77
|
}
|
|
78
78
|
resolve({ rows });
|
|
79
79
|
});
|
|
@@ -93,7 +93,7 @@ export function createSQLiteAdapter() {
|
|
|
93
93
|
}
|
|
94
94
|
db.run(sql, params, function (err) {
|
|
95
95
|
if (err) {
|
|
96
|
-
return reject(new Error(`SQLite execute
|
|
96
|
+
return reject(new Error(`SQLite execute error: ${err.message}`));
|
|
97
97
|
}
|
|
98
98
|
resolve({
|
|
99
99
|
affectedRows: this.changes,
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory function to create a DatabaseManager instance
|
|
3
|
+
*
|
|
4
|
+
* @param {Object} config - Database configuration
|
|
5
|
+
* @returns {DatabaseManager} Database manager instance
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* const db = createDatabaseManager({
|
|
9
|
+
* type: 'sqlite',
|
|
10
|
+
* database: './app.db'
|
|
11
|
+
* });
|
|
12
|
+
*/
|
|
13
|
+
export function createDatabaseManager(config: Object): DatabaseManager;
|
|
1
14
|
/**
|
|
2
15
|
* Database Connection Manager
|
|
3
16
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../../src/database/connection-manager.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../../src/database/connection-manager.js"],"names":[],"mappings":"AA6ZA;;;;;;;;;;;GAWG;AACH,8CATW,MAAM,GACJ,eAAe,CAU3B;AAlaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH;IACE,yBAuBC;IApBC,eAAyC;IACzC,uBAAmB;IACnB,UAAgB;IAChB,qBAAwB;IACxB,2BAA2B;IAC3B,mBAAmB;IAGnB,2CAA+B;IAC/B,6BAAiC;IAGjC;;;;;;;MAOC;IAGH;;;;;;;OAOG;IACH,uBA8DC;IAED;;;;;;;;;OASG;IACH,WAPa,OAAO,CAAC,IAAI,CAAC,CA4CzB;IAED;;;;;;OAMG;IACH,oBAsCC;IAED;;;;;OAKG;IACH,uBAoBC;IAED;;;;;;;;;;;OAWG;IACH,uCANa,OAAO,CAAC,MAAM,CAAC,CAiD3B;IAED;;;;;;;;;;;;;;;OAeG;IACH,eAba,OAAO,CAAC,MAAM,CAAC,CAmB3B;IAED;;;;OAIG;IACH,yBAiBC;IAED;;;;OAIG;IACH,YAFa,MAAM,CAQlB;IAED;;;;OAIG;IACH,SAFa,OAAO,CAAC,IAAI,CAAC,CA2BzB;CACF;6BApZ4B,QAAQ"}
|
|
@@ -150,16 +150,16 @@ export class DatabaseManager extends EventEmitter {
|
|
|
150
150
|
}
|
|
151
151
|
return this;
|
|
152
152
|
}
|
|
153
|
-
catch (
|
|
153
|
+
catch (error) {
|
|
154
154
|
this.connectionAttempts++;
|
|
155
155
|
this.stats.failedConnections++;
|
|
156
|
-
this.emit('
|
|
156
|
+
this.emit('error', error);
|
|
157
157
|
if (this.connectionAttempts < this.maxRetries) {
|
|
158
158
|
console.warn(`Connection attempt ${this.connectionAttempts} failed. Retrying in 2 seconds...`);
|
|
159
159
|
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
160
160
|
return this.connect();
|
|
161
161
|
}
|
|
162
|
-
throw new Error(`Failed to connect to database after ${this.connectionAttempts} attempts: ${
|
|
162
|
+
throw new Error(`Failed to connect to database after ${this.connectionAttempts} attempts: ${error.message}`);
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
/**
|
|
@@ -199,8 +199,8 @@ export class DatabaseManager extends EventEmitter {
|
|
|
199
199
|
}
|
|
200
200
|
throw new Error(`No valid adapter found in ${adapterPath}`);
|
|
201
201
|
})
|
|
202
|
-
.catch(
|
|
203
|
-
throw new Error(`Failed to load ${type} adapter: ${
|
|
202
|
+
.catch(error => {
|
|
203
|
+
throw new Error(`Failed to load ${type} adapter: ${error.message}`);
|
|
204
204
|
});
|
|
205
205
|
}
|
|
206
206
|
/**
|
|
@@ -224,9 +224,9 @@ export class DatabaseManager extends EventEmitter {
|
|
|
224
224
|
this.stats.lastHealthCheck = new Date();
|
|
225
225
|
this.emit('connect:test', { duration });
|
|
226
226
|
}
|
|
227
|
-
catch (
|
|
228
|
-
this.emit('
|
|
229
|
-
throw new Error(`Database connection test failed: ${
|
|
227
|
+
catch (error) {
|
|
228
|
+
this.emit('error', error);
|
|
229
|
+
throw new Error(`Database connection test failed: ${error.message}`);
|
|
230
230
|
}
|
|
231
231
|
}
|
|
232
232
|
/**
|
|
@@ -270,10 +270,10 @@ export class DatabaseManager extends EventEmitter {
|
|
|
270
270
|
this.emit('query', { operation, params, duration });
|
|
271
271
|
return result;
|
|
272
272
|
}
|
|
273
|
-
catch (
|
|
273
|
+
catch (error) {
|
|
274
274
|
const duration = Date.now() - startTime;
|
|
275
|
-
this.emit('queryError', { operation, params, duration,
|
|
276
|
-
throw new Error(`Query failed: ${
|
|
275
|
+
this.emit('queryError', { operation, params, duration, error: error.message });
|
|
276
|
+
throw new Error(`Query failed: ${error.message}`);
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
279
|
/**
|
|
@@ -287,9 +287,9 @@ export class DatabaseManager extends EventEmitter {
|
|
|
287
287
|
* await tx.query('INSERT INTO users (name) VALUES (?)', ['John']);
|
|
288
288
|
* await tx.query('INSERT INTO profiles (user_id) VALUES (?)', [userId]);
|
|
289
289
|
* await tx.commit();
|
|
290
|
-
* } catch (
|
|
290
|
+
* } catch (error) {
|
|
291
291
|
* await tx.rollback();
|
|
292
|
-
* throw
|
|
292
|
+
* throw error;
|
|
293
293
|
* }
|
|
294
294
|
*/
|
|
295
295
|
async transaction() {
|
|
@@ -312,10 +312,10 @@ export class DatabaseManager extends EventEmitter {
|
|
|
312
312
|
await this.testConnection();
|
|
313
313
|
this.emit('healthCheck', { status: 'healthy', timestamp: new Date() });
|
|
314
314
|
}
|
|
315
|
-
catch (
|
|
316
|
-
this.emit('healthCheck', { status: 'unhealthy',
|
|
315
|
+
catch (error) {
|
|
316
|
+
this.emit('healthCheck', { status: 'unhealthy', error: error.message, timestamp: new Date() });
|
|
317
317
|
if (this.config.debug) {
|
|
318
|
-
console.
|
|
318
|
+
console.error('Database health check failed:', error.message);
|
|
319
319
|
}
|
|
320
320
|
}
|
|
321
321
|
}, this.healthCheckFrequency);
|
|
@@ -359,4 +359,19 @@ export class DatabaseManager extends EventEmitter {
|
|
|
359
359
|
}
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
|
+
/**
|
|
363
|
+
* Factory function to create a DatabaseManager instance
|
|
364
|
+
*
|
|
365
|
+
* @param {Object} config - Database configuration
|
|
366
|
+
* @returns {DatabaseManager} Database manager instance
|
|
367
|
+
*
|
|
368
|
+
* @example
|
|
369
|
+
* const db = createDatabaseManager({
|
|
370
|
+
* type: 'sqlite',
|
|
371
|
+
* database: './app.db'
|
|
372
|
+
* });
|
|
373
|
+
*/
|
|
374
|
+
export function createDatabaseManager(config) {
|
|
375
|
+
return new DatabaseManager(config);
|
|
376
|
+
}
|
|
362
377
|
//# sourceMappingURL=connection-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../../../src/database/connection-manager.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../../../src/database/connection-manager.js"],"names":[],"mappings":"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"}
|
package/dist/database/index.d.ts
CHANGED
|
@@ -16,10 +16,9 @@
|
|
|
16
16
|
* });
|
|
17
17
|
*/
|
|
18
18
|
export function setupDatabase(config?: Object): DatabaseManager;
|
|
19
|
-
export { DatabaseManager } from "./connection-manager.js";
|
|
20
19
|
export { createModel } from "./model.js";
|
|
21
20
|
export { createMigration } from "./migration.js";
|
|
22
|
-
export {
|
|
21
|
+
export { createDatabaseManager } from "./connection-manager.js";
|
|
23
22
|
export { createPostgreSQLAdapter as PostgreSQLAdapter } from "./adapters/postgresql.js";
|
|
24
23
|
export { createMySQLAdapter as MySQLAdapter } from "./adapters/mysql.js";
|
|
25
24
|
export { createSQLiteAdapter as SQLiteAdapter } from "./adapters/sqlite.js";
|
|
@@ -33,6 +32,7 @@ export namespace DEFAULT_DB_CONFIG {
|
|
|
33
32
|
let migrations: never[];
|
|
34
33
|
let subscribers: never[];
|
|
35
34
|
}
|
|
36
|
-
export { createQuery, executeQuery
|
|
35
|
+
export { createQuery, executeQuery } from "./query-builder.js";
|
|
36
|
+
export { withDatabase, withTransaction, withModel, withPagination } from "./middleware.js";
|
|
37
37
|
export { createConnection, runMigrations } from "./utils.js";
|
|
38
38
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/database/index.js"],"names":[],"mappings":"AA0CA;;;;;;;;;;;;;;;;GAgBG;AACH,uCAdW,MAAM,GACJ,eAAe,CAuB3B"}
|
package/dist/database/index.js
CHANGED
|
@@ -7,11 +7,14 @@
|
|
|
7
7
|
* @author Coherent.js Team
|
|
8
8
|
* @version 1.0.0
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
export { createQuery, executeQuery
|
|
10
|
+
// Factory functions preferred over classes for pure JS object architecture
|
|
11
|
+
export { createQuery, executeQuery } from './query-builder.js';
|
|
12
12
|
export { createModel } from './model.js';
|
|
13
13
|
export { createMigration } from './migration.js';
|
|
14
|
-
export {
|
|
14
|
+
export { createDatabaseManager } from './connection-manager.js';
|
|
15
|
+
export { withDatabase, withTransaction, withModel, withPagination } from './middleware.js';
|
|
16
|
+
// Import for internal use
|
|
17
|
+
import { createDatabaseManager } from './connection-manager.js';
|
|
15
18
|
// Database adapters
|
|
16
19
|
export { createPostgreSQLAdapter as PostgreSQLAdapter } from './adapters/postgresql.js';
|
|
17
20
|
export { createMySQLAdapter as MySQLAdapter } from './adapters/mysql.js';
|
|
@@ -50,10 +53,10 @@ export const DEFAULT_DB_CONFIG = {
|
|
|
50
53
|
*/
|
|
51
54
|
export function setupDatabase(config = {}) {
|
|
52
55
|
const mergedConfig = { ...DEFAULT_DB_CONFIG, ...config };
|
|
53
|
-
const dbManager =
|
|
56
|
+
const dbManager = createDatabaseManager(mergedConfig);
|
|
54
57
|
// Auto-connect if autoConnect is not explicitly set to false
|
|
55
58
|
if (mergedConfig.autoConnect !== false) {
|
|
56
|
-
dbManager.connect().catch(console.
|
|
59
|
+
dbManager.connect().catch(console.error);
|
|
57
60
|
}
|
|
58
61
|
return dbManager;
|
|
59
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/database/index.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/database/index.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,2EAA2E;AAC3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE3F,0BAA0B;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,oBAAoB;AACpB,OAAO,EAAE,uBAAuB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,kBAAkB,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,mBAAmB,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE/E,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE7D;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,aAAa,CAAC,MAAM,GAAG,EAAE;IACvC,MAAM,YAAY,GAAG,EAAE,GAAG,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAAC;IACzD,MAAM,SAAS,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAEtD,6DAA6D;IAC7D,IAAI,YAAY,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;QACvC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/database/middleware.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,iCAfW,eAAe,YACf,MAAM,YAsEhB;AAED;;;;;;;;;;;;;;GAcG;AACH,oCAZW,eAAe,YACf,MAAM,YAuChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,4DAfW,MAAM,eACN,MAAM,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../src/database/middleware.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,iCAfW,eAAe,YACf,MAAM,YAsEhB;AAED;;;;;;;;;;;;;;GAcG;AACH,oCAZW,eAAe,YACf,MAAM,YAuChB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,4DAfW,MAAM,eACN,MAAM,YAyDhB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,yCAhBW,MAAM,YA6ChB;AAED;;;;;;;;;;;;;;GAcG;AACH,4CAZW,MAAM,YACN,MAAM,YA8FhB;AAED;;;;;;;;;;;GAWG;AACH,oCATW,eAAe,YACf,MAAM,YAmDhB;AAED;;;;;;;;;GASG;AACH,uCAPW,eAAe,YACf,MAAM,YAgDhB"}
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* });
|
|
24
24
|
*/
|
|
25
25
|
export function withDatabase(db, options = {}) {
|
|
26
|
-
const
|
|
26
|
+
const _config = {
|
|
27
27
|
autoConnect: true,
|
|
28
28
|
attachModels: true,
|
|
29
29
|
transactionKey: 'tx',
|
|
@@ -37,8 +37,8 @@ export function withDatabase(db, options = {}) {
|
|
|
37
37
|
}
|
|
38
38
|
// Attach database to request
|
|
39
39
|
req.db = db;
|
|
40
|
-
// Attach query helper
|
|
41
|
-
req.
|
|
40
|
+
// Attach query helper (preserve original req.query)
|
|
41
|
+
req.dbQuery = async (sql, params, queryOptions) => {
|
|
42
42
|
return await db.query(sql, params, queryOptions);
|
|
43
43
|
};
|
|
44
44
|
// Attach transaction helper
|
|
@@ -49,9 +49,9 @@ export function withDatabase(db, options = {}) {
|
|
|
49
49
|
await tx.commit();
|
|
50
50
|
return result;
|
|
51
51
|
}
|
|
52
|
-
catch (
|
|
52
|
+
catch (error) {
|
|
53
53
|
await tx.rollback();
|
|
54
|
-
throw
|
|
54
|
+
throw error;
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
57
|
// Attach models if configured
|
|
@@ -60,15 +60,15 @@ export function withDatabase(db, options = {}) {
|
|
|
60
60
|
}
|
|
61
61
|
await next();
|
|
62
62
|
}
|
|
63
|
-
catch (
|
|
63
|
+
catch (error) {
|
|
64
64
|
// Log database errors
|
|
65
|
-
console.
|
|
66
|
-
// Pass
|
|
65
|
+
console.error('Database middleware error:', error);
|
|
66
|
+
// Pass error to error handler
|
|
67
67
|
if (typeof next === 'function') {
|
|
68
|
-
next(
|
|
68
|
+
next(error);
|
|
69
69
|
}
|
|
70
70
|
else {
|
|
71
|
-
throw
|
|
71
|
+
throw error;
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
};
|
|
@@ -85,11 +85,11 @@ export function withDatabase(db, options = {}) {
|
|
|
85
85
|
* // All database operations in this handler will be wrapped in a transaction
|
|
86
86
|
* await req.tx.query('UPDATE accounts SET balance = balance - ? WHERE id = ?', [amount, fromId]);
|
|
87
87
|
* await req.tx.query('UPDATE accounts SET balance = balance + ? WHERE id = ?', [amount, toId]);
|
|
88
|
-
* // Transaction is automatically committed on success or rolled back on
|
|
88
|
+
* // Transaction is automatically committed on success or rolled back on error
|
|
89
89
|
* });
|
|
90
90
|
*/
|
|
91
91
|
export function withTransaction(db, options = {}) {
|
|
92
|
-
const
|
|
92
|
+
const _config = {
|
|
93
93
|
isolationLevel: null,
|
|
94
94
|
readOnly: false,
|
|
95
95
|
...options
|
|
@@ -104,12 +104,12 @@ export function withTransaction(db, options = {}) {
|
|
|
104
104
|
await tx.commit();
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
catch (
|
|
107
|
+
catch (error) {
|
|
108
108
|
// Rollback transaction if not already rolled back
|
|
109
109
|
if (!tx.isRolledBack && !tx.isCommitted) {
|
|
110
110
|
await tx.rollback();
|
|
111
111
|
}
|
|
112
|
-
throw
|
|
112
|
+
throw error;
|
|
113
113
|
}
|
|
114
114
|
};
|
|
115
115
|
}
|
|
@@ -133,30 +133,43 @@ export function withTransaction(db, options = {}) {
|
|
|
133
133
|
* });
|
|
134
134
|
*/
|
|
135
135
|
export function withModel(ModelClass, paramName = 'id', requestKey = null) {
|
|
136
|
-
|
|
136
|
+
// Handle different model types - class vs object
|
|
137
|
+
let modelName = requestKey;
|
|
138
|
+
if (!modelName) {
|
|
139
|
+
if (ModelClass && ModelClass.name) {
|
|
140
|
+
modelName = ModelClass.name.toLowerCase();
|
|
141
|
+
}
|
|
142
|
+
else if (ModelClass && ModelClass.tableName) {
|
|
143
|
+
modelName = ModelClass.tableName.slice(0, -1); // Remove 's' from table name
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
modelName = 'model'; // fallback
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const key = modelName;
|
|
137
150
|
return async (req, res, next) => {
|
|
138
151
|
try {
|
|
139
152
|
const paramValue = req.params[paramName];
|
|
140
153
|
if (!paramValue) {
|
|
141
154
|
const _error = new Error(`Parameter '${paramName}' is required`);
|
|
142
|
-
|
|
143
|
-
throw
|
|
155
|
+
error.status = 400;
|
|
156
|
+
throw error;
|
|
144
157
|
}
|
|
145
158
|
const model = await ModelClass.find(paramValue);
|
|
146
159
|
if (!model) {
|
|
147
160
|
const _error = new Error(`${ModelClass.name} not found`);
|
|
148
|
-
|
|
149
|
-
throw
|
|
161
|
+
error.status = 404;
|
|
162
|
+
throw error;
|
|
150
163
|
}
|
|
151
164
|
req[key] = model;
|
|
152
165
|
await next();
|
|
153
166
|
}
|
|
154
|
-
catch (
|
|
167
|
+
catch (error) {
|
|
155
168
|
if (typeof next === 'function') {
|
|
156
|
-
next(
|
|
169
|
+
next(error);
|
|
157
170
|
}
|
|
158
171
|
else {
|
|
159
|
-
throw
|
|
172
|
+
throw error;
|
|
160
173
|
}
|
|
161
174
|
}
|
|
162
175
|
};
|
|
@@ -181,7 +194,7 @@ export function withModel(ModelClass, paramName = 'id', requestKey = null) {
|
|
|
181
194
|
* });
|
|
182
195
|
*/
|
|
183
196
|
export function withPagination(options = {}) {
|
|
184
|
-
const
|
|
197
|
+
const _config = {
|
|
185
198
|
defaultLimit: 20,
|
|
186
199
|
maxLimit: 100,
|
|
187
200
|
pageParam: 'page',
|
|
@@ -220,7 +233,7 @@ export function withPagination(options = {}) {
|
|
|
220
233
|
* });
|
|
221
234
|
*/
|
|
222
235
|
export function withQueryValidation(schema, options = {}) {
|
|
223
|
-
const
|
|
236
|
+
const _config = {
|
|
224
237
|
stripUnknown: true,
|
|
225
238
|
coerceTypes: true,
|
|
226
239
|
...options
|
|
@@ -234,8 +247,8 @@ export function withQueryValidation(schema, options = {}) {
|
|
|
234
247
|
if (value === undefined || value === null || value === '') {
|
|
235
248
|
if (rules.required) {
|
|
236
249
|
const _error = new Error(`Query parameter '${key}' is required`);
|
|
237
|
-
|
|
238
|
-
throw
|
|
250
|
+
error.status = 400;
|
|
251
|
+
throw error;
|
|
239
252
|
}
|
|
240
253
|
continue;
|
|
241
254
|
}
|
|
@@ -247,8 +260,8 @@ export function withQueryValidation(schema, options = {}) {
|
|
|
247
260
|
coercedValue = Number(value);
|
|
248
261
|
if (isNaN(coercedValue)) {
|
|
249
262
|
const _error = new Error(`Query parameter '${key}' must be a number`);
|
|
250
|
-
|
|
251
|
-
throw
|
|
263
|
+
error.status = 400;
|
|
264
|
+
throw error;
|
|
252
265
|
}
|
|
253
266
|
break;
|
|
254
267
|
case 'boolean':
|
|
@@ -262,18 +275,18 @@ export function withQueryValidation(schema, options = {}) {
|
|
|
262
275
|
// Validation
|
|
263
276
|
if (rules.enum && !rules.enum.includes(coercedValue)) {
|
|
264
277
|
const _error = new Error(`Query parameter '${key}' must be one of: ${rules.enum.join(', ')}`);
|
|
265
|
-
|
|
266
|
-
throw
|
|
278
|
+
error.status = 400;
|
|
279
|
+
throw error;
|
|
267
280
|
}
|
|
268
281
|
if (rules.min !== undefined && coercedValue < rules.min) {
|
|
269
282
|
const _error = new Error(`Query parameter '${key}' must be at least ${rules.min}`);
|
|
270
|
-
|
|
271
|
-
throw
|
|
283
|
+
error.status = 400;
|
|
284
|
+
throw error;
|
|
272
285
|
}
|
|
273
286
|
if (rules.max !== undefined && coercedValue > rules.max) {
|
|
274
287
|
const _error = new Error(`Query parameter '${key}' must be at most ${rules.max}`);
|
|
275
|
-
|
|
276
|
-
throw
|
|
288
|
+
error.status = 400;
|
|
289
|
+
throw error;
|
|
277
290
|
}
|
|
278
291
|
validatedQuery[key] = coercedValue;
|
|
279
292
|
}
|
|
@@ -284,12 +297,12 @@ export function withQueryValidation(schema, options = {}) {
|
|
|
284
297
|
req.query = validatedQuery;
|
|
285
298
|
await next();
|
|
286
299
|
}
|
|
287
|
-
catch (
|
|
300
|
+
catch (error) {
|
|
288
301
|
if (typeof next === 'function') {
|
|
289
|
-
next(
|
|
302
|
+
next(error);
|
|
290
303
|
}
|
|
291
304
|
else {
|
|
292
|
-
throw
|
|
305
|
+
throw error;
|
|
293
306
|
}
|
|
294
307
|
}
|
|
295
308
|
};
|
|
@@ -307,7 +320,7 @@ export function withQueryValidation(schema, options = {}) {
|
|
|
307
320
|
* });
|
|
308
321
|
*/
|
|
309
322
|
export function withHealthCheck(db, options = {}) {
|
|
310
|
-
const
|
|
323
|
+
const _config = {
|
|
311
324
|
timeout: 5000,
|
|
312
325
|
includeStats: true,
|
|
313
326
|
...options
|
|
@@ -331,10 +344,10 @@ export function withHealthCheck(db, options = {}) {
|
|
|
331
344
|
}
|
|
332
345
|
await next();
|
|
333
346
|
}
|
|
334
|
-
catch (
|
|
347
|
+
catch (error) {
|
|
335
348
|
req.dbHealth = {
|
|
336
349
|
status: 'unhealthy',
|
|
337
|
-
|
|
350
|
+
error: error.message,
|
|
338
351
|
connected: db.isConnected
|
|
339
352
|
};
|
|
340
353
|
await next();
|
|
@@ -352,7 +365,7 @@ export function withHealthCheck(db, options = {}) {
|
|
|
352
365
|
* router.use(withConnectionPool(db, { acquireTimeout: 10000 }));
|
|
353
366
|
*/
|
|
354
367
|
export function withConnectionPool(db, options = {}) {
|
|
355
|
-
const
|
|
368
|
+
const _config = {
|
|
356
369
|
acquireTimeout: 30000,
|
|
357
370
|
releaseOnResponse: true,
|
|
358
371
|
...options
|
|
@@ -364,8 +377,8 @@ export function withConnectionPool(db, options = {}) {
|
|
|
364
377
|
connection = await db.pool.acquire(config.acquireTimeout);
|
|
365
378
|
// Attach connection to request
|
|
366
379
|
req.dbConnection = connection;
|
|
367
|
-
//
|
|
368
|
-
req.
|
|
380
|
+
// Attach query helper to use this connection
|
|
381
|
+
req.dbQuery = async (sql, params, queryOptions) => {
|
|
369
382
|
return await db.adapter.query(connection, sql, params, queryOptions);
|
|
370
383
|
};
|
|
371
384
|
// Release connection when response finishes
|
|
@@ -378,12 +391,12 @@ export function withConnectionPool(db, options = {}) {
|
|
|
378
391
|
}
|
|
379
392
|
await next();
|
|
380
393
|
}
|
|
381
|
-
catch (
|
|
382
|
-
// Release connection on
|
|
394
|
+
catch (error) {
|
|
395
|
+
// Release connection on error
|
|
383
396
|
if (connection) {
|
|
384
397
|
db.pool.release(connection);
|
|
385
398
|
}
|
|
386
|
-
throw
|
|
399
|
+
throw error;
|
|
387
400
|
}
|
|
388
401
|
};
|
|
389
402
|
}
|