# sqlite-tag-spawned

> Same as sqlite-tag but without the native sqlite3 module dependency

Latest version **0.7.1** (published 2025-02-21) · ISC license · 0 weekly downloads

## Install

```sh
npm install sqlite-tag-spawned
pnpm add sqlite-tag-spawned
yarn add sqlite-tag-spawned
bun add sqlite-tag-spawned
```

## Health

**Score 30/100 (F)** — status: maintenance-mode.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types; pre 1.0.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.7.1 |
| Published | 2025-02-21 |
| First published | 2022-01-15 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 22.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 19 |
| Author | Andrea Giammarchi |
| Maintainers | webreflection |
| Keywords | sqlite, sqlite3, spawn, lightweight |

## Links

- npm: https://www.npmjs.com/package/sqlite-tag-spawned
- Repository: https://github.com/WebReflection/sqlite-tag-spawned
- Homepage: https://github.com/WebReflection/sqlite-tag-spawned#readme
- Issues: https://github.com/WebReflection/sqlite-tag-spawned/issues
- npm.io page: https://npm.io/package/sqlite-tag-spawned

## Dependencies (2)

- [plain-tag](https://npm.io/package/plain-tag.md) ^0.1.3
- [static-params](https://npm.io/package/static-params.md) ^0.4.0

## Recent versions

- 0.7.1 (latest) — 2025-02-21
- 0.7.0 — 2023-10-23
- 0.6.0 — 2022-05-17
- 0.5.6 — 2022-04-02
- 0.5.5 — 2022-02-26
- 0.5.4 — 2022-02-19
- 0.5.3 — 2022-02-19
- 0.5.2 — 2022-02-19
- 0.5.1 — 2022-02-19
- 0.5.0 — 2022-02-19
- 0.4.5 — 2022-02-16
- 0.4.4 — 2022-02-16
- 0.4.3 — 2022-02-11
- 0.4.2 — 2022-02-06
- 0.4.1 — 2022-02-02
- … 8 more at https://npm.io/package/sqlite-tag-spawned/versions

## README

# sqlite-tag-spawned

[![build status](https://github.com/WebReflection/sqlite-tag-spawned/actions/workflows/node.js.yml/badge.svg)](https://github.com/WebReflection/sqlite-tag-spawned/actions) [![Coverage Status](https://coveralls.io/repos/github/WebReflection/sqlite-tag-spawned/badge.svg?branch=main)](https://coveralls.io/github/WebReflection/sqlite-tag-spawned?branch=main)

<sup>**Social Media Photo by [Tomas Kirvėla](https://unsplash.com/@tomkirvela) on [Unsplash](https://unsplash.com/)**</sup>


The same [sqlite-tag](https://github.com/WebReflection/sqlite-tag#readme) ease but without the native [sqlite3](https://www.npmjs.com/package/sqlite3) dependency, aiming to replace [dblite](https://github.com/WebReflection/dblite#readme).

```js
import SQLiteTagSpawned from 'sqlite-tag-spawned';
// const SQLiteTagSpawned = require('sqlite-tag-spawned');

const {query, get, all, raw, transaction} = SQLiteTagSpawned('./db.sql');

// single query as any info
console.log(await query`.databases`);

// single query as SQL
await query`CREATE TABLE IF NOT EXISTS names (
  id INTEGER PRIMARY KEY,
  name TEXT
)`;

// transaction (requires .commit() to execute)
const populate = transaction();
for (let i = 0; i < 2; i++)
  populate`INSERT INTO names (name) VALUES (${'Name' + i})`;
await populate.commit();

// get single row (works with LIMIT 1 too, of course)
await get`SELECT name FROM names`;
// { name: 'Name0' }

// get all results, if any, or an empty array
await all`SELECT * FROM names`;
// [ { id: 1, name: 'Name0' }, { id: 2, name: 'Name1' } ]

// use the IN clause through arrays
const list = ['Name 0', 'Name 1'];
await all`SELECT * FROM names WHERE name IN (${list})`;
```


### Differently from dblite

  * requires **SQLite 3.33** or higher (it uses the `-json` output mode)
  * each query is a spawn call except for transactions, grouped as single spawned query
  * performance still similar to sqlite3 native module
  * `:memory:` database is based on an always same, yet runtime-once created temporary file, and it requires NodeJS 16+


## API: SQLiteTagSpawned(fileName[, options])

While the `fileName` is just a string pointing at the db file or the string `:memory:`, optional options can contain the following fields:

  * `readonly` to run queries in read only mode
  * `bin` to specify a different `sqlite3` executable
  * `timeout` to drop the spawned process after *N* milliseconds
  * `persistent` to open a DB in persistent mode (kept alive spawned command)
  * `exec` to specify a different way to execute spawned process and results, mostly used for internal purpose

---
_Source: https://npm.io/package/sqlite-tag-spawned · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
