mirror of
https://github.com/bitwarden/jslib
synced 2025-12-23 19:53:55 +00:00
Use InjectionToken for Window
This commit is contained in:
@@ -15,7 +15,7 @@ import { ExportService as ExportServiceAbstraction } from "jslib-common/abstract
|
|||||||
import { FileUploadService as FileUploadServiceAbstraction } from "jslib-common/abstractions/fileUpload.service";
|
import { FileUploadService as FileUploadServiceAbstraction } from "jslib-common/abstractions/fileUpload.service";
|
||||||
import { FolderService as FolderServiceAbstraction } from "jslib-common/abstractions/folder.service";
|
import { FolderService as FolderServiceAbstraction } from "jslib-common/abstractions/folder.service";
|
||||||
import { I18nService as I18nServiceAbstraction } from "jslib-common/abstractions/i18n.service";
|
import { I18nService as I18nServiceAbstraction } from "jslib-common/abstractions/i18n.service";
|
||||||
import { STATE_FACTORY, STATE_SERVICE_USE_CACHE } from 'jslib-common/abstractions/injectionTokens';
|
import { STATE_FACTORY, STATE_SERVICE_USE_CACHE, WINDOW_TOKEN } from 'jslib-common/abstractions/injectionTokens';
|
||||||
import { KeyConnectorService as KeyConnectorServiceAbstraction } from "jslib-common/abstractions/keyConnector.service";
|
import { KeyConnectorService as KeyConnectorServiceAbstraction } from "jslib-common/abstractions/keyConnector.service";
|
||||||
import { LogService } from "jslib-common/abstractions/log.service";
|
import { LogService } from "jslib-common/abstractions/log.service";
|
||||||
import { MessagingService as MessagingServiceAbstraction } from "jslib-common/abstractions/messaging.service";
|
import { MessagingService as MessagingServiceAbstraction } from "jslib-common/abstractions/messaging.service";
|
||||||
@@ -84,7 +84,7 @@ import { ValidationService } from "./validation.service";
|
|||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [],
|
declarations: [],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: "WINDOW", useValue: window },
|
{ provide: WINDOW_TOKEN, useValue: window },
|
||||||
{
|
{
|
||||||
provide: LOCALE_ID,
|
provide: LOCALE_ID,
|
||||||
useFactory: (i18nService: I18nServiceAbstraction) => i18nService.translationLocale,
|
useFactory: (i18nService: I18nServiceAbstraction) => i18nService.translationLocale,
|
||||||
@@ -354,7 +354,6 @@ import { ValidationService } from "./validation.service";
|
|||||||
{
|
{
|
||||||
provide: CryptoFunctionServiceAbstraction,
|
provide: CryptoFunctionServiceAbstraction,
|
||||||
useClass: WebCryptoFunctionService,
|
useClass: WebCryptoFunctionService,
|
||||||
deps: ["WINDOW"],
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: EventServiceAbstraction,
|
provide: EventServiceAbstraction,
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ import { StorageService } from './storage.service';
|
|||||||
export const STATE_SERVICE_USE_CACHE = new InjectionToken<boolean>('STATE_SERVICE_USE_CACHE');
|
export const STATE_SERVICE_USE_CACHE = new InjectionToken<boolean>('STATE_SERVICE_USE_CACHE');
|
||||||
export const STATE_FACTORY = new InjectionToken<StateFactory>('STATE_FACTORY');
|
export const STATE_FACTORY = new InjectionToken<StateFactory>('STATE_FACTORY');
|
||||||
export const SECURE_STORAGE = new InjectionToken<StorageService>('SECURE_STORAGE');
|
export const SECURE_STORAGE = new InjectionToken<StorageService>('SECURE_STORAGE');
|
||||||
|
export const WINDOW_TOKEN = new InjectionToken<Window>('WINDOW');
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Inject, Injectable } from '@angular/core';
|
||||||
|
|
||||||
import * as forge from "node-forge";
|
import * as forge from "node-forge";
|
||||||
|
|
||||||
import { CryptoFunctionService } from "../abstractions/cryptoFunction.service";
|
import { CryptoFunctionService } from "../abstractions/cryptoFunction.service";
|
||||||
|
import { WINDOW_TOKEN } from '../abstractions/injectionTokens';
|
||||||
import { Utils } from "../misc/utils";
|
import { Utils } from "../misc/utils";
|
||||||
import { DecryptParameters } from "../models/domain/decryptParameters";
|
import { DecryptParameters } from "../models/domain/decryptParameters";
|
||||||
import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey";
|
import { SymmetricCryptoKey } from "../models/domain/symmetricCryptoKey";
|
||||||
@@ -12,7 +13,7 @@ export class WebCryptoFunctionService implements CryptoFunctionService {
|
|||||||
private crypto: Crypto;
|
private crypto: Crypto;
|
||||||
private subtle: SubtleCrypto;
|
private subtle: SubtleCrypto;
|
||||||
|
|
||||||
constructor(win: Window) {
|
constructor(@Inject(WINDOW_TOKEN) win: Window) {
|
||||||
this.crypto = typeof win.crypto !== "undefined" ? win.crypto : null;
|
this.crypto = typeof win.crypto !== "undefined" ? win.crypto : null;
|
||||||
this.subtle =
|
this.subtle =
|
||||||
!!this.crypto && typeof win.crypto.subtle !== "undefined" ? win.crypto.subtle : null;
|
!!this.crypto && typeof win.crypto.subtle !== "undefined" ? win.crypto.subtle : null;
|
||||||
|
|||||||
Reference in New Issue
Block a user