For the complete documentation index, see llms.txt. This page is also available as Markdown.

3. Set Up Database

Set up functions for different environments (Node.js, web browsers, and React Native) to manage LevelDB databases:

  • Node.js Setup: Utilizes leveldown for creating databases. Use createNodeDatabase(path) to instantiate a LevelDown database at the given file path.

    const db = createNodeDatabase('./path/to/database');
  • Web Browser Setup: Leverages level-js for browser-based databases. Use createWebDatabase(path) to initialize a LevelDB database, offering basic functionality through the LevelDB instance.

    const db = createWebDatabase('./data/mydb');
  • React Native Setup: Employs leveldown-nodejs-mobile for creating databases on React Native platforms. Use the asynchronous createNativeDatabase(path) function, which returns a promise that resolves to a LeveldownNodejsMobile database instance.

    const db = await createNativeDatabase('/path/to/database');
    
// Setup for Node builds.
import LevelDownDB from "leveldown";
/**
 * Creates a LevelDown database instance at the specified path.
 *
 * @param dbLocationPath - The file system path where the database will be created
 * @returns A LevelDown database instance
 *
 * @example
 * ```typescript
 * const db = createNodeDatabase('./path/to/database');
 * ```
 */
export const createNodeDatabase = (dbLocationPath: string) => {
  console.log("Creating local database at path: ", dbLocationPath);
  const db = LevelDownDB(dbLocationPath);
  return db;
};

// Setup for Web builds.
import LevelDB from "level-js";
/**
 * Creates a new web database instance at the specified location path
 * @param dbLocationPath - The file system path where the database will be created
 * @returns A new LevelDB database instance
 * @remarks This function initializes a new LevelDB database at the specified path
 * and provides basic database functionality through the returned instance.
 * @example
 * const db = createWebDatabase('./data/mydb');
 */
export const createWebDatabase = (dbLocationPath: string) => {
  indexedDB.databases;
  console.log("Creating local database at path: ", dbLocationPath);
  const db = new LevelDB(dbLocationPath);
  return db;
};

// Setup for React Native builds.

// @ts-ignore
import LeveldownNodejsMobile from "leveldown-nodejs-mobile";
/**
 * Creates a native database instance using LeveldownNodejsMobile.
 *
 * @param dbLocationPath - The file system path where the database will be stored
 * @returns A Promise that resolves to a new LeveldownNodejsMobile database instance
 *
 * @example
 * ```typescript
 * const db = await createNativeDatabase('/path/to/database');
 * ```
 */
export const createNativeDatabase = async (dbLocationPath: string) => {
  return new LeveldownNodejsMobile(dbLocationPath);
};

Last updated