npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

promised-sqlite3

v2.1.0

Published

A wrapper arround sqlite3 node.js package to use promise

Downloads

7,687

Readme

promised-sqlite3

A thin wrapper for sqlite3 database that expose an async API.

Install

Note: sqlite3 is marked as a peer dependency, you must also install it.

npm install promised-sqlite3 sqlite3

Usage

AsyncDatabase is a wrapper that expose an async version of the sqlite3.Database's API. AsyncStatement is a wrapper that expose an async version of the sqlite3.Statement's API.

Async API

The following methods of sqlite3.Database are available as async methods in AsyncDatabase :

  • open
  • close
  • run
  • get
  • all
  • each
  • exec
  • prepare

The following methods of sqlite3.Statement are available as async methods in AsyncStatement :

  • bind
  • reset
  • finalize
  • run
  • get
  • all
  • each

These methods accept the same arguments as their sync version except for the callback one. Refer to the sqlite3's API reference for further information on their usage.

The rest of the API

AsyncDatabase and AsyncStatement only exposes the async methods listed above. You can access to the sqlite3.Database or the sqlite3.Statement object with the inner property (see example below).

Example

const { AsyncDatabase } = require("promised-sqlite3");

(async () => {
  try {
    // Create the AsyncDatabase object and open the database.
    const db = await AsyncDatabase.open("./db.sqlite");

    // Access the inner sqlite3.Database object to use the API that is not exposed by AsyncDatabase.
    db.inner.on("trace", (sql) => console.log("[TRACE]", sql));

    // Run some sql request.
    await db.run(
      "CREATE TABLE IF NOT EXISTS foo (id INTEGER PRIMARY KEY AUTOINCREMENT, a TEXT NOT NULL, b TEXT)"
    );
    await db.run("INSERT INTO foo (a, b) VALUES (?, ?)", "alpha", "beta");
    await db.run("INSERT INTO foo (a, b) VALUES ($goo, $hoo)", {
      $goo: "GOO !",
      $hoo: "HOO :",
    });
    await db.run("INSERT INTO foo (a, b) VALUES (?, ?)", [
      "Value of a",
      "Value of b",
    ]);

    // Read database.
    const row = await db.get("SELECT * FROM foo WHERE id = ?", 2);
    const rows = await db.all("SELECT * FROM foo");
    await db.each("SELECT * FROM foo WHERE id > ?", 5, (row) =>
      console.log(row)
    );

    // Create a async statement
    const statement = await db.prepare("SELECT * FROM foo WHERE id = ?", 2);
    const row = await statement.get();

    // Close the database.
    await db.close();
  } catch (err) {
    console.error(err);
  }
})();