@lenne.tech/nest-server 3.3.1 → 3.3.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lenne.tech/nest-server",
3
- "version": "3.3.1",
3
+ "version": "3.3.2",
4
4
  "description": "Modern, fast, powerful Node.js web framework in TypeScript based on Nest with a GraphQL API and a connection to MongoDB (or other databases).",
5
5
  "keywords": [
6
6
  "node",
@@ -1,4 +1,4 @@
1
- import { DynamicModule, Module, Type } from '@nestjs/common';
1
+ import { DynamicModule, ForwardReference, Module, Provider, Type } from '@nestjs/common';
2
2
  import { APP_GUARD } from '@nestjs/core';
3
3
  import { JwtModule, JwtModuleOptions } from '@nestjs/jwt';
4
4
  import { PassportModule } from '@nestjs/passport';
@@ -20,30 +20,46 @@ export class CoreAuthModule {
20
20
  static forRoot(
21
21
  UserModule: Type<any>,
22
22
  UserService: Type<CoreAuthUserService>,
23
- options: JwtModuleOptions
23
+ options: JwtModuleOptions & {
24
+ imports?: Array<Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference>[];
25
+ providers?: Provider[];
26
+ }
24
27
  ): DynamicModule {
28
+ // Porcess imports
29
+ let imports: any[] = [UserModule, PassportModule.register({ defaultStrategy: 'jwt' }), JwtModule.register(options)];
30
+ if (Array.isArray(options?.imports)) {
31
+ imports = imports.concat(options.imports);
32
+ }
33
+
34
+ // Process providers
35
+ let providers = [
36
+ // [Global] The GraphQLAuthGard integrates the user into context
37
+ {
38
+ provide: APP_GUARD,
39
+ useClass: RolesGuard,
40
+ },
41
+ {
42
+ provide: CoreAuthUserService,
43
+ useClass: UserService,
44
+ },
45
+ {
46
+ provide: 'PUB_SUB',
47
+ useValue: new PubSub(),
48
+ },
49
+
50
+ // Standard services
51
+ CoreAuthService,
52
+ JwtStrategy,
53
+ ];
54
+ if (Array.isArray(options?.providers)) {
55
+ providers = imports.concat(options.providers);
56
+ }
57
+
58
+ // Return CoreAuthModule
25
59
  return {
26
60
  module: CoreAuthModule,
27
- imports: [UserModule, PassportModule.register({ defaultStrategy: 'jwt' }), JwtModule.register(options)],
28
- providers: [
29
- // [Global] The GraphQLAuthGard integrates the user into context
30
- {
31
- provide: APP_GUARD,
32
- useClass: RolesGuard,
33
- },
34
- {
35
- provide: CoreAuthUserService,
36
- useClass: UserService,
37
- },
38
- {
39
- provide: 'PUB_SUB',
40
- useValue: new PubSub(),
41
- },
42
-
43
- // Standard services
44
- CoreAuthService,
45
- JwtStrategy,
46
- ],
61
+ imports: imports,
62
+ providers: providers,
47
63
  exports: [CoreAuthService, JwtModule, JwtStrategy, PassportModule, UserModule],
48
64
  };
49
65
  }
@@ -18,7 +18,7 @@ export enum TestGraphQLType {
18
18
  * GraphQL fields
19
19
  */
20
20
  export interface TestFieldObject {
21
- [key: string]: boolean | string[] | TestFieldObject;
21
+ [key: string]: boolean | (string | TestFieldObject)[] | TestFieldObject;
22
22
  }
23
23
 
24
24
  /**