JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 18
  • Score
    100M100P100Q35845F
  • License ISC

A very simple level db native nodejs implementation

Package Exports

  • levelkv

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (levelkv) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

LevelKV

A simple native Node.js implementation of the well-known key-value based LevelDB library.

Installation

npm i levelkv

Examples

// Open a database
const { LevelKV, DBMutableCursor } = require('levelkv');
const db = await LevelKV.initFromPath('your_directory_path');


let key = 'key';
let value = { a:1, b:2, c:3 };

// Add data
await db.put( `${key}`, value );
await db.put( `${key}2`, value );

// Get data
let result = await db.get( key );
console.log( result.length );
console.log( await result.toArray() );


// Delete data
await db.del( key );

// Get all data
result = await db.get();
for await( let value of result )
{
    console.log( value );
}



// Use Mutable Cursor
const dbCursor  = await db.get([], {mutable_cursor: true});
const segments  = dbCursor.segments;
for( let segment of segments )
{
    segment._in = false;
    segment._v = 'newValue';
}
console.log( await dbCursor.toArray() );



// Close the database
await db.close();

Notice

All the operations in LevelKV are asynchronous, remember to add await keyword in front of the function call if you need.

Operations

Open A Database

/**
 * Initialize the database.
 *
 * @async
 * @param {string} dir - Directory path of the database. Make sure you have created or it will fail if the directory does not exist.
 * @param {object} options - Database creating options. Defaults to {auto_create:true}, which means create a new database automatically if not exist.
 * @returns {Promise<LevelKV>} - Promise object represents the database itself.
 */
.initFromPath(dir, options={auto_create:true})

Close A Database

/**
 * Close the database.
 *
 * @async
 */
.close()

Reads And Writes

/**
 * Get data from the database.
 *
 * @async
 * @param {string|string[]} keys - A specific key or an array of keys to retrieve, if not given it will retrieve all data from the database.
 * @returns {DBCursor|DBMutableCursor} - Database cursor of the retrieved data.
 */
.get(keys=[])
/**
 * Add data to the database.
 *
 * @async
 * @param {string|string[]} keys - A specific key or an array of keys to add.
 * @param {*} val - The value to add.
 */
.put(keys=[], val)
/**
 * Delete data from the database.
 *
 * @async
 * @param {string|string[]} keys -  A specific key or an array of keys to delete.
 */
.del(keys=[])

For Maintainer

Install Project

  • Clone Project:

    git clone <project-url>

  • Install Dependency Packages:

    npm install