@nestjs/mongoose
Version:
Nest - modern, fast, powerful node.js web framework (@mongoose)
33 lines • 1.3 kB
JavaScript
import { Logger } from '@nestjs/common';
import { delay, retryWhen, scan } from 'rxjs/operators';
import { DEFAULT_DB_CONNECTION } from '../mongoose.constants.js';
export function getModelToken(model, connectionName) {
if (connectionName === undefined) {
return `${model}Model`;
}
return `${getConnectionToken(connectionName)}/${model}Model`;
}
export function getConnectionToken(name) {
return name && name !== DEFAULT_DB_CONNECTION
? `${name}Connection`
: DEFAULT_DB_CONNECTION;
}
export function handleRetry(retryAttempts = 9, retryDelay = 3000, verboseRetryLog = false) {
const logger = new Logger('MongooseModule');
return (source) => source.pipe(retryWhen((e) => e.pipe(scan((errorCount, error) => {
const verboseMessage = verboseRetryLog
? ` Message: ${error.message}.`
: '';
const retryMessage = retryAttempts > 0 ? ` Retrying (${errorCount + 1})...` : '';
logger.error([
'Unable to connect to the database.',
verboseMessage,
retryMessage,
].join(''), error.stack);
if (errorCount + 1 >= retryAttempts) {
throw error;
}
return errorCount + 1;
}, 0), delay(retryDelay))));
}
//# sourceMappingURL=mongoose.utils.js.map