# version-storage

> localStorage like, fileSystem/localStorage based storage with upgrade

Latest version **0.0.7** (published 2014-09-04) · MIT license · 0 weekly downloads

## Install

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

## 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.0.7 |
| Published | 2014-09-04 |
| First published | 2014-09-04 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Zeno Zeng |
| Maintainers | zenozeng |
| Keywords | storage, version |

## Links

- npm: https://www.npmjs.com/package/version-storage
- Repository: https://github.com/zenozeng/version-storage
- Issues: https://github.com/zenozeng/version-storage/issues
- npm.io page: https://npm.io/package/version-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

- 0.0.7 (latest) — 2014-09-04
- 0.0.6 — 2014-09-04
- 0.0.5 — 2014-09-04
- 0.0.4 — 2014-09-04
- 0.0.3 — 2014-09-04
- 0.0.2 — 2014-09-04

## README

# version-storage

localStorage like, fileSystem/localStorage based storage with upgrade.

## Usage

```javascript
var upgrade = function(storage) {
    var oldVersion = storage.version;
    if(oldVersion < 1) {
        // Version 1 is the first version of the database.
        storage.setItem('hello', '[1, 2, 3]');
    }
    if(oldVersion < 2) {
        // Version 2 changes the data structure of `hello`
        var hello = storage.getItem('hello');
        // do some remaping
        storage.setItem('hello', newhello);
    }
    if(oldVersion < 3) {
        // Version 3 changes the name of `hello`
        var hello = storage.getItem('hello');
        storage.removeItem('hello');
        storage.setItem('world', hello);
    }
    storage.setVersion(3);
};

var storage = new VersionStorage('kizz/file', upgrade);
var sth = storage.getItem('sth');
```

```javascript
// for nodejs
var FsStroage = require('fs-storage');
var fsStorage = new Storage('./storage/');
var storage = new VersionStorage('kizz/file', {storage: fsStorage}, upgrade);
var sth = storage.getItem('sth');
```

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