# deferred-leveldown

> A mock abstract-leveldown implementation that queues operations while a real abstract-leveldown instance is being opened

Latest version **7.0.0** (published 2021-09-30) · MIT license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install deferred-leveldown
pnpm add deferred-leveldown
yarn add deferred-leveldown
bun add deferred-leveldown
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 7.0.0 |
| Published | 2021-09-30 |
| First published | 2013-09-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=10 |
| Dependencies | 2 |
| Unpacked size | 25.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 19 |
| Maintainers | vweevers, rvagg, ralphtheninja |
| Keywords | leveldb, level, levelup, leveldown |

## Links

- npm: https://www.npmjs.com/package/deferred-leveldown
- Repository: https://github.com/Level/deferred-leveldown
- Issues: https://github.com/Level/deferred-leveldown/issues
- npm.io page: https://npm.io/package/deferred-leveldown

## Dependencies (2)

- [inherits](https://npm.io/package/inherits.md) ^2.0.3
- [abstract-leveldown](https://npm.io/package/abstract-leveldown.md) ^7.2.0

## Recent versions

- 7.0.0 (latest) — 2021-09-30
- 6.0.0 — 2021-04-17
- 5.3.0 — 2019-10-04
- 5.2.1 — 2019-09-17
- 5.2.0 — 2019-09-06
- 5.1.0 — 2019-06-22
- 5.0.1 — 2019-03-31
- 5.0.0 — 2018-12-22
- 4.0.2 — 2018-05-30
- 4.0.1 — 2018-05-22
- 4.0.0 — 2018-05-13
- 3.0.0 — 2018-02-08
- 2.0.3 — 2017-11-04
- 2.0.2 — 2017-10-06
- 2.0.1 — 2017-09-12
- … 14 more at https://npm.io/package/deferred-leveldown/versions

## README

# deferred-leveldown

> A mock `abstract-leveldown` implementation that queues operations while a real `abstract-leveldown` instance is being opened.

[![level badge][level-badge]](https://github.com/Level/awesome)
[![npm](https://img.shields.io/npm/v/deferred-leveldown.svg)](https://www.npmjs.com/package/deferred-leveldown)
[![Node version](https://img.shields.io/node/v/deferred-leveldown.svg)](https://www.npmjs.com/package/deferred-leveldown)
[![Test](https://img.shields.io/github/workflow/status/Level/deferred-leveldown/Test?label=test)](https://github.com/Level/deferred-leveldown/actions/workflows/test.yml)
[![Coverage](https://img.shields.io/codecov/c/github/Level/deferred-leveldown?label=&logo=codecov&logoColor=fff)](https://codecov.io/gh/Level/deferred-leveldown)
[![Standard](https://img.shields.io/badge/standard-informational?logo=javascript&logoColor=fff)](https://standardjs.com)
[![Common Changelog](https://common-changelog.org/badge.svg)](https://common-changelog.org)
[![Donate](https://img.shields.io/badge/donate-orange?logo=open-collective&logoColor=fff)](https://opencollective.com/level)

## Usage

_If you are upgrading: please see [UPGRADING.md](UPGRADING.md)._

`deferred-leveldown` implements the [`abstract-leveldown`](https://github.com/Level/abstract-leveldown) API so it can be used as a drop-in replacement where `leveldown` is needed.

`put()`, `get()`, `getMany()`, `del()`, `batch()` and `clear()` operations are all queued and kept in memory until the `abstract-leveldown`-compatible object has been opened through `deferred-leveldown`'s `open()` method.

`batch()` operations will all be replayed as the array form. Chained-batch operations are converted before being stored.

```js
const deferred  = require('deferred-leveldown')
const leveldown = require('leveldown')

const db = deferred(leveldown('location'))

// Must always call open() first
db.open(function (err) {
  // ...
})

// But can operate before open() has finished
db.put('foo', 'bar', function (err) {
  // ...
})
```

## Contributing

[`Level/deferred-leveldown`](https://github.com/Level/deferred-leveldown) is an **OPEN Open Source Project**. This means that:

> Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is more like an open wiki than a standard guarded open source project.

See the [Contribution Guide](https://github.com/Level/community/blob/master/CONTRIBUTING.md) for more details.

## Donate

Support us with a monthly donation on [Open Collective](https://opencollective.com/level) and help us continue our work.

## License

[MIT](LICENSE)

[level-badge]: https://leveljs.org/img/badge.svg

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