Files
BewlyBewly/src/composables/useStorageLocal.ts
2024-01-07 16:42:25 +08:00

29 lines
700 B
TypeScript

import { storage } from 'webextension-polyfill'
import type {
MaybeRef,
RemovableRef,
StorageLikeAsync,
UseStorageAsyncOptions,
} from '@vueuse/core'
import {
useStorageAsync,
} from '@vueuse/core'
const storageLocal: StorageLikeAsync = {
removeItem(key: string) {
return storage.local.remove(key)
},
setItem(key: string, value: string) {
return storage.local.set({ [key]: value })
},
async getItem(key: string) {
return (await storage.local.get(key))[key]
},
}
export function useStorageLocal<T>(key: string, initialValue: MaybeRef<T>, options?: UseStorageAsyncOptions<T>): RemovableRef<T> {
return useStorageAsync(key, initialValue, storageLocal, options)
}