UNPKG

vue-hooks-plus

Version:
21 lines (20 loc) 798 B
import { Ref } from 'vue'; export interface IFuncUpdater<T> { (previousState?: T): T; } export interface IFuncStorage { (): Storage; } export interface Options<T> { serializer?: (value: T) => string; deserializer?: (value: string) => T; } export interface OptionsWithDefaultValue<T> extends Options<T> { defaultValue: T | IFuncUpdater<T>; } export type StorageStateResult<T> = [Ref<T> | Ref<undefined>, (value?: T | IFuncUpdater<T>) => void]; export type StorageStateResultHasDefaultValue<T> = [ Ref<T> | Ref<undefined>, (value?: T | IFuncUpdater<T> | undefined) => void ]; export declare function createUseStorageState(getStorage: () => Storage | undefined): <T>(key: Ref<string> | string, options?: OptionsWithDefaultValue<T>) => StorageStateResultHasDefaultValue<T>;