Skip to content

Commit

Permalink
Merge branch 'ledniy-bugfix/options-types-for-useFactory'
Browse files Browse the repository at this point in the history
  • Loading branch information
kamilmysliwiec committed May 20, 2022
2 parents 60f27f4 + b27adc3 commit 1114488
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 14 deletions.
4 changes: 3 additions & 1 deletion lib/interfaces/mongoose-options.interface.ts
Expand Up @@ -17,13 +17,15 @@ export interface MongooseOptionsFactory {
| MongooseModuleOptions;
}

export interface MongooseModuleFactoryOptions extends Omit<MongooseModuleOptions, 'connectionName'> {}

export interface MongooseModuleAsyncOptions
extends Pick<ModuleMetadata, 'imports'> {
connectionName?: string;
useExisting?: Type<MongooseOptionsFactory>;
useClass?: Type<MongooseOptionsFactory>;
useFactory?: (
...args: any[]
) => Promise<MongooseModuleOptions> | MongooseModuleOptions;
) => Promise<MongooseModuleFactoryOptions> | MongooseModuleFactoryOptions;
inject?: any[];
}
17 changes: 4 additions & 13 deletions lib/mongoose-core.module.ts
@@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
import {
DynamicModule,
Global,
Expand All @@ -14,6 +13,7 @@ import { defer, lastValueFrom } from 'rxjs';
import { getConnectionToken, handleRetry } from './common/mongoose.utils';
import {
MongooseModuleAsyncOptions,
MongooseModuleFactoryOptions,
MongooseModuleOptions,
MongooseOptionsFactory,
} from './interfaces/mongoose-options.interface';
Expand Down Expand Up @@ -80,12 +80,11 @@ export class MongooseCoreModule implements OnApplicationShutdown {
const connectionProvider = {
provide: mongooseConnectionName,
useFactory: async (
mongooseModuleOptions: MongooseModuleOptions,
mongooseModuleOptions: MongooseModuleFactoryOptions,
): Promise<any> => {
const {
retryAttempts,
retryDelay,
connectionName,
uri,
connectionFactory,
...mongooseOptions
Expand All @@ -98,19 +97,11 @@ export class MongooseCoreModule implements OnApplicationShutdown {
defer(async () =>
mongooseConnectionFactory(
await mongoose
.createConnection(
mongooseModuleOptions.uri as string,
mongooseOptions,
)
.createConnection(uri as string, mongooseOptions)
.asPromise(),
mongooseConnectionName,
),
).pipe(
handleRetry(
mongooseModuleOptions.retryAttempts,
mongooseModuleOptions.retryDelay,
),
),
).pipe(handleRetry(retryAttempts, retryDelay)),
);
},
inject: [MONGOOSE_MODULE_OPTIONS],
Expand Down

0 comments on commit 1114488

Please sign in to comment.