1- import { StorageAdapter } from '@urql/exchange-graphcache' ;
2- import { Preferences } from '@capacitor/preferences' ;
3- import { Network } from '@capacitor/network' ;
1+ import type { StorageAdapter } from '@urql/exchange-graphcache'
2+ import { Preferences } from '@capacitor/preferences'
3+ import { Network } from '@capacitor/network'
44
55export interface StorageOptions {
6- dataKey ?: string ;
7- metadataKey ?: string ;
8- maxAge ?: number ; // Number of days
6+ dataKey ?: string
7+ metadataKey ?: string
8+ maxAge ?: number // Number of days
99}
1010
1111const parseData = ( persistedData : any , fallback : any ) => {
1212 try {
13- if ( persistedData ) return JSON . parse ( persistedData ) ;
14- } catch ( _err ) { }
13+ if ( persistedData )
14+ return JSON . parse ( persistedData )
15+ }
16+ catch ( _err ) { }
1517
16- return fallback ;
17- } ;
18+ return fallback
19+ }
1820
19- let disconnect : any = null ;
21+ let disconnect : any = null
2022
2123export interface DefaultAsyncStorage extends StorageAdapter {
22- clear ( ) : Promise < any > ;
24+ clear ( ) : Promise < any >
2325}
2426
2527export const makeAsyncStorage : (
@@ -30,107 +32,116 @@ export const makeAsyncStorage: (
3032 maxAge = 7 ,
3133} = { } ) => {
3234 const todayDayStamp = Math . floor (
33- new Date ( ) . valueOf ( ) / ( 1000 * 60 * 60 * 24 )
34- ) ;
35- let allData = { } as any ;
35+ new Date ( ) . valueOf ( ) / ( 1000 * 60 * 60 * 24 ) ,
36+ )
37+ let allData = { } as any
3638
3739 return {
3840 readData : async ( ) => {
3941 if ( ! Object . keys ( allData ) . length ) {
40- let persistedData : string | null = null ;
42+ let persistedData : string | null = null
4143 try {
42- persistedData = ( await Preferences . get ( { key : dataKey } ) ) as any ;
43- } catch ( _err ) { }
44- const parsed = parseData ( persistedData , { } ) ;
44+ persistedData = ( await Preferences . get ( { key : dataKey } ) ) as any
45+ }
46+ catch ( _err ) { }
47+ const parsed = parseData ( persistedData , { } )
4548
46- Object . assign ( allData , parsed ) ;
49+ Object . assign ( allData , parsed )
4750 }
4851
4952 // clean up old data
50- let syncNeeded = false ;
53+ let syncNeeded = false
5154 Object . keys ( allData ) . forEach ( ( dayStamp : any ) => {
5255 if ( todayDayStamp - Number ( dayStamp ) > maxAge ) {
53- syncNeeded = true ;
54- delete allData [ dayStamp ] ;
56+ syncNeeded = true
57+ delete allData [ dayStamp ]
5558 }
56- } ) ;
59+ } )
5760
5861 if ( syncNeeded ) {
5962 try {
6063 await Preferences . set ( {
6164 key : dataKey ,
6265 value : JSON . stringify ( allData ) ,
63- } ) ;
64- } catch ( _err ) { }
66+ } )
67+ }
68+ catch ( _err ) { }
6569 }
6670
6771 return Object . assign (
6872 { } ,
69- ...Object . keys ( allData ) . map ( key => allData [ key ] )
70- ) ;
73+ ...Object . keys ( allData ) . map ( key => allData [ key ] ) ,
74+ )
7175 } ,
7276
73- writeData : async delta => {
77+ writeData : async ( delta ) => {
7478 if ( ! Object . keys ( allData ) . length ) {
75- let persistedData : string | null = null ;
79+ let persistedData : string | null = null
7680 try {
77- persistedData = ( await Preferences . get ( { key : dataKey } ) ) as any ;
78- } catch ( _err ) { }
79- const parsed = parseData ( persistedData , { } ) ;
80- Object . assign ( allData , parsed ) ;
81+ persistedData = ( await Preferences . get ( { key : dataKey } ) ) as any
82+ }
83+ catch ( _err ) { }
84+ const parsed = parseData ( persistedData , { } )
85+ Object . assign ( allData , parsed )
8186 }
8287
83- const deletedKeys = { } as any ;
84- Object . keys ( delta ) . forEach ( key => {
85- if ( delta [ key ] === undefined ) deletedKeys [ key ] = undefined ;
86- } ) ;
88+ const deletedKeys = { } as any
89+ Object . keys ( delta ) . forEach ( ( key ) => {
90+ if ( delta [ key ] === undefined )
91+ deletedKeys [ key ] = undefined
92+ } )
8793
8894 for ( const key in allData )
89- allData [ key ] = Object . assign ( allData [ key ] , deletedKeys ) ;
95+ allData [ key ] = Object . assign ( allData [ key ] , deletedKeys )
9096
9197 allData [ todayDayStamp ] = Object . assign (
9298 allData [ todayDayStamp ] || { } ,
93- delta
94- ) ;
99+ delta ,
100+ )
95101
96102 try {
97- await Preferences . set ( { key : dataKey , value : JSON . stringify ( allData ) } ) ;
98- } catch ( _err ) { }
103+ await Preferences . set ( { key : dataKey , value : JSON . stringify ( allData ) } )
104+ }
105+ catch ( _err ) { }
99106 } ,
100107
101- writeMetadata : async data => {
108+ writeMetadata : async ( data ) => {
102109 try {
103110 await Preferences . set ( {
104111 key : metadataKey ,
105112 value : JSON . stringify ( data ) ,
106- } ) ;
107- } catch ( _err ) { }
113+ } )
114+ }
115+ catch ( _err ) { }
108116 } ,
109117
110118 readMetadata : async ( ) => {
111- let persistedData : string | null = null ;
119+ let persistedData : string | null = null
112120 try {
113- persistedData = ( await Preferences . get ( { key : metadataKey } ) ) as any ;
114- } catch ( _err ) { }
115- return parseData ( persistedData , [ ] ) ;
121+ persistedData = ( await Preferences . get ( { key : metadataKey } ) ) as any
122+ }
123+ catch ( _err ) { }
124+ return parseData ( persistedData , [ ] )
116125 } ,
117126
118- onOnline : cb => {
127+ onOnline : ( cb ) => {
119128 if ( disconnect ) {
120- disconnect ( ) ;
121- disconnect = undefined ;
129+ disconnect ( )
130+ disconnect = undefined
122131 }
123- disconnect = Network . addListener ( 'networkStatusChange' , status => {
124- if ( status . connected ) cb ( ) ;
125- } ) ;
132+ disconnect = Network . addListener ( 'networkStatusChange' , ( status ) => {
133+ if ( status . connected )
134+ cb ( )
135+ } )
126136 } ,
127137
128138 clear : async ( ) => {
129139 try {
130- allData = { } ;
131- await Preferences . remove ( { key : dataKey } ) ;
132- await Preferences . remove ( { key : metadataKey } ) ;
133- } catch ( _err ) { }
140+ allData = { }
141+ await Preferences . remove ( { key : dataKey } )
142+ await Preferences . remove ( { key : metadataKey } )
143+ }
144+ catch ( _err ) { }
134145 } ,
135- } ;
136- } ;
146+ }
147+ }
0 commit comments