Storage

与 useAppStorage 组合式函数相关的类型和 Zod schema。

StorageType

一个表示存储类型的字符串字面量类型。

Source
export type StorageType = 'localStorage' | 'sessionStorage'
Example
const storage: StorageType = 'localStorage'

StorageConfig<T>

useAppStorage 函数的完整配置对象的推断类型。

Source
export type StorageConfig<T = unknown> = z.infer<ReturnType<typeof createStorageConfigSchema<T>>>

StorageConfigInput<T>

useAppStorage 函数的输入配置对象的类型。

Source
export type StorageConfigInput<T = unknown> = z.input<ReturnType<typeof createStorageConfigSchema<T>>>

AppStorageReturn<T>

useAppStorage 函数的返回对象的接口。

Source
export interface AppStorageReturn<T> {
  state: Ref<T>
  getItem: () => T
  setItem: (value: T) => void
  removeItem: () => void
}
Example
import { useAppStorage } from '@movk/core'
import { z } from 'zod'

const { state, getItem, setItem, removeItem }: AppStorageReturn<string> = useAppStorage({
  key: 'my-key',
  schema: z.string(),
  defaultValue: 'hello'
})

createStorageConfigSchema

一个创建用于验证 useAppStorage 配置的 Zod schema 的工厂函数。

Source
export function createStorageConfigSchema<T = unknown>(schema: z.ZodType<T>) {
  return z.object({
    key: z.string().min(1, { message: 'Key cannot be empty' }),
    schema: z.custom<z.ZodType<T>>(
      val => val instanceof z.ZodType,
      { message: 'Schema must be a valid Zod schema' },
    ),
    defaultValue: z.custom<T>(
      val => schema.safeParse(val).success,
      { message: 'Default value must match the provided schema' },
    ),
    prefix: z.string().default('movk'),
    storage: StorageTypeSchema.default('localStorage'),
  })
}

Changelog

7a568 — feat: 初始化项目结构与核心功能

Copyright © 2024 - 2025 YiXuan - MIT License