src/modules/uni-firebase-login.module.ts   A
last analyzed

Complexity

Total Complexity 3
Complexity/F 1.5

Size

Lines of Code 45
Function Count 2

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 3
eloc 34
mnd 1
bc 1
fnc 2
dl 0
loc 45
rs 10
bpm 0.5
cpm 1.5
noi 0
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A UniFirebaseLoginModule.forChild 0 5 1
A UniFirebaseLoginModule.forRoot 0 6 1
1
import {
2
  ModuleWithProviders,
3
  NgModule,
4
  Optional,
5
  SkipSelf,
6
} from "@angular/core";
7
import { UniFirebaseLoginConfig } from "../config/uni-firebase-login-config";
8
import { UniFirebaseLoginConfigProvider } from "../config/uni-firebase-login-config-provider";
9
import { UserModel } from "../model/user-model";
10
import { IUniFirebaseLoginConfig } from "../services/i-uni-firebase-login-config";
11
12
@NgModule({
13
  declarations: [],
14
  exports: [],
15
  imports: [],
16
  providers: [],
17
})
18
export class UniFirebaseLoginModule<User extends UserModel = UserModel> {
19
  public static forRoot(
20
    config: Partial<IUniFirebaseLoginConfig> = {},
21
  ): ModuleWithProviders<UniFirebaseLoginModule> {
22
    return {
23
      ngModule: UniFirebaseLoginModule,
24
      providers: [{ provide: UniFirebaseLoginConfig, useValue: config }],
25
    };
26
  }
27
28
  public static forChild(): ModuleWithProviders<UniFirebaseLoginModule> {
29
    return {
30
      ngModule: UniFirebaseLoginModule,
31
      providers: [{ provide: UniFirebaseLoginConfigProvider }],
32
    };
33
  }
34
35
  public constructor(
36
    @Optional() @SkipSelf() parentModule: UniFirebaseLoginModule,
37
  ) {
38
    if (parentModule) {
39
      throw new Error(
40
        "UniFirebaseLoginModule is already loaded. Import it in the AppModule only",
41
      );
42
    }
43
  }
44
}
45