npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@qsyjlib/storage

v1.0.7

Published

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

Downloads

2

Readme

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[];