# @jzjy/storage

> A simple wrapper of browser localStorage

Latest version **1.0.3** (published 2021-03-19) · ISC license · 0 weekly downloads

## Install

```sh
npm install @jzjy/storage
pnpm add @jzjy/storage
yarn add @jzjy/storage
bun add @jzjy/storage
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2021-03-19 |
| First published | 2021-03-02 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 17.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | ivanly |
| Maintainers | jzjy |
| Keywords | localstorage, sessionstorage |

## Links

- npm: https://www.npmjs.com/package/@jzjy/storage
- Repository: http://git.jze100.com:8000/frontend/jzjy
- npm.io page: https://npm.io/package/@jzjy/storage

## Alternatives

- [localforage](https://npm.io/package/localforage.md) — 6.2M weekly downloads
- [localforage-observable](https://npm.io/package/localforage-observable.md) — 30.8K weekly downloads
- [@y/y](https://npm.io/package/@y/y.md) — 30.1K weekly downloads
- [@metaobjectsdev/render](https://npm.io/package/@metaobjectsdev/render.md) — 3.5K weekly downloads
- [@ledgerhq/coin-algorand](https://npm.io/package/@ledgerhq/coin-algorand.md) — 1.1K weekly downloads

## Recent versions

- 1.0.3 (latest) — 2021-03-19
- 1.0.2 — 2021-03-05
- 1.0.1 — 2021-03-03
- 1.0.0 — 2021-03-02

## README

# 浏览器Stroage封装

## 安装

可以使用Npm或Yarn

```
npm i --save @jzjy/storage
```
或者

```
yarn add @jzjy/storage
```

## 如何引入

```
import storage from '@jzjy/storage'
```

## API

这里的API规则主要是localStroage的交互方式，也可以传入`sessionStorage`

### 使用方式
> 直接使用json，添加过期时间

```js
let stroage = new Stroage()
let session = new Storage('sessionStorage')
````

> 可以增加key的前缀
```js
let storage = new Storage('localStorage', 'prefix--')
```

### set(key, value, options)
> 添加/修改数据

|参数|类型|默认值|描述|
|:----- |:------|:------|:------|
|key |any |'' |缓存的key |
|value |any | |缓存的value |
|options |object | |可选，过期时间 |

> 可选时间参数，可以传 number(秒) 或者 Date类型，其余参数要为Number

|参数|类型|默认值|描述|
|:----- |:------|:------|:------|
|exp |number | |秒 |
|hour |number | |时 |
|day |number | |天 |
|weak |number | |周 |
|month |number | |月 |
|year |number | |年 |

```js
storage.set('token', 123)
storage.set('token', 123, { day: 1 })
storage.set('token', 123, { exp: 24 * 3600 })
storage.set('token', 123, { exp: new Date(2021, 3, 22) })
```

### get(key)
> 获取数据

|参数|类型|默认值|描述|
|:----- |:------|:------|:------|
|key |any |'' |缓存的key |

```js
stroage.get('token')
```

### remove(key)
> 删除缓存的数据，返回key

```js
storage.remove('token')
```

### clearExpires()
> 清空所有过期的缓存数据

### clear()
> 清空所有缓存数据，包括原始的 `stroage API` 添加的数据

### reset(key, options)
> 重置过期时间

```js
stroage.reset('token', { hour: 2})
````

### replace(key)
> 重置value，过期时间不变

```js
storage.replace('token', 2222)
```

### add(key, value, options)
> 当key不存在或者过期了才添加数据

```js
storage.add('token', 123456)
storage.add('token', 1234455, { day: 1 })
```

---
_Source: https://npm.io/package/@jzjy/storage · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
