All files / src/lib fingerprintjs-pro-angular.module.ts

100% Statements 7/7
100% Branches 0/0
100% Functions 1/1
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 451x 1x   1x                                                 1x   5x                            
import { ModuleWithProviders, NgModule } from '@angular/core'
import { FINGERPTINTJS_PRO_ANGULAR_SETTINGS_TOKEN } from './tokens/fingerprintjs-pro-angular-settings-token'
import { IFingerprintjsProSettings } from './interfaces/i-fingerprintjs-pro-settings'
import { FingerprintjsProAngularService } from './fingerprintjs-pro-angular.service'
import { FpjsClientOptions } from '@fingerprintjs/fingerprintjs-pro-spa'
 
/**
 * Include FingerprintjsProAngularModule using `forRoot` method.
 *
 * @example ```typescript
 * import { NgModule } from '@angular/core';
 * import { FingerprintjsProAngularModule } from 'fingerprintjs-pro-angular';
 * // ...
 *
 * @NgModule({
 *   declarations: [AppComponent],
 *   imports: [
 *     BrowserModule,
 *     FingerprintjsProAngularModule.forRoot({loadOptions: {apiKey: 'your-fpjs-public-api-key'}})
 * //  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 *   ],
 *   providers: [],
 *   bootstrap: [AppComponent]
 * })
 * export class AppModule { }
 * ```
 */
@NgModule()
export class FingerprintjsProAngularModule {
  static forRoot(clientOptions: FpjsClientOptions): ModuleWithProviders<FingerprintjsProAngularModule> {
    return {
      ngModule: FingerprintjsProAngularModule,
      providers: [
        {
          provide: FINGERPTINTJS_PRO_ANGULAR_SETTINGS_TOKEN,
          useValue: {
            clientOptions,
          } as IFingerprintjsProSettings,
        },
        FingerprintjsProAngularService,
      ],
    }
  }
}