UNPKG

4.76 kBJavaScriptView Raw
1import { Injector, NgModule } from '@angular/core';
2import { CommonModule } from '@angular/common';
3import { RouterModule } from '@angular/router';
4import { FormsModule } from '@angular/forms';
5import { NbAlertModule, NbButtonModule, NbCardModule, NbCheckboxModule, NbIconModule, NbInputModule, NbLayoutModule, } from '@nebular/theme';
6import { NbAuthService } from './services/auth.service';
7import { NbAuthSimpleToken } from './services/token/token';
8import { NbTokenLocalStorage, NbTokenStorage } from './services/token/token-storage';
9import { NbTokenService } from './services/token/token.service';
10import { NbAuthTokenParceler, NB_AUTH_FALLBACK_TOKEN } from './services/token/token-parceler';
11import { NbDummyAuthStrategy } from './strategies/dummy/dummy-strategy';
12import { NbOAuth2AuthStrategy } from './strategies/oauth2/oauth2-strategy';
13import { NbPasswordAuthStrategy } from './strategies/password/password-strategy';
14import { defaultAuthOptions, NB_AUTH_INTERCEPTOR_HEADER, NB_AUTH_OPTIONS, NB_AUTH_STRATEGIES, NB_AUTH_TOKEN_INTERCEPTOR_FILTER, NB_AUTH_TOKENS, NB_AUTH_USER_OPTIONS, } from './auth.options';
15import { NbAuthComponent } from './components/auth.component';
16import { NbAuthBlockComponent } from './components/auth-block/auth-block.component';
17import { NbLoginComponent } from './components/login/login.component';
18import { NbRegisterComponent } from './components/register/register.component';
19import { NbLogoutComponent } from './components/logout/logout.component';
20import { NbRequestPasswordComponent } from './components/request-password/request-password.component';
21import { NbResetPasswordComponent } from './components/reset-password/reset-password.component';
22import { deepExtend } from './helpers';
23export function nbStrategiesFactory(options, injector) {
24 const strategies = [];
25 options.strategies
26 .forEach(([strategyClass, strategyOptions]) => {
27 const strategy = injector.get(strategyClass);
28 strategy.setOptions(strategyOptions);
29 strategies.push(strategy);
30 });
31 return strategies;
32}
33export function nbTokensFactory(strategies) {
34 const tokens = [];
35 strategies
36 .forEach((strategy) => {
37 tokens.push(strategy.getOption('token.class'));
38 });
39 return tokens;
40}
41export function nbOptionsFactory(options) {
42 return deepExtend(defaultAuthOptions, options);
43}
44export function nbNoOpInterceptorFilter(req) {
45 return true;
46}
47export class NbAuthModule {
48 static forRoot(nbAuthOptions) {
49 return {
50 ngModule: NbAuthModule,
51 providers: [
52 { provide: NB_AUTH_USER_OPTIONS, useValue: nbAuthOptions },
53 { provide: NB_AUTH_OPTIONS, useFactory: nbOptionsFactory, deps: [NB_AUTH_USER_OPTIONS] },
54 { provide: NB_AUTH_STRATEGIES, useFactory: nbStrategiesFactory, deps: [NB_AUTH_OPTIONS, Injector] },
55 { provide: NB_AUTH_TOKENS, useFactory: nbTokensFactory, deps: [NB_AUTH_STRATEGIES] },
56 { provide: NB_AUTH_FALLBACK_TOKEN, useValue: NbAuthSimpleToken },
57 { provide: NB_AUTH_INTERCEPTOR_HEADER, useValue: 'Authorization' },
58 { provide: NB_AUTH_TOKEN_INTERCEPTOR_FILTER, useValue: nbNoOpInterceptorFilter },
59 { provide: NbTokenStorage, useClass: NbTokenLocalStorage },
60 NbAuthTokenParceler,
61 NbAuthService,
62 NbTokenService,
63 NbDummyAuthStrategy,
64 NbPasswordAuthStrategy,
65 NbOAuth2AuthStrategy,
66 ],
67 };
68 }
69}
70NbAuthModule.decorators = [
71 { type: NgModule, args: [{
72 imports: [
73 CommonModule,
74 NbLayoutModule,
75 NbCardModule,
76 NbCheckboxModule,
77 NbAlertModule,
78 NbInputModule,
79 NbButtonModule,
80 RouterModule,
81 FormsModule,
82 NbIconModule,
83 ],
84 declarations: [
85 NbAuthComponent,
86 NbAuthBlockComponent,
87 NbLoginComponent,
88 NbRegisterComponent,
89 NbRequestPasswordComponent,
90 NbResetPasswordComponent,
91 NbLogoutComponent,
92 ],
93 exports: [
94 NbAuthComponent,
95 NbAuthBlockComponent,
96 NbLoginComponent,
97 NbRegisterComponent,
98 NbRequestPasswordComponent,
99 NbResetPasswordComponent,
100 NbLogoutComponent,
101 ],
102 },] }
103];
104//# sourceMappingURL=auth.module.js.map
\No newline at end of file