@xiaohaih/storage
v0.0.1
Published
本项目提供了一个灵活的本地存储工具, 基于 `TypeScript` 实现, 支持 `localStorage`, `sessionStorage` 及自定义存储; 通过 `StorageCore` 类, 可以方便地进行数据的序列化, 反序列化, 存储和读取。
Downloads
8
Maintainers
Readme
存储库说明
本项目提供了一个灵活的本地存储工具, 基于 TypeScript 实现, 支持 localStorage, sessionStorage 及自定义存储; 通过 StorageCore 类, 可以方便地进行数据的序列化, 反序列化, 存储和读取。
特性
- 支持
localStorage,sessionStorage或自定义存储实现 - 支持键和值的序列化与反序列化
- 提供
setItem,getItem,removeItem,clear等常用方法 - 可自定义序列化/反序列化逻辑
快速上手
import { local, session, StorageCore } from '@xiaohaih/storage';
// 使用 localStorage
local.setItem('key', { a: 1 });
const value = local.getItem('key'); // { a: 1 }
local.removeItem('key');
local.clear();
session.setItem('key', { a: 1 });
const value2 = session.getItem('key'); // { a: 1 }
session.removeItem('key');
session.clear();
// 使用自定义存储实现
const customProvider = {
setItem: (key, value) => { /* ... */ },
getItem: (key) => { /* ... */ },
removeItem: (key) => { /* ... */ },
clear: () => { /* ... */ },
};
const customStorage = new StorageCore({ storageProvider: customProvider });构造参数 StorageOption
serializeKey/deserializeKey: 键的序列化/反序列化函数serializeValue/deserializeValue: 值的序列化/反序列化函数storageProvider: 自定义存储实现, 需实现setItem/getItem/removeItem/clear接口
工具函数
noop(value):原样返回输入stringify(val):将值序列化为 JSON 字符串parse(val, defaultValue):将字符串解析为对象, 失败时返回默认值或 null
预设实例
local:localStorage封装实例session:sessionStorage封装实例
运行测试
本项目使用 Vitest 进行单元测试
pnpm install
pnpm test
# 或
npx vitest目录结构
src/storage.ts:核心存储实现src/storage.test.ts:单元测试
如有建议或问题, 欢迎提 issue!
