UNPKG

@nestjs/mongoose

Version:

Nest - modern, fast, powerful node.js web framework (@mongoose)

33 lines 1.3 kB
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