@coherent.js/database 1.0.0-beta.2 → 1.0.0-beta.5
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 +0 -13
- package/dist/database/connection-manager.d.ts.map +1 -1
- package/dist/database/connection-manager.js +16 -31
- 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 +5 -8
- package/dist/database/index.js.map +1 -1
- package/dist/database/middleware.d.ts.map +1 -1
- package/dist/database/middleware.js +46 -59
- package/dist/database/middleware.js.map +1 -1
- package/dist/database/migration.d.ts +16 -122
- package/dist/database/migration.d.ts.map +1 -1
- package/dist/database/migration.js +18 -541
- package/dist/database/migration.js.map +1 -1
- package/dist/database/model.d.ts +1 -74
- package/dist/database/model.d.ts.map +1 -1
- package/dist/database/model.js +0 -519
- package/dist/database/model.js.map +1 -1
- package/dist/database/query-builder.d.ts +0 -25
- package/dist/database/query-builder.d.ts.map +1 -1
- package/dist/database/query-builder.js +5 -66
- package/dist/database/query-builder.js.map +1 -1
- package/dist/database/utils.js +12 -12
- package/package.json +19 -2
|
@@ -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,16 +1,3 @@
|
|
|
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;
|
|
14
1
|
/**
|
|
15
2
|
* Database Connection Manager
|
|
16
3
|
*
|
|
@@ -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":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,19 +359,4 @@ 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
|
-
}
|
|
377
362
|
//# 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,9 +16,10 @@
|
|
|
16
16
|
* });
|
|
17
17
|
*/
|
|
18
18
|
export function setupDatabase(config?: Object): DatabaseManager;
|
|
19
|
+
export { DatabaseManager } from "./connection-manager.js";
|
|
19
20
|
export { createModel } from "./model.js";
|
|
20
21
|
export { createMigration } from "./migration.js";
|
|
21
|
-
export {
|
|
22
|
+
export { withDatabase } from "./middleware.js";
|
|
22
23
|
export { createPostgreSQLAdapter as PostgreSQLAdapter } from "./adapters/postgresql.js";
|
|
23
24
|
export { createMySQLAdapter as MySQLAdapter } from "./adapters/mysql.js";
|
|
24
25
|
export { createSQLiteAdapter as SQLiteAdapter } from "./adapters/sqlite.js";
|
|
@@ -32,7 +33,6 @@ export namespace DEFAULT_DB_CONFIG {
|
|
|
32
33
|
let migrations: never[];
|
|
33
34
|
let subscribers: never[];
|
|
34
35
|
}
|
|
35
|
-
export { createQuery, executeQuery } from "./query-builder.js";
|
|
36
|
-
export { withDatabase, withTransaction, withModel, withPagination } from "./middleware.js";
|
|
36
|
+
export { createQuery, executeQuery, QueryBuilder } from "./query-builder.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":"AAsCA;;;;;;;;;;;;;;;;GAgBG;AACH,uCAdW,MAAM,GACJ,eAAe,CAuB3B"}
|
package/dist/database/index.js
CHANGED
|
@@ -7,14 +7,11 @@
|
|
|
7
7
|
* @author Coherent.js Team
|
|
8
8
|
* @version 1.0.0
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
export { createQuery, executeQuery } from './query-builder.js';
|
|
10
|
+
export { DatabaseManager } from './connection-manager.js';
|
|
11
|
+
export { createQuery, executeQuery, QueryBuilder } from './query-builder.js';
|
|
12
12
|
export { createModel } from './model.js';
|
|
13
13
|
export { createMigration } from './migration.js';
|
|
14
|
-
export {
|
|
15
|
-
export { withDatabase, withTransaction, withModel, withPagination } from './middleware.js';
|
|
16
|
-
// Import for internal use
|
|
17
|
-
import { createDatabaseManager } from './connection-manager.js';
|
|
14
|
+
export { withDatabase } from './middleware.js';
|
|
18
15
|
// Database adapters
|
|
19
16
|
export { createPostgreSQLAdapter as PostgreSQLAdapter } from './adapters/postgresql.js';
|
|
20
17
|
export { createMySQLAdapter as MySQLAdapter } from './adapters/mysql.js';
|
|
@@ -53,10 +50,10 @@ export const DEFAULT_DB_CONFIG = {
|
|
|
53
50
|
*/
|
|
54
51
|
export function setupDatabase(config = {}) {
|
|
55
52
|
const mergedConfig = { ...DEFAULT_DB_CONFIG, ...config };
|
|
56
|
-
const dbManager =
|
|
53
|
+
const dbManager = new DatabaseManager(mergedConfig);
|
|
57
54
|
// Auto-connect if autoConnect is not explicitly set to false
|
|
58
55
|
if (mergedConfig.autoConnect !== false) {
|
|
59
|
-
dbManager.connect().catch(console.
|
|
56
|
+
dbManager.connect().catch(console._error);
|
|
60
57
|
}
|
|
61
58
|
return dbManager;
|
|
62
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/database/index.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/database/index.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,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,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC;IAEpD,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,YA8ChB;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
|
|
41
|
+
req.query = 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,43 +133,30 @@ export function withTransaction(db, options = {}) {
|
|
|
133
133
|
* });
|
|
134
134
|
*/
|
|
135
135
|
export function withModel(ModelClass, paramName = 'id', requestKey = null) {
|
|
136
|
-
|
|
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;
|
|
136
|
+
const key = requestKey || ModelClass.name.toLowerCase();
|
|
150
137
|
return async (req, res, next) => {
|
|
151
138
|
try {
|
|
152
139
|
const paramValue = req.params[paramName];
|
|
153
140
|
if (!paramValue) {
|
|
154
141
|
const _error = new Error(`Parameter '${paramName}' is required`);
|
|
155
|
-
|
|
156
|
-
throw
|
|
142
|
+
_error.status = 400;
|
|
143
|
+
throw _error;
|
|
157
144
|
}
|
|
158
145
|
const model = await ModelClass.find(paramValue);
|
|
159
146
|
if (!model) {
|
|
160
147
|
const _error = new Error(`${ModelClass.name} not found`);
|
|
161
|
-
|
|
162
|
-
throw
|
|
148
|
+
_error.status = 404;
|
|
149
|
+
throw _error;
|
|
163
150
|
}
|
|
164
151
|
req[key] = model;
|
|
165
152
|
await next();
|
|
166
153
|
}
|
|
167
|
-
catch (
|
|
154
|
+
catch (_error) {
|
|
168
155
|
if (typeof next === 'function') {
|
|
169
|
-
next(
|
|
156
|
+
next(_error);
|
|
170
157
|
}
|
|
171
158
|
else {
|
|
172
|
-
throw
|
|
159
|
+
throw _error;
|
|
173
160
|
}
|
|
174
161
|
}
|
|
175
162
|
};
|
|
@@ -194,7 +181,7 @@ export function withModel(ModelClass, paramName = 'id', requestKey = null) {
|
|
|
194
181
|
* });
|
|
195
182
|
*/
|
|
196
183
|
export function withPagination(options = {}) {
|
|
197
|
-
const
|
|
184
|
+
const config = {
|
|
198
185
|
defaultLimit: 20,
|
|
199
186
|
maxLimit: 100,
|
|
200
187
|
pageParam: 'page',
|
|
@@ -233,7 +220,7 @@ export function withPagination(options = {}) {
|
|
|
233
220
|
* });
|
|
234
221
|
*/
|
|
235
222
|
export function withQueryValidation(schema, options = {}) {
|
|
236
|
-
const
|
|
223
|
+
const config = {
|
|
237
224
|
stripUnknown: true,
|
|
238
225
|
coerceTypes: true,
|
|
239
226
|
...options
|
|
@@ -247,8 +234,8 @@ export function withQueryValidation(schema, options = {}) {
|
|
|
247
234
|
if (value === undefined || value === null || value === '') {
|
|
248
235
|
if (rules.required) {
|
|
249
236
|
const _error = new Error(`Query parameter '${key}' is required`);
|
|
250
|
-
|
|
251
|
-
throw
|
|
237
|
+
_error.status = 400;
|
|
238
|
+
throw _error;
|
|
252
239
|
}
|
|
253
240
|
continue;
|
|
254
241
|
}
|
|
@@ -260,8 +247,8 @@ export function withQueryValidation(schema, options = {}) {
|
|
|
260
247
|
coercedValue = Number(value);
|
|
261
248
|
if (isNaN(coercedValue)) {
|
|
262
249
|
const _error = new Error(`Query parameter '${key}' must be a number`);
|
|
263
|
-
|
|
264
|
-
throw
|
|
250
|
+
_error.status = 400;
|
|
251
|
+
throw _error;
|
|
265
252
|
}
|
|
266
253
|
break;
|
|
267
254
|
case 'boolean':
|
|
@@ -275,18 +262,18 @@ export function withQueryValidation(schema, options = {}) {
|
|
|
275
262
|
// Validation
|
|
276
263
|
if (rules.enum && !rules.enum.includes(coercedValue)) {
|
|
277
264
|
const _error = new Error(`Query parameter '${key}' must be one of: ${rules.enum.join(', ')}`);
|
|
278
|
-
|
|
279
|
-
throw
|
|
265
|
+
_error.status = 400;
|
|
266
|
+
throw _error;
|
|
280
267
|
}
|
|
281
268
|
if (rules.min !== undefined && coercedValue < rules.min) {
|
|
282
269
|
const _error = new Error(`Query parameter '${key}' must be at least ${rules.min}`);
|
|
283
|
-
|
|
284
|
-
throw
|
|
270
|
+
_error.status = 400;
|
|
271
|
+
throw _error;
|
|
285
272
|
}
|
|
286
273
|
if (rules.max !== undefined && coercedValue > rules.max) {
|
|
287
274
|
const _error = new Error(`Query parameter '${key}' must be at most ${rules.max}`);
|
|
288
|
-
|
|
289
|
-
throw
|
|
275
|
+
_error.status = 400;
|
|
276
|
+
throw _error;
|
|
290
277
|
}
|
|
291
278
|
validatedQuery[key] = coercedValue;
|
|
292
279
|
}
|
|
@@ -297,12 +284,12 @@ export function withQueryValidation(schema, options = {}) {
|
|
|
297
284
|
req.query = validatedQuery;
|
|
298
285
|
await next();
|
|
299
286
|
}
|
|
300
|
-
catch (
|
|
287
|
+
catch (_error) {
|
|
301
288
|
if (typeof next === 'function') {
|
|
302
|
-
next(
|
|
289
|
+
next(_error);
|
|
303
290
|
}
|
|
304
291
|
else {
|
|
305
|
-
throw
|
|
292
|
+
throw _error;
|
|
306
293
|
}
|
|
307
294
|
}
|
|
308
295
|
};
|
|
@@ -320,7 +307,7 @@ export function withQueryValidation(schema, options = {}) {
|
|
|
320
307
|
* });
|
|
321
308
|
*/
|
|
322
309
|
export function withHealthCheck(db, options = {}) {
|
|
323
|
-
const
|
|
310
|
+
const config = {
|
|
324
311
|
timeout: 5000,
|
|
325
312
|
includeStats: true,
|
|
326
313
|
...options
|
|
@@ -344,10 +331,10 @@ export function withHealthCheck(db, options = {}) {
|
|
|
344
331
|
}
|
|
345
332
|
await next();
|
|
346
333
|
}
|
|
347
|
-
catch (
|
|
334
|
+
catch (_error) {
|
|
348
335
|
req.dbHealth = {
|
|
349
336
|
status: 'unhealthy',
|
|
350
|
-
|
|
337
|
+
_error: _error.message,
|
|
351
338
|
connected: db.isConnected
|
|
352
339
|
};
|
|
353
340
|
await next();
|
|
@@ -365,7 +352,7 @@ export function withHealthCheck(db, options = {}) {
|
|
|
365
352
|
* router.use(withConnectionPool(db, { acquireTimeout: 10000 }));
|
|
366
353
|
*/
|
|
367
354
|
export function withConnectionPool(db, options = {}) {
|
|
368
|
-
const
|
|
355
|
+
const config = {
|
|
369
356
|
acquireTimeout: 30000,
|
|
370
357
|
releaseOnResponse: true,
|
|
371
358
|
...options
|
|
@@ -377,8 +364,8 @@ export function withConnectionPool(db, options = {}) {
|
|
|
377
364
|
connection = await db.pool.acquire(config.acquireTimeout);
|
|
378
365
|
// Attach connection to request
|
|
379
366
|
req.dbConnection = connection;
|
|
380
|
-
//
|
|
381
|
-
req.
|
|
367
|
+
// Override query method to use this connection
|
|
368
|
+
req.query = async (sql, params, queryOptions) => {
|
|
382
369
|
return await db.adapter.query(connection, sql, params, queryOptions);
|
|
383
370
|
};
|
|
384
371
|
// Release connection when response finishes
|
|
@@ -391,12 +378,12 @@ export function withConnectionPool(db, options = {}) {
|
|
|
391
378
|
}
|
|
392
379
|
await next();
|
|
393
380
|
}
|
|
394
|
-
catch (
|
|
395
|
-
// Release connection on
|
|
381
|
+
catch (_error) {
|
|
382
|
+
// Release connection on _error
|
|
396
383
|
if (connection) {
|
|
397
384
|
db.pool.release(connection);
|
|
398
385
|
}
|
|
399
|
-
throw
|
|
386
|
+
throw _error;
|
|
400
387
|
}
|
|
401
388
|
};
|
|
402
389
|
}
|