⬅️ Back to Table of Contents
📄 index.ts
📊 Analysis Summary
Metric |
Count |
🔧 Functions |
2 |
📦 Imports |
14 |
📊 Variables & Constants |
4 |
⚡ Async/Await Patterns |
1 |
📐 Interfaces |
1 |
📚 Table of Contents
🛠️ File Location:
📂 packages/core/useStorageAsync/index.ts
📦 Imports
Name |
Source |
RemovableRef |
@vueuse/shared |
MaybeRefOrGetter |
vue |
StorageLikeAsync |
../ssr-handlers |
SerializerAsync |
../useStorage |
UseStorageOptions |
../useStorage |
watchWithFilter |
@vueuse/shared |
deepRef |
vue |
shallowRef |
vue |
toValue |
vue |
defaultWindow |
../_configurable |
getSSRHandler |
../ssr-handlers |
useEventListener |
../useEventListener |
StorageSerializers |
../useStorage |
guessSerializerType |
../useStorage/guess |
Variables & Constants
Name |
Type |
Kind |
Value |
Exported |
data |
RemovableRef<T> |
const |
(shallow ? shallowRef : deepRef)(toValue(initialValue)) as RemovableRef<T> |
✗ |
serializer |
SerializerAsync<T> |
const |
options.serializer ?? StorageSerializers[type] |
✗ |
rawValue |
any |
let/var |
event ? event.newValue : await storage.getItem(key) |
✗ |
value |
Awaitable<T> |
let/var |
await serializer.read(rawValue) |
✗ |
Async/Await Patterns
Type |
Function |
Await Expressions |
Promise Chains |
async-function |
read |
storage.getItem(key), storage.setItem(key, await serializer.write(rawInit)), serializer.write(rawInit), serializer.read(rawValue), serializer.read(rawValue) |
none |
Functions
useStorageAsync(key: string, initialValue: MaybeRefOrGetter<string>, storage: StorageLikeAsync, options: UseStorageAsyncOptions<string>): RemovableRef<string>
Code
export function useStorageAsync(key: string, initialValue: MaybeRefOrGetter<string>, storage?: StorageLikeAsync, options?: UseStorageAsyncOptions<string>): RemovableRef<string>
- Parameters:
key: string
initialValue: MaybeRefOrGetter<string>
storage: StorageLikeAsync
options: UseStorageAsyncOptions<string>
- Return Type:
RemovableRef<string>
read(event: StorageEvent): Promise<void>
Code
async function read(event?: StorageEvent) {
if (!storage || (event && event.key !== key))
return
try {
const rawValue = event ? event.newValue : await storage.getItem(key)
if (rawValue == null) {
data.value = rawInit
if (writeDefaults && rawInit !== null)
await storage.setItem(key, await serializer.write(rawInit))
}
else if (mergeDefaults) {
const value = await serializer.read(rawValue)
if (typeof mergeDefaults === 'function')
data.value = mergeDefaults(value, rawInit)
else if (type === 'object' && !Array.isArray(value))
data.value = { ...(rawInit as any), ...value }
else data.value = value
}
else {
data.value = await serializer.read(rawValue)
}
}
catch (e) {
onError(e)
}
}
- Parameters:
event: StorageEvent
- Return Type:
Promise<void>
- Calls:
storage.getItem
storage.setItem
serializer.write
serializer.read
mergeDefaults
Array.isArray
onError
Interfaces
UseStorageAsyncOptions<T>
Interface Code
export interface UseStorageAsyncOptions<T> extends Omit<UseStorageOptions<T>, 'serializer'> {
/**
* Custom data serialization
*/
serializer?: SerializerAsync<T>
}
Properties
Name |
Type |
Optional |
Description |
serializer |
SerializerAsync<T> |
✓ |
|