@@ -3,9 +3,6 @@ import SplitIO from '../../../types/splitio';
33import { LOG_PREFIX } from './constants' ;
44import { StorageAdapter } from '../types' ;
55
6- function isTillKey ( key : string ) {
7- return key . endsWith ( '.till' ) ;
8- }
96
107export function storageAdapter ( log : ILogger , prefix : string , wrapper : SplitIO . SyncStorageWrapper | SplitIO . AsyncStorageWrapper ) : Required < StorageAdapter > {
118 let keys : string [ ] = [ ] ;
@@ -14,14 +11,6 @@ export function storageAdapter(log: ILogger, prefix: string, wrapper: SplitIO.Sy
1411 let loadPromise : Promise < void > | undefined ;
1512 let savePromise = Promise . resolve ( ) ;
1613
17- function _save ( ) {
18- return savePromise = savePromise . then ( ( ) => {
19- return Promise . resolve ( wrapper . setItem ( prefix , JSON . stringify ( cache ) ) ) ;
20- } ) . catch ( ( e ) => {
21- log . error ( LOG_PREFIX + 'Rejected promise calling wrapper `setItem` method, with error: ' + e ) ;
22- } ) ;
23- }
24-
2514 return {
2615 load ( ) {
2716 return loadPromise || ( loadPromise = Promise . resolve ( ) . then ( ( ) => {
@@ -33,32 +22,41 @@ export function storageAdapter(log: ILogger, prefix: string, wrapper: SplitIO.Sy
3322 log . error ( LOG_PREFIX + 'Rejected promise calling wrapper `getItem` method, with error: ' + e ) ;
3423 } ) ) ;
3524 } ,
25+
26+ save ( ) {
27+ return savePromise = savePromise . then ( ( ) => {
28+ return Promise . resolve ( wrapper . setItem ( prefix , JSON . stringify ( cache ) ) ) ;
29+ } ) . catch ( ( e ) => {
30+ log . error ( LOG_PREFIX + 'Rejected promise calling wrapper `setItem` method, with error: ' + e ) ;
31+ } ) ;
32+ } ,
33+
3634 whenSaved ( ) {
3735 return savePromise ;
3836 } ,
3937
4038 get length ( ) {
4139 return keys . length ;
4240 } ,
41+
4342 getItem ( key : string ) {
4443 return cache [ key ] || null ;
4544 } ,
45+
4646 key ( index : number ) {
4747 return keys [ index ] || null ;
4848 } ,
49+
4950 removeItem ( key : string ) {
5051 const index = keys . indexOf ( key ) ;
5152 if ( index === - 1 ) return ;
5253 keys . splice ( index , 1 ) ;
5354 delete cache [ key ] ;
54-
55- if ( isTillKey ( key ) ) _save ( ) ;
5655 } ,
56+
5757 setItem ( key : string , value : string ) {
5858 if ( keys . indexOf ( key ) === - 1 ) keys . push ( key ) ;
5959 cache [ key ] = value ;
60-
61- if ( isTillKey ( key ) ) _save ( ) ;
6260 }
6361 } ;
6462}
0 commit comments