@@ -2,14 +2,16 @@ import { Injectable } from '@angular/core';
2
2
import { Observable , of , throwError } from 'rxjs' ;
3
3
import { map , switchMap } from 'rxjs/operators' ;
4
4
import { AbstractStorage } from '../utilities/browser/storage/abstract-storage' ;
5
+ import { InMemoryStorage } from '../utilities/browser/storage/in-memory-storage' ;
5
6
import { LocalStorage } from '../utilities/browser/storage/local-storage' ;
6
7
import { SessionStorage } from '../utilities/browser/storage/session-storage' ;
7
8
import { BooleanCoercer } from '../utilities/coercers/boolean-coercer' ;
8
9
import { NumberCoercer } from '../utilities/coercers/number-coercer' ;
9
10
10
11
export const enum StorageType {
11
12
Local = 'local' ,
12
- Session = 'session'
13
+ Session = 'session' ,
14
+ InMemory = 'in-memory'
13
15
}
14
16
15
17
@Injectable ( {
@@ -24,7 +26,11 @@ export class PreferenceService {
24
26
private readonly numberCoercer : NumberCoercer = new NumberCoercer ( ) ;
25
27
private readonly booleanCoercer : BooleanCoercer = new BooleanCoercer ( ) ;
26
28
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
+ ) { }
28
34
29
35
/**
30
36
* Returns the current storage value if defined, else the default value. The observable
@@ -94,6 +100,8 @@ export class PreferenceService {
94
100
switch ( type ) {
95
101
case StorageType . Session :
96
102
return this . sessionStorage ;
103
+ case StorageType . InMemory :
104
+ return this . inMemoryStorage ;
97
105
case StorageType . Local :
98
106
default :
99
107
return this . localStorage ;
0 commit comments