Skip to content

Commit e73598c

Browse files
Merge pull request #3 from SoftwareBrothers/beta
docs: jsdoc monkey patches
2 parents c4918cf + 56e5e42 commit e73598c

File tree

3 files changed

+95
-2
lines changed

3 files changed

+95
-2
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"scripts": {
1010
"release": "semantic-release",
1111
"build": "tsc",
12-
"lint": "eslint './src/**/*' './example-app/**/*' --ignore-pattern '*.json' --ignore-pattern 'yarn.lock'"
12+
"lint": "eslint './src/**/*' './example-app/**/*' --ignore-pattern '*.json' --ignore-pattern 'yarn.lock'",
13+
"check:all": "yarn lint && yarn build"
1314
},
1415
"husky": {
1516
"hooks": {

src/admin.module.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,17 @@ import { AbstractLoader } from './loaders/abstract.loader'
88
import { AdminModuleOptions } from './interfaces/admin-module-options.interface'
99
import { AdminModuleFactory } from './interfaces/admin-module-factory.interface'
1010

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
1122
@Module({
1223
providers: [serveStaticProvider],
1324
})
@@ -19,6 +30,29 @@ export class AdminModule implements OnModuleInit {
1930
private readonly adminModuleOptions: AdminModuleOptions,
2031
) {}
2132

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
2256
public static createAdmin(options: AdminModuleOptions): DynamicModule {
2357
return {
2458
module: AdminModule,
@@ -31,6 +65,38 @@ export class AdminModule implements OnModuleInit {
3165
}
3266
}
3367

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+
*/
34100
public static createAdminAsync(options: AdminModuleFactory): DynamicModule {
35101
return {
36102
imports: options.imports,
@@ -45,6 +111,9 @@ export class AdminModule implements OnModuleInit {
45111
}
46112
}
47113

114+
/**
115+
* Applies given options to AdminBro and initializes it
116+
*/
48117
public onModuleInit() {
49118
const admin = new AdminBro(this.adminModuleOptions.adminBroOptions);
50119

src/interfaces/admin-module-options.interface.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,36 @@ import { SessionOptions } from 'express-session';
33

44
import { ExpressFormidableOptions } from './express-formidable-options.interface';
55

6-
export interface AdminModuleOptions {
6+
/**
7+
* Options passed to nestjs module
8+
*
9+
* @memberof module:@admin-bro/nestjs
10+
* @alias AdminModuleOptions
11+
*/
12+
export type AdminModuleOptions = {
13+
/**
14+
* Standard AdminBro options
15+
*/
716
adminBroOptions: AdminBroOptions,
17+
/**
18+
* Authentication options. When NOT provided, it will initialize AdminBro without login page and authorization function.
19+
*/
820
auth?: {
21+
/**
22+
* verifies if given credentials are valid, therefore if user has access to Admin Panel
23+
*/
924
authenticate: (email: string, password: string) => Promise<CurrentAdmin>,
1025
cookiePassword: string,
1126
cookieName: string,
1227
}
28+
/**
29+
* Options passed to express formidable (used only by AdminBro express module)
30+
*/
1331
formidableOptions?: ExpressFormidableOptions,
32+
/**
33+
* Options passed to express session (used only by AdminBro express module)
34+
* Here you might want to change the store from the default memory store to
35+
* something more reliable (i.e. database).
36+
*/
1437
sessionOptions?: SessionOptions,
1538
}

0 commit comments

Comments
 (0)