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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@slimio/sqlite-transaction

v0.2.0

Published

SQLite transaction manager for SlimIO events addon

Downloads

4

Readme

sqlite-transaction

Version Maintenance MIT dep size Known Vulnerabilities Build Status

SQLite transaction manager for SlimIO events addon. Designed to work with the sqlite npm package.

Requirements

Getting Started

This package is available in the Node Package Repository and can be easily installed with npm or yarn.

$ npm i @slimio/sqlite-transaction
# or
$ yarn add @slimio/sqlite-transaction

Usage example

Take the following example with an SQLite DB (with a table users).

const tM = new TransactionManager(db, {
    interval: 500,
    verbose: true
});
tM.registerSubject("user", {
    insert: "INSERT INTO users (username, password) VALUES (?, ?)"
});

tM.once("user.insert", (openAt, data, aData) => {
    console.log(`User insertion requested at: ${new Date(openAt)}, now successfully inserted!`);
});

const tId = tM.open("insert", "user", ["fraxken", "admin"]);
const ret = tM.attachData(tId, { foo: "bar" });

API

Create a new SQLite transaction manager. The first argument must be an SQLite db (from the npm package sqlite). Available options are described by the following interface:

interface ConstructorOptions {
    interval?: number;
    verbose?: boolean;
}

Default values are interval 5000 (milliseconds) and verbose false.

const sqlite = require("sqlite");
const transactionManager = require("@slimio/sqlite-transaction");

const db = await sqlite.open("./db.sqlite");
const tM = new transactionManager(db, { interval: 1000 });

Register a new Subject on the Transaction Manager object. The subject name must be typeof string or symbol. The actions argument must be described by a JavaScript Object as follow:

interface Actions {
    insert?: string;
    delete?: string;
    update?: string;
}
tM.registerSubject("test", {
    update: "...",
    delete: "..."
});

Load subjects from a given .json file. The file must be indented as follow:

{
    "subjectName": {
        "insert": "INSERT INTO table (field) VALUES ('val')",
        "update": "..."
    }
}

Example

await tM.loadSubjectsFromFile("./subjects.json");

Open a new request that will be queue and handled in a SQLite transaction. action and subject arguments are not mandatory and must be valid. Action must be either insert, update or delete.

The action must exist on the given subject.

Roadmap

  • Ability to lock/unlock requests (db handle priority).
  • Reduce/Agregate same requests (alarm with row occurence for example).

Dependencies

|Name|Refactoring|Security Risk|Usage| |---|---|---|---| |@slimio/timer|Minor|Low|Driftless Timer|

License

MIT