[EC-159] [BEEEP] Remove factory providers in Angular DI (#775)
This commit is contained in:
parent
5c88dcf0cc
commit
e40e7de808
|
@ -1,4 +1,4 @@
|
||||||
import { Injector, LOCALE_ID, NgModule } from "@angular/core";
|
import { InjectionToken, Injector, LOCALE_ID, NgModule } from "@angular/core";
|
||||||
|
|
||||||
import { ApiService as ApiServiceAbstraction } from "jslib-common/abstractions/api.service";
|
import { ApiService as ApiServiceAbstraction } from "jslib-common/abstractions/api.service";
|
||||||
import { AppIdService as AppIdServiceAbstraction } from "jslib-common/abstractions/appId.service";
|
import { AppIdService as AppIdServiceAbstraction } from "jslib-common/abstractions/appId.service";
|
||||||
|
@ -82,20 +82,49 @@ import { PasswordRepromptService } from "./passwordReprompt.service";
|
||||||
import { UnauthGuardService } from "./unauth-guard.service";
|
import { UnauthGuardService } from "./unauth-guard.service";
|
||||||
import { ValidationService } from "./validation.service";
|
import { ValidationService } from "./validation.service";
|
||||||
|
|
||||||
|
export const WINDOW = new InjectionToken<Window>("WINDOW");
|
||||||
|
export const SECURE_STORAGE = new InjectionToken<StorageServiceAbstraction>("SECURE_STORAGE");
|
||||||
|
export const STATE_FACTORY = new InjectionToken<StateFactory>("STATE_FACTORY");
|
||||||
|
export const STATE_SERVICE_USE_CACHE = new InjectionToken<boolean>("STATE_SERVICE_USE_CACHE");
|
||||||
|
export const LOGOUT_CALLBACK = new InjectionToken<(expired: boolean, userId?: string) => void>(
|
||||||
|
"LOGOUT_CALLBACK"
|
||||||
|
);
|
||||||
|
export const LOCKED_CALLBACK = new InjectionToken<() => void>("LOCKED_CALLBACK");
|
||||||
|
export const CLIENT_TYPE = new InjectionToken<boolean>("CLIENT_TYPE");
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [],
|
declarations: [],
|
||||||
providers: [
|
providers: [
|
||||||
{ provide: "WINDOW", useValue: window },
|
|
||||||
{
|
|
||||||
provide: LOCALE_ID,
|
|
||||||
useFactory: (i18nService: I18nServiceAbstraction) => i18nService.translationLocale,
|
|
||||||
deps: [I18nServiceAbstraction],
|
|
||||||
},
|
|
||||||
ValidationService,
|
ValidationService,
|
||||||
AuthGuardService,
|
AuthGuardService,
|
||||||
UnauthGuardService,
|
UnauthGuardService,
|
||||||
LockGuardService,
|
LockGuardService,
|
||||||
ModalService,
|
ModalService,
|
||||||
|
{ provide: WINDOW, useValue: window },
|
||||||
|
{
|
||||||
|
provide: LOCALE_ID,
|
||||||
|
useFactory: (i18nService: I18nServiceAbstraction) => i18nService.translationLocale,
|
||||||
|
deps: [I18nServiceAbstraction],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: STATE_FACTORY,
|
||||||
|
useValue: new StateFactory(GlobalState, Account),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: STATE_SERVICE_USE_CACHE,
|
||||||
|
useValue: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: LOGOUT_CALLBACK,
|
||||||
|
useFactory:
|
||||||
|
(messagingService: MessagingServiceAbstraction) => (expired: boolean, userId?: string) =>
|
||||||
|
messagingService.send("logout", { expired: expired, userId: userId }),
|
||||||
|
deps: [MessagingServiceAbstraction],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: LOCKED_CALLBACK,
|
||||||
|
useValue: null,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
provide: AppIdServiceAbstraction,
|
provide: AppIdServiceAbstraction,
|
||||||
useClass: AppIdService,
|
useClass: AppIdService,
|
||||||
|
@ -207,26 +236,13 @@ import { ValidationService } from "./validation.service";
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: ApiServiceAbstraction,
|
provide: ApiServiceAbstraction,
|
||||||
useFactory: (
|
useClass: ApiService,
|
||||||
tokenService: TokenServiceAbstraction,
|
|
||||||
platformUtilsService: PlatformUtilsServiceAbstraction,
|
|
||||||
environmentService: EnvironmentServiceAbstraction,
|
|
||||||
messagingService: MessagingServiceAbstraction,
|
|
||||||
appIdService: AppIdServiceAbstraction
|
|
||||||
) =>
|
|
||||||
new ApiService(
|
|
||||||
tokenService,
|
|
||||||
platformUtilsService,
|
|
||||||
environmentService,
|
|
||||||
appIdService,
|
|
||||||
async (expired: boolean) => messagingService.send("logout", { expired: expired })
|
|
||||||
),
|
|
||||||
deps: [
|
deps: [
|
||||||
TokenServiceAbstraction,
|
TokenServiceAbstraction,
|
||||||
PlatformUtilsServiceAbstraction,
|
PlatformUtilsServiceAbstraction,
|
||||||
EnvironmentServiceAbstraction,
|
EnvironmentServiceAbstraction,
|
||||||
MessagingServiceAbstraction,
|
|
||||||
AppIdServiceAbstraction,
|
AppIdServiceAbstraction,
|
||||||
|
LOGOUT_CALLBACK,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -236,39 +252,7 @@ import { ValidationService } from "./validation.service";
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: SyncServiceAbstraction,
|
provide: SyncServiceAbstraction,
|
||||||
useFactory: (
|
useClass: SyncService,
|
||||||
apiService: ApiServiceAbstraction,
|
|
||||||
settingsService: SettingsServiceAbstraction,
|
|
||||||
folderService: FolderServiceAbstraction,
|
|
||||||
cipherService: CipherServiceAbstraction,
|
|
||||||
cryptoService: CryptoServiceAbstraction,
|
|
||||||
collectionService: CollectionServiceAbstraction,
|
|
||||||
messagingService: MessagingServiceAbstraction,
|
|
||||||
policyService: PolicyServiceAbstraction,
|
|
||||||
sendService: SendServiceAbstraction,
|
|
||||||
logService: LogService,
|
|
||||||
keyConnectorService: KeyConnectorServiceAbstraction,
|
|
||||||
stateService: StateServiceAbstraction,
|
|
||||||
organizationService: OrganizationServiceAbstraction,
|
|
||||||
providerService: ProviderServiceAbstraction
|
|
||||||
) =>
|
|
||||||
new SyncService(
|
|
||||||
apiService,
|
|
||||||
settingsService,
|
|
||||||
folderService,
|
|
||||||
cipherService,
|
|
||||||
cryptoService,
|
|
||||||
collectionService,
|
|
||||||
messagingService,
|
|
||||||
policyService,
|
|
||||||
sendService,
|
|
||||||
logService,
|
|
||||||
keyConnectorService,
|
|
||||||
stateService,
|
|
||||||
organizationService,
|
|
||||||
providerService,
|
|
||||||
async (expired: boolean) => messagingService.send("logout", { expired: expired })
|
|
||||||
),
|
|
||||||
deps: [
|
deps: [
|
||||||
ApiServiceAbstraction,
|
ApiServiceAbstraction,
|
||||||
SettingsServiceAbstraction,
|
SettingsServiceAbstraction,
|
||||||
|
@ -284,6 +268,7 @@ import { ValidationService } from "./validation.service";
|
||||||
StateServiceAbstraction,
|
StateServiceAbstraction,
|
||||||
OrganizationServiceAbstraction,
|
OrganizationServiceAbstraction,
|
||||||
ProviderServiceAbstraction,
|
ProviderServiceAbstraction,
|
||||||
|
LOGOUT_CALLBACK,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{ provide: BroadcasterServiceAbstraction, useClass: BroadcasterService },
|
{ provide: BroadcasterServiceAbstraction, useClass: BroadcasterService },
|
||||||
|
@ -294,35 +279,7 @@ import { ValidationService } from "./validation.service";
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: VaultTimeoutServiceAbstraction,
|
provide: VaultTimeoutServiceAbstraction,
|
||||||
useFactory: (
|
useClass: VaultTimeoutService,
|
||||||
cipherService: CipherServiceAbstraction,
|
|
||||||
folderService: FolderServiceAbstraction,
|
|
||||||
collectionService: CollectionServiceAbstraction,
|
|
||||||
cryptoService: CryptoServiceAbstraction,
|
|
||||||
platformUtilsService: PlatformUtilsServiceAbstraction,
|
|
||||||
messagingService: MessagingServiceAbstraction,
|
|
||||||
searchService: SearchServiceAbstraction,
|
|
||||||
tokenService: TokenServiceAbstraction,
|
|
||||||
policyService: PolicyServiceAbstraction,
|
|
||||||
keyConnectorService: KeyConnectorServiceAbstraction,
|
|
||||||
stateService: StateServiceAbstraction
|
|
||||||
) =>
|
|
||||||
new VaultTimeoutService(
|
|
||||||
cipherService,
|
|
||||||
folderService,
|
|
||||||
collectionService,
|
|
||||||
cryptoService,
|
|
||||||
platformUtilsService,
|
|
||||||
messagingService,
|
|
||||||
searchService,
|
|
||||||
tokenService,
|
|
||||||
policyService,
|
|
||||||
keyConnectorService,
|
|
||||||
stateService,
|
|
||||||
null,
|
|
||||||
async (userId?: string) =>
|
|
||||||
messagingService.send("logout", { expired: false, userId: userId })
|
|
||||||
),
|
|
||||||
deps: [
|
deps: [
|
||||||
CipherServiceAbstraction,
|
CipherServiceAbstraction,
|
||||||
FolderServiceAbstraction,
|
FolderServiceAbstraction,
|
||||||
|
@ -335,42 +292,26 @@ import { ValidationService } from "./validation.service";
|
||||||
PolicyServiceAbstraction,
|
PolicyServiceAbstraction,
|
||||||
KeyConnectorServiceAbstraction,
|
KeyConnectorServiceAbstraction,
|
||||||
StateServiceAbstraction,
|
StateServiceAbstraction,
|
||||||
|
LOCKED_CALLBACK,
|
||||||
|
LOGOUT_CALLBACK,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: StateServiceAbstraction,
|
provide: StateServiceAbstraction,
|
||||||
useFactory: (
|
useClass: StateService,
|
||||||
storageService: StorageServiceAbstraction,
|
|
||||||
secureStorageService: StorageServiceAbstraction,
|
|
||||||
logService: LogService,
|
|
||||||
stateMigrationService: StateMigrationServiceAbstraction
|
|
||||||
) =>
|
|
||||||
new StateService(
|
|
||||||
storageService,
|
|
||||||
secureStorageService,
|
|
||||||
logService,
|
|
||||||
stateMigrationService,
|
|
||||||
new StateFactory(GlobalState, Account)
|
|
||||||
),
|
|
||||||
deps: [
|
deps: [
|
||||||
StorageServiceAbstraction,
|
StorageServiceAbstraction,
|
||||||
"SECURE_STORAGE",
|
SECURE_STORAGE,
|
||||||
LogService,
|
LogService,
|
||||||
StateMigrationServiceAbstraction,
|
StateMigrationServiceAbstraction,
|
||||||
|
STATE_FACTORY,
|
||||||
|
STATE_SERVICE_USE_CACHE,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: StateMigrationServiceAbstraction,
|
provide: StateMigrationServiceAbstraction,
|
||||||
useFactory: (
|
useClass: StateMigrationService,
|
||||||
storageService: StorageServiceAbstraction,
|
deps: [StorageServiceAbstraction, SECURE_STORAGE, STATE_FACTORY],
|
||||||
secureStorageService: StorageServiceAbstraction
|
|
||||||
) =>
|
|
||||||
new StateMigrationService(
|
|
||||||
storageService,
|
|
||||||
secureStorageService,
|
|
||||||
new StateFactory(GlobalState, Account)
|
|
||||||
),
|
|
||||||
deps: [StorageServiceAbstraction, "SECURE_STORAGE"],
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: ExportServiceAbstraction,
|
provide: ExportServiceAbstraction,
|
||||||
|
@ -389,33 +330,14 @@ import { ValidationService } from "./validation.service";
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: NotificationsServiceAbstraction,
|
provide: NotificationsServiceAbstraction,
|
||||||
useFactory: (
|
useClass: NotificationsService,
|
||||||
syncService: SyncServiceAbstraction,
|
|
||||||
appIdService: AppIdServiceAbstraction,
|
|
||||||
apiService: ApiServiceAbstraction,
|
|
||||||
vaultTimeoutService: VaultTimeoutServiceAbstraction,
|
|
||||||
environmentService: EnvironmentServiceAbstraction,
|
|
||||||
messagingService: MessagingServiceAbstraction,
|
|
||||||
logService: LogService,
|
|
||||||
stateService: StateServiceAbstraction
|
|
||||||
) =>
|
|
||||||
new NotificationsService(
|
|
||||||
syncService,
|
|
||||||
appIdService,
|
|
||||||
apiService,
|
|
||||||
vaultTimeoutService,
|
|
||||||
environmentService,
|
|
||||||
async () => messagingService.send("logout", { expired: true }),
|
|
||||||
logService,
|
|
||||||
stateService
|
|
||||||
),
|
|
||||||
deps: [
|
deps: [
|
||||||
SyncServiceAbstraction,
|
SyncServiceAbstraction,
|
||||||
AppIdServiceAbstraction,
|
AppIdServiceAbstraction,
|
||||||
ApiServiceAbstraction,
|
ApiServiceAbstraction,
|
||||||
VaultTimeoutServiceAbstraction,
|
VaultTimeoutServiceAbstraction,
|
||||||
EnvironmentServiceAbstraction,
|
EnvironmentServiceAbstraction,
|
||||||
MessagingServiceAbstraction,
|
LOGOUT_CALLBACK,
|
||||||
LogService,
|
LogService,
|
||||||
StateServiceAbstraction,
|
StateServiceAbstraction,
|
||||||
],
|
],
|
||||||
|
@ -423,7 +345,7 @@ import { ValidationService } from "./validation.service";
|
||||||
{
|
{
|
||||||
provide: CryptoFunctionServiceAbstraction,
|
provide: CryptoFunctionServiceAbstraction,
|
||||||
useClass: WebCryptoFunctionService,
|
useClass: WebCryptoFunctionService,
|
||||||
deps: ["WINDOW"],
|
deps: [WINDOW],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: EventServiceAbstraction,
|
provide: EventServiceAbstraction,
|
||||||
|
|
|
@ -31,7 +31,7 @@ export class NotificationsService implements NotificationsServiceAbstraction {
|
||||||
private apiService: ApiService,
|
private apiService: ApiService,
|
||||||
private vaultTimeoutService: VaultTimeoutService,
|
private vaultTimeoutService: VaultTimeoutService,
|
||||||
private environmentService: EnvironmentService,
|
private environmentService: EnvironmentService,
|
||||||
private logoutCallback: () => Promise<void>,
|
private logoutCallback: (expired: boolean) => Promise<void>,
|
||||||
private logService: LogService,
|
private logService: LogService,
|
||||||
private stateService: StateService
|
private stateService: StateService
|
||||||
) {
|
) {
|
||||||
|
@ -169,7 +169,7 @@ export class NotificationsService implements NotificationsServiceAbstraction {
|
||||||
break;
|
break;
|
||||||
case NotificationType.LogOut:
|
case NotificationType.LogOut:
|
||||||
if (isAuthenticated) {
|
if (isAuthenticated) {
|
||||||
this.logoutCallback();
|
this.logoutCallback(true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case NotificationType.SyncSendCreate:
|
case NotificationType.SyncSendCreate:
|
||||||
|
|
|
@ -29,7 +29,7 @@ export class VaultTimeoutService implements VaultTimeoutServiceAbstraction {
|
||||||
private keyConnectorService: KeyConnectorService,
|
private keyConnectorService: KeyConnectorService,
|
||||||
private stateService: StateService,
|
private stateService: StateService,
|
||||||
private lockedCallback: (userId?: string) => Promise<void> = null,
|
private lockedCallback: (userId?: string) => Promise<void> = null,
|
||||||
private loggedOutCallback: (userId?: string) => Promise<void> = null
|
private loggedOutCallback: (expired: boolean, userId?: string) => Promise<void> = null
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
init(checkOnInterval: boolean) {
|
init(checkOnInterval: boolean) {
|
||||||
|
@ -116,7 +116,7 @@ export class VaultTimeoutService implements VaultTimeoutServiceAbstraction {
|
||||||
|
|
||||||
async logOut(userId?: string): Promise<void> {
|
async logOut(userId?: string): Promise<void> {
|
||||||
if (this.loggedOutCallback != null) {
|
if (this.loggedOutCallback != null) {
|
||||||
await this.loggedOutCallback(userId);
|
await this.loggedOutCallback(false, userId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,17 +11,14 @@ import { ThemeType } from "jslib-common/enums/themeType";
|
||||||
import { isDev, isMacAppStore } from "../utils";
|
import { isDev, isMacAppStore } from "../utils";
|
||||||
|
|
||||||
export class ElectronPlatformUtilsService implements PlatformUtilsService {
|
export class ElectronPlatformUtilsService implements PlatformUtilsService {
|
||||||
private clientType: ClientType;
|
|
||||||
private deviceCache: DeviceType = null;
|
private deviceCache: DeviceType = null;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
protected i18nService: I18nService,
|
protected i18nService: I18nService,
|
||||||
private messagingService: MessagingService,
|
private messagingService: MessagingService,
|
||||||
private isDesktopApp: boolean,
|
private clientType: ClientType.Desktop | ClientType.DirectoryConnector,
|
||||||
private stateService: StateService
|
private stateService: StateService
|
||||||
) {
|
) {}
|
||||||
this.clientType = isDesktopApp ? ClientType.Desktop : ClientType.DirectoryConnector;
|
|
||||||
}
|
|
||||||
|
|
||||||
getDevice(): DeviceType {
|
getDevice(): DeviceType {
|
||||||
if (!this.deviceCache) {
|
if (!this.deviceCache) {
|
||||||
|
|
Loading…
Reference in New Issue