# sweet-storage

> 给localStorage整合过期时间，更便捷的用于前端存储

Latest version **1.0.5** (published 2022-07-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install sweet-storage
pnpm add sweet-storage
yarn add sweet-storage
bun add sweet-storage
```

## Health

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

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.5 |
| Published | 2022-07-07 |
| First published | 2019-04-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 24.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 88 |
| Author | Chechengyi |
| Maintainers | chechengyi |
| Keywords | localStorage |

## Links

- npm: https://www.npmjs.com/package/sweet-storage
- Repository: https://github.com/Chechengyi/i-storage
- Homepage: https://github.com/Chechengyi/i-storage#readme
- Issues: https://github.com/Chechengyi/i-storage/issues
- npm.io page: https://npm.io/package/sweet-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.5 (latest) — 2022-07-07
- 1.0.4 — 2020-09-30
- 1.0.3 — 2020-09-30
- 1.0.2 — 2020-04-22
- 1.0.1 — 2020-04-22
- 1.0.0 — 2019-11-27
- 0.0.7 — 2019-06-28
- 0.0.6 — 2019-05-14
- 0.0.5 — 2019-04-18
- 0.0.4 — 2019-04-17
- 0.0.3 — 2019-04-17
- 0.0.2 — 2019-04-16
- 0.0.1 — 2019-04-16

## README

# sweet-storage

给 `localStorage` 整合了过期时间的功能

`localStorage` 是浏览器提供给我们的原生api， 目前 `localStorage` 只能实现永久存储。 
本工具给localStorage整合了设置过期时间的功能， 并让用户可以在存储信息过期的时候去“订阅”到此信息。
此外，本工具也整合了 `sessionStorage` 的存储操作


## 如何使用

###  npm 下载

```bash
$ npm install sweet-storage
```
  
```javascript
import storage from 'sweet-storage'
storage.save('name', 'storage', 3000)
storage.on('name', key => {
  console.warn(`${key} deleted`)
})
```

###  直接引入

```javascript
<script src='./storage/release/storage.js'></script>
storage.save('name', 'storage', 3000)
storage.on('name', (key)=>{
  console.warn(`${key} deleted`)
})
```


## API

### localStorage

### get

根据key获取localStorage中的信息

```js
storage.get(key)
```

* key: 保存的时候设置的key

#### save

存储到localStorage中

```js
storage.save(key, value, time)
```

* key: 存储的键
* value: 存储的值
* time: 过期时间(ms), 不传代表永久存储,  time不允许设为0

#### remove

删除localStorage中指定键

```js
storage.remove(key)
```

* key: 需要被删除的键

#### clear

清空localStorage

```js
storage.clear()
```

#### on

订阅某一个键的到期信息

```js
storage.on(key, fn)
```

* key: 被订阅的键
* fn: 回调函数(key => {})

#### off

取消订阅某一个键的到期信息

```js
storage.off(key, fn)
```

```js
storage.off(key, true)  // 传入true取消所有订阅此键的函数
```

* key: 被订阅的键
* fn:  取消的函数

### sessionStorage

### get

根据key获取sessionStorage中的信息

```js
storage.session.get(key)
```

* key: 保存的时候设置的key

#### save

存储

```js
storage.session.save(key, value)
```
* key: 存储的键
* value: 存储的值

#### remove

移除

```js
storage.session.remove(key)
```

* key: 需要被删除的键

#### clear

清空sessionStorage

```js
storage.session.clear()
```

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