1.1.0 • Published 2 months ago

@bwrong/storage v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

@bwrong/storage

npm npm GitHub stars

为了解决本地缓存(localStorage或sessionStorage)的一些痛点,进行二次封装的本地缓存插件。

  • 可设置驱动,支持localStorage和sessionStorage。
  • 支持设置前缀,避免冲突
  • value值支持多种格式,不必要求为string
  • 支持加密存储,可自定义加密算法
  • 支持class集成扩展功能

安装

npm install @bwrong/storage
// 或
yarn add @bwrong/storage
// 或
pnpm install @bwrong/storage

基本使用

为了方便使用,默认提供了一个全局实例,如果不满足,可以自行初始化Storage实例。

  1. 使用默认全局实例。
import { setStorageConfig,setStorage, getStorage, removeStorage, clearStorage } from '@bwrong/storage';
setStorageConfig({
  driver: localStorage;
  // ...
});
setStorage(key, value, { expire: 10 }); //设置缓存
getStorage(key); //获取缓存
removeStorage(key1,key2); //移除特定标识缓存
clearStorage(); //清除所有缓存
  1. 自己实例化
import UStorage from '@bwrong/storage';
// import Utf8 from 'crypto-js/enc-utf8';
// import Base64 from 'crypto-js/enc-base64';

const storage = new UStorage({
  driver: localStorage,
  prefix: ''
  // 需要加密的时候可以使用
  // encryptFn(val) {
  //   return Base64.stringify(Utf8.parse(val));
  // },
  // decryptFn(val) {
  //   return Base64.parse(val).toString(Utf8);
  // }
});
export const getStorage = storage.get.bind(storage);
export const setStorage = storage.set.bind(storage);
export const removeStorage = storage.remove.bind(storage);
export const clearStorage = storage.clear.bind(storage);

配置

  • driver?: Storage

驱动:localStorage、sessionStorage,默认使用 localStorage

  • prefix?: string

名称前缀,方便区分

  • encryptFn?: StorageCryptFn

加密,配合解密decryptFn使用,需要保证使用一致算法加解密

  • decryptFn?: StorageCryptFn

解密,配合加密encryptFn使用,需要保证使用一致算法加解密

方法

  • new Storage(option: StorageOption) 实例化新的实例
  • config(option: StorageOption) 配置,也可以在实例化时传入
export interface StorageOption {
  /** 驱动:localStorage、sessionStorage,默认使用 localStorage*/
  driver?: Storage;
  /** 名称前缀,方便区分 */
  prefix?: string;
  /** 加密,配合解密decryptFn使用,需要保证使用统一算法加解密 */
  encryptFn?: StorageCryptFn;
  /** 解密,配合加密encryptFn使用,需要保证使用统一算法加解密 */
  decryptFn?: StorageCryptFn;
}
  • set(key: string, data: any, config?: StorageConfig) 设置缓存
export interface StorageConfig {
  //过期时间 单位秒
  expire?: number;
}
  • get<T = any>(key: string) 获取缓存

  • remove(...keys: string[]) 移除缓存

  • clear 清除缓存

1.1.0

2 months ago

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago

0.0.1

12 months ago