# local-data-manage

> 本地数据持久化，序列化，格式化的综合实现

Latest version **0.1.0** (published 2021-11-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install local-data-manage
pnpm add local-data-manage
yarn add local-data-manage
bun add local-data-manage
```

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2021-11-28 |
| First published | 2021-11-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 70.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | liujie |
| Maintainers | jiekeliu |
| Keywords | data manage, data |

## Links

- npm: https://www.npmjs.com/package/local-data-manage
- Repository: https://gitee.com/jiekeklu6/local-data-manage
- npm.io page: https://npm.io/package/local-data-manage

## Dependencies (1)

- [localforage](https://npm.io/package/localforage.md) ^1.10.0

## Alternatives

- [gamedig](https://npm.io/package/gamedig.md) — 29.3K weekly downloads
- [join-monster](https://npm.io/package/join-monster.md) — 12.8K weekly downloads
- [masked](https://npm.io/package/masked.md) — 5.5K weekly downloads
- [@comunica/actor-query-process-explain-logical](https://npm.io/package/@comunica/actor-query-process-explain-logical.md) — 4.7K weekly downloads
- [@veracity/vui](https://npm.io/package/@veracity/vui.md) — 4.6K weekly downloads

## Recent versions

- 0.1.0 (latest) — 2021-11-28
- 0.0.9-change — 2021-11-28
- 0.0.9 — 2021-11-28

## README

## 介绍

LDM ( local-data-manage ) 将本地数据的持久化，序列化，格式化融合到一起，能方便的处理以上数据操作的组合。更多使用方式， 请查询 **[API](https://gitee.com/jiekeklu6/local-data-manage/blob/PR-local-data-manage/local-data-manage/doc/README.md)** 。

注：LDM 是异步的, 本地持久化优先使用 indexedDB。

### 开始使用

#### 下载

```js
npm install @in2iot/local-data-manage --save
```

#### 使用

1. 简单的格式化一个数据

```js
import ldm from '@in2iot/local-data-manage'

var sf = ldm.init{ type:'single' } // 如果您想把数据持久化到本地，你只需要 init({ type:'single', persistence: { isOpen:true } }); 如果您在同一项目中初始化了多个ldm对象，你需要定义 persistence.flag 来区分它们。

sf.add('test', { a:'aaaa', b:[1,2], d:234 }) // 这里你也可以添加format进行格式化

const res = sf.get('test', 'a') // 获取对象中的‘a’属性值,即 res.value = 'aaaa'。

const format = {
    a:'String',
    c:'String',
    d:'String'
}

const res = sf.get('test', undefined, format) // 格式化获取值，即 res.value = { a:'aaaa', c:'', d:'234' }。
```

2. 序列化多个数据

```js
import ldm from '@in2iot/local-data-manage'

var mf = ldm.init{ type:'multi' } //同样，如果您想把数据持久化到本地，你只需要更改 persistence 对象。

const saveFormat = {
    a:'String',
    c:'String',
    d:'String'
}

mf.add('test', undefined, saveFormat) // 这样你就添加了一条定义了固定格式的队列。这条队列的每一项都由该格式限制。

mf.up('test', value, false) // 向队列末尾添加一项。注意: 操作是异步的。

const getFormat = {
    prop: 'a', // 筛选出包含这个属性的项
    timeInterval: 2000, // 间隔时间为 2s
    format: { a: 'String', c: 'Object' }, // 格式化输出项
}

mf.get('keyName', undefined，getFormat)

```

#### 测试

```js
npm install

npm run test
```

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