@@ -4,7 +4,7 @@ import { EventsCacheInMemory } from '../inMemory/EventsCacheInMemory';
4
4
import { IStorageFactoryParams , IStorageSync , IStorageSyncFactory } from '../types' ;
5
5
import { validatePrefix } from '../KeyBuilder' ;
6
6
import { KeyBuilderCS , myLargeSegmentsKeyBuilder } from '../KeyBuilderCS' ;
7
- import { isLocalStorageAvailable , isStorageValid } from '../../utils/env/isLocalStorageAvailable' ;
7
+ import { isLocalStorageAvailable , isStorageWrapperValid } from '../../utils/env/isLocalStorageAvailable' ;
8
8
import { SplitsCacheInLocal } from './SplitsCacheInLocal' ;
9
9
import { RBSegmentsCacheInLocal } from './RBSegmentsCacheInLocal' ;
10
10
import { MySegmentsCacheInLocal } from './MySegmentsCacheInLocal' ;
@@ -34,23 +34,23 @@ function isTillKey(key: string) {
34
34
return key . endsWith ( '.till' ) ;
35
35
}
36
36
37
- export function storageAdapter ( log : ILogger , prefix : string , storage : SplitIO . Storage ) : StorageAdapter {
37
+ export function storageAdapter ( log : ILogger , prefix : string , wrapper : SplitIO . StorageWrapper ) : StorageAdapter {
38
38
let cache : Record < string , string > = { } ;
39
39
40
40
let connectPromise : Promise < void > | undefined ;
41
41
let disconnectPromise = Promise . resolve ( ) ;
42
42
43
43
return {
44
44
load ( ) {
45
- return connectPromise || ( connectPromise = storage . getItem ( prefix ) . then ( ( storedCache ) => {
45
+ return connectPromise || ( connectPromise = wrapper . getItem ( prefix ) . then ( ( storedCache ) => {
46
46
cache = JSON . parse ( storedCache || '{}' ) ;
47
47
} ) . catch ( ( e ) => {
48
48
log . error ( LOG_PREFIX + 'Rejected promise calling storage getItem, with error: ' + e ) ;
49
49
} ) ) ;
50
50
} ,
51
51
save ( ) {
52
52
return disconnectPromise = disconnectPromise . then ( ( ) => {
53
- return storage . setItem ( prefix , JSON . stringify ( cache ) ) . catch ( ( e ) => {
53
+ return wrapper . setItem ( prefix , JSON . stringify ( cache ) ) . catch ( ( e ) => {
54
54
log . error ( LOG_PREFIX + 'Rejected promise calling storage setItem, with error: ' + e ) ;
55
55
} ) ;
56
56
} ) ;
@@ -76,9 +76,9 @@ export function storageAdapter(log: ILogger, prefix: string, storage: SplitIO.St
76
76
} ;
77
77
}
78
78
79
- function validateStorage ( log : ILogger , prefix : string , storage ?: SplitIO . Storage ) : StorageAdapter | undefined {
80
- if ( storage ) {
81
- if ( isStorageValid ( storage ) ) return storageAdapter ( log , prefix , storage ) ;
79
+ function validateStorage ( log : ILogger , prefix : string , wrapper ?: SplitIO . StorageWrapper ) : StorageAdapter | undefined {
80
+ if ( wrapper ) {
81
+ if ( isStorageWrapperValid ( wrapper ) ) return storageAdapter ( log , prefix , wrapper ) ;
82
82
log . warn ( LOG_PREFIX + 'Invalid storage provided. Falling back to LocalStorage API' ) ;
83
83
}
84
84
@@ -97,7 +97,7 @@ export function InLocalStorage(options: SplitIO.InLocalStorageOptions = {}): ISt
97
97
function InLocalStorageCSFactory ( params : IStorageFactoryParams ) : IStorageSync {
98
98
const { settings, settings : { log, scheduler : { impressionsQueueSize, eventsQueueSize } } } = params ;
99
99
100
- const storage = validateStorage ( log , prefix , options . storage ) ;
100
+ const storage = validateStorage ( log , prefix , options . wrapper ) ;
101
101
if ( ! storage ) return InMemoryStorageCSFactory ( params ) ;
102
102
103
103
const matchingKey = getMatching ( settings . core . key ) ;
0 commit comments