Skip to content

Commit 17696dd

Browse files
fix: test
1 parent 76570af commit 17696dd

2 files changed

Lines changed: 179 additions & 121 deletions

File tree

src/makeAsyncStorage.ts

Lines changed: 73 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
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

55
export 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

1111
const 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

2123
export interface DefaultAsyncStorage extends StorageAdapter {
22-
clear(): Promise<any>;
24+
clear(): Promise<any>
2325
}
2426

2527
export 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

Comments
 (0)