JSPM

idbkeyvalue

1.2.6
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q31924F
  • License MIT

This npm package provides a simple and efficient key-value storage solution using the IndexedDB API. IndexedDB is a low-level API for client-side storage of significant amounts of structured data. With this package, you can easily open or create an IndexedDB database, set, get, update, and delete key-value pairs, offering a flexible and powerful data management solution for web applications.

Package Exports

  • idbkeyvalue
  • idbkeyvalue/dist/index.js

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 (idbkeyvalue) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

idbkeyvalue

idbkeyvalue is a simple and efficient key-value storage solution built on the IndexedDB API. This package allows you to easily manage key-value pairs in a client-side IndexedDB database. It provides functionalities to open/create databases, and perform CRUD operations on stored data.

Features

  • Open or create an IndexedDB database.
  • Insert, get, update, delete, and manage key-value pairs.
  • Clear all keys or delete the database.
  • Retrieve all database names.

Installation

You can install idbkeyvalue via npm:

npm install idbkeyvalue

Usage

Importing

You can import the necessary functions from the package as follows:

import { 
    openDB, 
    insertIDB, 
    getIDB, 
    updateIDB, 
    deleteIDB, 
    setIDB, 
    deleteDBIDB, 
    clearAllKeys, 
    getAll, 
    getAllDatabaseNames, 
    getBy 
} from 'idbkeyvalue';

Examples

Open/Create a Database

const db = await openDB('myDatabase', 1);

Insert Data

await insertIDB(db, 'myKey', 'myValue');

Get Data

const value = await getIDB(db, 'myKey');
console.log(value); // Output: 'myValue'

Update Data

await updateIDB(db, 'myKey', 'newValue');

Delete Data

await deleteIDB(db, 'myKey');

Set Data

await setIDB(db, 'myKey', 'myValue');

Delete Database

await deleteDBIDB('myDatabase');

Clear All Keys

await clearAllKeys(db);

Get All Entries

const allEntries = await getAll(db);
console.log(allEntries);

Get All Database Names

const databaseNames = await getAllDatabaseNames();
console.log(databaseNames);

Get Data By Condition

const result = await getBy(db, (key, value) => key === 'myKey');
console.log(result);

API

IndexedDB Library Documentation

This library provides a set of functions to interact with IndexedDB databases in a web browser. It allows you to create, open, read from, write to, and delete databases.

Table of Contents


  • Database Functions
    • openDB(dbName: string): Promise<IDBDatabase> - Open or create an IndexedDB database.
    • deleteDBIDB(dbName: string = defaultDB): Promise<string> - Delete an IndexedDB database.
  • Data Storage Functions
    • insertIDB(key: string, value: any, dbName: string = defaultDB): Promise<boolean> - Insert a key-value pair into the database.
    • getIDB(key: string, dbName: string = defaultDB): Promise<any> - Retrieve a value from the database by its key.
    • updateIDB(key: string, newValue: any, dbName: string = defaultDB): Promise<void> - Update a value in the database.
  • Data Retrieval Functions
    • getAll(dbName: string = defaultDB): Promise<any[]> - Retrieve all key-value pairs from the database.
    • getBy(dbName: string, condition: Record<string, any>): Promise<any[]> - Retrieve key-value pairs that match a given condition.
  • Utility Functions
    • getAllDatabaseNames(): Promise<string[]> - Retrieve the names of all IndexedDB databases in the browser.

Database Functions


openDB(dbName: string): Promise<IDBDatabase>

Open or create an IndexedDB database with the specified name. If a database with the same name already exists, it will be opened; otherwise, a new database will be created.

Parameters

  • dbName: The name of the database to open/create (default: "defaultDB").

Returns

A promise that resolves to the opened/closed IndexedDB database object.

Example

const db = await openDB('myDatabase');

deleteDBIDB(dbName: string = defaultDB): Promise<string>

Delete an IndexedDB database with the specified name. If a database with the same name does not exist, no action will be taken.

Parameters

  • dbName: The name of the database to delete (default: "defaultDB").

Returns

A promise that resolves to a string indicating whether the deletion was successful or not.

Example

const result = await deleteDBIDB('myDatabase');

Data Storage Functions


insertIDB(key: string, value: any, dbName: string = defaultDB): Promise<boolean>

Insert a key-value pair into the database. If a key with the same name already exists, its value will be updated.

Parameters

  • key: The key of the value to insert.
  • value: The value to insert.
  • dbName: The name of the database to store in (default: "defaultDB").

Returns

A promise that resolves to a boolean indicating whether the insertion was successful or not.

Example

const result = await insertIDB('myKey', 'myValue');

getIDB(key: string, dbName: string = defaultDB): Promise<any>

Retrieve a value from the database by its key. If no key with the same name exists, an empty object will be returned.

Parameters

  • key: The key of the value to retrieve.
  • dbName: The name of the database to read from (default: "defaultDB").

Returns

A promise that resolves to the retrieved value or an empty object if no key is found.

Example

const result = await getIDB('myKey');

updateIDB(key: string, newValue: any, dbName: string = defaultDB): Promise<void>

Update a value in the database. If no key with the same name exists, a new key-value pair will be inserted.

Parameters

  • key: The key of the value to update.
  • newValue: The new value to insert or update.
  • dbName: The name of the database to store in (default: "defaultDB").

Returns

A promise that resolves when the update is complete.

Example

const result = await updateIDB('myKey', 'newValue');

Data Retrieval Functions


getAll(dbName: string = defaultDB): Promise<any[]>

Retrieve all key-value pairs from the database. If no keys exist, an empty array will be returned.

Parameters

  • dbName: The name of the database to read from (default: "defaultDB").

Returns

A promise that resolves to an array of key-value pairs.

Example

const result = await getAll();

getBy(dbName: string, condition: Record<string, any>): Promise<any[]>

Retrieve key-value pairs that match a given condition. If no keys exist, an empty array will be returned.

Parameters

  • dbName: The name of the database to read from.
  • condition: An object containing conditions for which key-value pairs to return.

Returns

A promise that resolves to an array of matching key-value pairs.

Example

const result = await getBy('myDatabase', { key: 'value' });

Utility Functions


getAllDatabaseNames(): Promise<string[]>

Retrieve the names of all IndexedDB databases in the browser. If no databases exist, an empty array will be returned.

Returns

A promise that resolves to an array of database names.

Example

const result = await getAllDatabaseNames();

Note: This documentation assumes a basic understanding of JavaScript and IndexedDB.

Contributing

Contributions are welcome! If you find a bug or have suggestions for improvements, please submit an issue or a pull request.

License

This package is licensed under the MIT License. See the LICENSE file for more details.