From 56d941a754931e67cc708bdd11bc57e46526e32a Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Mon, 12 Feb 2018 15:06:18 -0500 Subject: [PATCH] state service --- src/abstractions/index.ts | 1 + src/abstractions/state.service.ts | 6 ++++++ src/services/index.ts | 1 + src/services/state.service.ts | 27 +++++++++++++++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 src/abstractions/state.service.ts create mode 100644 src/services/state.service.ts diff --git a/src/abstractions/index.ts b/src/abstractions/index.ts index 154ef9238f..0d5551e070 100644 --- a/src/abstractions/index.ts +++ b/src/abstractions/index.ts @@ -13,6 +13,7 @@ export { PasswordGenerationService } from './passwordGeneration.service'; export { PlatformUtilsService } from './platformUtils.service'; export { SettingsService } from './settings.service'; export { StorageService } from './storage.service'; +export { StateService } from './state.service'; export { SyncService } from './sync.service'; export { TokenService } from './token.service'; export { TotpService } from './totp.service'; diff --git a/src/abstractions/state.service.ts b/src/abstractions/state.service.ts new file mode 100644 index 0000000000..78658882cd --- /dev/null +++ b/src/abstractions/state.service.ts @@ -0,0 +1,6 @@ +export abstract class StateService { + get: (key: string) => Promise; + save: (key: string, obj: any) => Promise; + remove: (key: string) => Promise; + purge: () => Promise; +} diff --git a/src/services/index.ts b/src/services/index.ts index f66088a65b..c69cafca30 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -11,6 +11,7 @@ export { FolderService } from './folder.service'; export { LockService } from './lock.service'; export { PasswordGenerationService } from './passwordGeneration.service'; export { SettingsService } from './settings.service'; +export { StateService } from './state.service'; export { SyncService } from './sync.service'; export { TokenService } from './token.service'; export { TotpService } from './totp.service'; diff --git a/src/services/state.service.ts b/src/services/state.service.ts new file mode 100644 index 0000000000..03a09e30fc --- /dev/null +++ b/src/services/state.service.ts @@ -0,0 +1,27 @@ +import { StateService as StateServiceAbstraction } from '../abstractions/state.service'; + +export class StateService implements StateServiceAbstraction { + private state: any = {}; + + get(key: string): Promise { + if (this.state.hasOwnProperty(key)) { + return Promise.resolve(this.state[key]); + } + return Promise.resolve(null); + } + + save(key: string, obj: any): Promise { + this.state[key] = obj; + return Promise.resolve(); + } + + remove(key: string): Promise { + delete this.state[key]; + return Promise.resolve(); + } + + purge(): Promise { + this.state = {}; + return Promise.resolve(); + } +}