@replit/database
TypeScript icon, indicating that this package has built-in type declarations

3.0.1 • Public • Published

Replit Database Client

Run on Repl.it npm: @replit/database

The Replit Database client is a simple way to use Replit Database in your Node.js repls. The client expects to run within a Replit managed server context. Use this library in servers or other applications that execute on a Replit server, rather than in your user's browser.

Installation

Install the TypeScript Library with

npm install @replit/database

This library supports Bun, Deno, and Node.js (Node versions 18+ or any Node version polyfilled with the fetch API).

Quickstart

import Client from "@replit/database";

const client = new Client();
await client.set("key", "value");
let value = await client.get("key");

console.log(value); // { ok: true, value: "value" }

Docs

Initiate a new database client:

import Client from "@replit/database";

/**
 * Initiates Class.
 * @param {String} dbUrl Custom database URL
 */
new Client()

Retrieve a value for a key from the database:

/**
 * Gets a key
 * @param {String} key Key
 * @param {boolean} [options.raw=false] Makes it so that we return the raw string value. Default is false.
 * @returns Promise<OkResult<any> | ErrResult<RequestError>>
 */
const value = await client.get(key, /* options?: {raw: boolean} */)
console.log(value)
// { ok: true, value: "value" } | { ok: false, error: RequestError }

Sets a value for a key in the database:

/**
 * Sets a key
 * @param {String} key Key
 * @param {any} value Value
 */
await client.set(key, value)

Deletes a key from the database:

/**
 * Deletes a key
 * @param {String} key Key
 */
const result = await client.delete(key)
console.log(result.ok) // boolean

Lists all keys starting with the provided prefix:

/**
 * List key starting with a prefix if provided. Otherwise list all keys.
 * @param {String} prefix The prefix to filter by.
 */
const keys = await client.list("prefix-")
console.log(keys) // { ok: true, value: [...] } | { ok: false, error: RequestError }

Clears the database:

/**
 * Clears the database.
 * @returns a Promise containing this
 */
await client.empty()

Gets all records in the database:

/**
 * Get all key/value pairs and return as an object
 * @param {boolean} [options.raw=false] Makes it so that we return the raw
 * string value for each key. Default is false.
 */
const records = await client.getAll(/* options?: {raw: boolean} */)

Sets multiple key value pairs:

/**
 * Sets multiple keys from an object.
 * @param {Object} obj The object.
 */
await client.setMultiple({keyOne: "valueOne", keyTwo: "valueTwo"})

Deletes multiple keys from the database:

/**
 * Delete multiple entries by key.
 * @param {Array<string>} args Keys
 */
await client.deleteMultiple(['keyOne', 'keyTwo'])

Tests

npm i
npm run test

Dependencies (0)

    Dev Dependencies (4)

    Package Sidebar

    Install

    npm i @replit/database

    Weekly Downloads

    1,479

    Version

    3.0.1

    License

    MIT

    Unpacked Size

    23.2 kB

    Total Files

    7

    Last publish

    Collaborators

    • mikewesthad
    • motzyball
    • juan.replit
    • ahulbert-replit
    • james-addison-replit
    • replitdstewart
    • ryanweingast
    • harryatreplit
    • theflowingsky
    • jonesit-replit
    • szymon_k
    • cdmistman
    • jackyzha0
    • jamesaustinreplit
    • lopezhoracio
    • bradymaddenreplit
    • ryantm
    • alexisreplit
    • ink404
    • brianpool
    • tobyho
    • brenoafb
    • masad-frost
    • lincolnreplit
    • stkenned
    • replitmatt
    • cbrewster
    • ltazmin_replit
    • moudy
    • schestakov
    • lhchavez
    • slmjkdbtl
    • lunaroyster