@@ -2,14 +2,16 @@ import { Injectable } from '@angular/core';
22import { Observable , of , throwError } from 'rxjs' ;
33import { map , switchMap } from 'rxjs/operators' ;
44import { AbstractStorage } from '../utilities/browser/storage/abstract-storage' ;
5+ import { InMemoryStorage } from '../utilities/browser/storage/in-memory-storage' ;
56import { LocalStorage } from '../utilities/browser/storage/local-storage' ;
67import { SessionStorage } from '../utilities/browser/storage/session-storage' ;
78import { BooleanCoercer } from '../utilities/coercers/boolean-coercer' ;
89import { NumberCoercer } from '../utilities/coercers/number-coercer' ;
910
1011export const enum StorageType {
1112 Local = 'local' ,
12- Session = 'session'
13+ Session = 'session' ,
14+ InMemory = 'in-memory'
1315}
1416
1517@Injectable ( {
@@ -24,7 +26,11 @@ export class PreferenceService {
2426 private readonly numberCoercer : NumberCoercer = new NumberCoercer ( ) ;
2527 private readonly booleanCoercer : BooleanCoercer = new BooleanCoercer ( ) ;
2628
27- public constructor ( private readonly localStorage : LocalStorage , private readonly sessionStorage : SessionStorage ) { }
29+ public constructor (
30+ private readonly localStorage : LocalStorage ,
31+ private readonly sessionStorage : SessionStorage ,
32+ private readonly inMemoryStorage : InMemoryStorage
33+ ) { }
2834
2935 /**
3036 * Returns the current storage value if defined, else the default value. The observable
@@ -94,6 +100,8 @@ export class PreferenceService {
94100 switch ( type ) {
95101 case StorageType . Session :
96102 return this . sessionStorage ;
103+ case StorageType . InMemory :
104+ return this . inMemoryStorage ;
97105 case StorageType . Local :
98106 default :
99107 return this . localStorage ;
0 commit comments