Skip to content

Commit 0222704

Browse files
feat: add verbose retry log attribute
1 parent 8f3fd93 commit 0222704

File tree

3 files changed

+22
-3
lines changed

3 files changed

+22
-3
lines changed

lib/common/mongoose.utils.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export function getConnectionToken(name?: string) {
1919
export function handleRetry(
2020
retryAttempts = 9,
2121
retryDelay = 3000,
22+
verboseRetryLog = false,
2223
): <T>(source: Observable<T>) => Observable<T> {
2324
const logger = new Logger('MongooseModule');
2425
return <T>(source: Observable<T>) =>
@@ -32,6 +33,16 @@ export function handleRetry(
3233
})...`,
3334
'',
3435
);
36+
const verboseMessage = verboseRetryLog
37+
? ` Message: ${error.message}.`
38+
: '';
39+
40+
logger.error(
41+
`Unable to connect to the database.${verboseMessage} Retrying (${
42+
errorCount + 1
43+
})...`,
44+
error.stack,
45+
);
3546
if (errorCount + 1 >= retryAttempts) {
3647
throw error;
3748
}

lib/interfaces/mongoose-options.interface.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ModuleMetadata, Type } from '@nestjs/common';
2-
import { ConnectOptions, MongooseError, Connection } from 'mongoose';
2+
import { ConnectOptions, Connection, MongooseError } from 'mongoose';
33

44
export interface MongooseModuleOptions extends ConnectOptions {
55
uri?: string;
@@ -10,6 +10,10 @@ export interface MongooseModuleOptions extends ConnectOptions {
1010
connectionErrorFactory?: (error: MongooseError) => MongooseError;
1111
lazyConnection?: boolean;
1212
onConnectionCreate?: (connection: Connection) => void;
13+
/**
14+
* If `true`, will show verbose error messages on each connection retry.
15+
*/
16+
verboseRetryLog?: boolean;
1317
}
1418

1519
export interface MongooseOptionsFactory {

lib/mongoose-core.module.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export class MongooseCoreModule implements OnApplicationShutdown {
7373
mongooseConnectionName,
7474
),
7575
).pipe(
76-
handleRetry(retryAttempts, retryDelay),
76+
handleRetry(retryAttempts, retryDelay, options.verboseRetryLog),
7777
catchError((error) => {
7878
throw mongooseConnectionError(error);
7979
}),
@@ -128,7 +128,11 @@ export class MongooseCoreModule implements OnApplicationShutdown {
128128
mongooseConnectionName,
129129
),
130130
).pipe(
131-
handleRetry(retryAttempts, retryDelay),
131+
handleRetry(
132+
retryAttempts,
133+
retryDelay,
134+
mongooseOptions.verboseRetryLog,
135+
),
132136
catchError((error) => {
133137
throw mongooseConnectionError(error);
134138
}),

0 commit comments

Comments
 (0)