@@ -8,6 +8,17 @@ import { AbstractLoader } from './loaders/abstract.loader'
8
8
import { AdminModuleOptions } from './interfaces/admin-module-options.interface'
9
9
import { AdminModuleFactory } from './interfaces/admin-module-factory.interface'
10
10
11
+ /**
12
+ * Nest module which is responsible for an AdminBro integration
13
+ *
14
+ * @summary Nest Module
15
+ *
16
+ * @class
17
+ * @name module:@admin -bro/nestjs~AdminModule
18
+ * @alias AdminModule
19
+ * @memberof module:@admin-bro/nestjs
20
+ */
21
+ // This is needed by JSDoc which cannot parse this statement
11
22
@Module ( {
12
23
providers : [ serveStaticProvider ] ,
13
24
} )
@@ -19,6 +30,29 @@ export class AdminModule implements OnModuleInit {
19
30
private readonly adminModuleOptions : AdminModuleOptions ,
20
31
) { }
21
32
33
+ /**
34
+ * Creates admin in a synchronous way
35
+ *
36
+ * @param {AdminModuleOptions } options
37
+ * @memberof module:@admin-bro/nestjs~AdminModule
38
+ * @method
39
+ * @name createAdmin
40
+ * @example
41
+ * import { Module } from '@nestjs/common';
42
+ * import { AdminModule } from '@admin-bro/nestjs';
43
+ *
44
+ * \@Module({
45
+ * imports: [
46
+ * AdminModule.createAdmin({
47
+ * rootPath: '/admin',
48
+ * resources: [],
49
+ * }),
50
+ * ],
51
+ * })
52
+ * export class AppModule {}
53
+ *
54
+ */
55
+ // This is needed by JSDoc which cannot parse this statement
22
56
public static createAdmin ( options : AdminModuleOptions ) : DynamicModule {
23
57
return {
24
58
module : AdminModule ,
@@ -31,6 +65,38 @@ export class AdminModule implements OnModuleInit {
31
65
}
32
66
}
33
67
68
+ /**
69
+ * Creates admin in an asynchronous way
70
+ *
71
+ * @param {AdminModuleFactory } options
72
+ * @memberof module:@admin-bro/nestjs~AdminModule
73
+ * @method
74
+ * @name createAdminAsync
75
+ * @example
76
+ * \@Module({
77
+ * imports: [
78
+ * MongooseModule.forRoot('mongodb://localhost:27017/test'),
79
+ * AdminModule.createAdminAsync({
80
+ * imports: [
81
+ * MongooseSchemasModule, // importing module that exported model we want to inject
82
+ * ],
83
+ * inject: [
84
+ * getModelToken('Admin'), // using mongoose function to inject dependency
85
+ * ],
86
+ * useFactory: (adminModel: Model<Admin>) => ({ // injected dependecy will appear as an argument
87
+ * adminBroOptions: {
88
+ * rootPath: '/admin',
89
+ * resources: [
90
+ * { resource: adminModel },
91
+ * ],
92
+ * },
93
+ * }),
94
+ * }),
95
+ * MongooseSchemasModule,
96
+ * ],
97
+ * })
98
+ * export class AppModule { }
99
+ */
34
100
public static createAdminAsync ( options : AdminModuleFactory ) : DynamicModule {
35
101
return {
36
102
imports : options . imports ,
@@ -45,6 +111,9 @@ export class AdminModule implements OnModuleInit {
45
111
}
46
112
}
47
113
114
+ /**
115
+ * Applies given options to AdminBro and initializes it
116
+ */
48
117
public onModuleInit ( ) {
49
118
const admin = new AdminBro ( this . adminModuleOptions . adminBroOptions ) ;
50
119
0 commit comments