about summary refs log tree commit diff
path: root/src/state/storage.ts
blob: dc5fb620fdb62b038a40d963f0ddb5660247108b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import AsyncStorage from '@react-native-async-storage/async-storage'

export async function loadString(key: string): Promise<string | null> {
  try {
    return await AsyncStorage.getItem(key)
  } catch {
    // not sure why this would fail... even reading the RN docs I'm unclear
    return null
  }
}

export async function saveString(key: string, value: string): Promise<boolean> {
  try {
    await AsyncStorage.setItem(key, value)
    return true
  } catch {
    return false
  }
}

export async function load(key: string): Promise<any | null> {
  try {
    const str = await AsyncStorage.getItem(key)
    if (typeof str !== 'string') {
      return null
    }
    return JSON.parse(str)
  } catch {
    return null
  }
}

export async function save(key: string, value: any): Promise<boolean> {
  try {
    await AsyncStorage.setItem(key, JSON.stringify(value))
    return true
  } catch {
    return false
  }
}

export async function remove(key: string): Promise<void> {
  try {
    await AsyncStorage.removeItem(key)
  } catch {}
}

export async function clear(): Promise<void> {
  try {
    await AsyncStorage.clear()
  } catch {}
}