@qsyjlib/storage
TypeScript icon, indicating that this package has built-in type declarations

1.0.7 • Public • Published

Storage 库

安装

npm i @qsyjlib/storage
pnpm add @qsyjlib/storage

使用

// 默认暴露
import storage from '@qsyjlib/storage'
//或
import { BaseStorage } from '@qsyjlib/storage'

创建 storage 对象

import { BaseStorage } from '@qsyjlib/storage'

const storage = new BaseStorage({
  storage: window.localStorage,
  expires: 86400,
  prefix: 'qsyj_',
  isSerializer: true,
  serializers: {
    object: {
      read: v => v,
      write: v => v
    }
  }
})

// types
interface OptionsType {
  expires?: number;   // 过期时间 ,无过期时间 永久缓存
  prefix?: string;  // 前缀
  storage?: BaseLocalStorageType;  // 指定 缓存实例
  serializers?: SerializerRecorad, // 序列化处理
  isSerializers?: boolean // 是否序列化处理
}

isSerializers 如果不开启序列化处理 ,则 直接采用原值 ,特殊类型等直接存入会丢失,如果开启 value 值则会 序列化处理 ,

set 写入缓存

set 会自动推断类型 使用哪种序列化处理 如果开启了

set(key: string, value: any, options?: SetOptionsType): void


type TimeStampType = number | undefined;
interface SetOptionsType {
   // 是否永久
  isForever: boolean;
  // 时间戳 默认不指定,填入按照指定时间
  timestamp?: TimeStampType;
}

get 获取指定缓存

包中默认暴露出所有默认的 读取写入 ,不指定 readHandler 如果开启序列化 ,在读取时无法判别 序列处理 默认作为字符串处理

get<T = any>(key: string, readHandler?: Serializer<T>): T | null;

interface Serializer<T> {
  // 读取
  read?(raw: string): T;
  // 写入
  write(value: T): string;
}

remove 移除指定缓存

remove(key: string): void;

removeAll 移除全部缓存

清除结果为 keys 取值

removeAll(): void;

batchRemove 批量移除

batchRemove(keys:string[])

keys

匹配所有前缀 key,没设置前缀 获取全部,同 原 storage

keys(): number[] | never[];

Readme

Keywords

Package Sidebar

Install

npm i @qsyjlib/storage

Weekly Downloads

1

Version

1.0.7

License

MIT

Unpacked Size

12.7 kB

Total Files

9

Last publish

Collaborators

  • qsyjlab