Registry / database / effect-qb

effect-qb

JSON →
library0.19.0jsnpmunverified

Typed SQL query builder for the Effect ecosystem (v0.19.0, active development). Designed to work with @effect/sql and @effect/experimental. Supports PostgreSQL, MySQL, SQLite via named entry points (effect-qb/postgres, effect-qb/mysql, effect-qb/sqlite). Distinct from other query builders by leveraging Effect's managed side-effects and typed errors. Requires Node >=22 or Bun >=1.3.5.

npm install effect-qb
INSTALL
IMPORT
SIG · EFFECT-QB
E
effect-qb
databasejavascriptv0.19.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

QueryBuilder
import { QueryBuilder } from 'effect-qb'
import QueryBuilder from 'effect-qb'
ESM-only; named export only, no default export.
postgres
import { postgres } from 'effect-qb/postgres'
import { postgres } from 'effect-qb'
Postgres-specific features are in the /postgres subpath.
sqlite
import { sqlite } from 'effect-qb/sqlite'
import { sqlite } from 'effect-qb'
SQLite-specific features are in the /sqlite subpath.

Shows constructing a typed SQL query using QueryBuilder and executing it via @effect/sql with Effect.

import { QueryBuilder } from 'effect-qb'; import { SqlClient } from '@effect/sql'; import { Effect } from 'effect'; const program = Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; const query = QueryBuilder.build(sql)` SELECT * FROM users WHERE id = ${'123'} `; const result = yield* sql(query); console.log(result); }); Effect.runSync(program);
Debug
Known issues
breakingBreaking change: v0.18.0 changed the query builder API — QueryBuilder.build now expects sql template tag.
fix
Update to use QueryBuilder.build(sql)`...` pattern.
affects: <0.18.0
breakingBreaking change: Node.js minimum version raised to 22 in v0.19.0.
fix
Upgrade Node.js to >=22.
affects: >=0.19.0
gotchaImport paths are case-sensitive and must match exactly: 'effect-qb/postgres' not 'effect-qb/POSTGRES'.
fix
Use lowercase import paths.
affects: >=0.0.0
gotchaQueryBuilder is a named export; there is no default export. CommonJS require will not work.
fix
Use import { QueryBuilder } from 'effect-qb'.
affects: >=0.0.0
deprecatedThe 'effect-qb/mysql' entry point is deprecated — use '@effect/sql-mysql' instead.
fix
Migrate to @effect/sql-mysql package.
affects: >=0.15.0
Errors
Common errors & fixes
Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'effect-qb/postgres'
Missing subpath export or incorrect package installation.
fix
Ensure effect-qb is installed and Node.js version >=22 (subpath exports require modern Node).
TypeError: (0 , effect_qb.QueryBuilder) is not a function
Using default import instead of named import.
fix
Use `import { QueryBuilder } from 'effect-qb'`.
Upgrade
Version history
0.19.0latest on npm
Audit
Dependencies
@effect/experimentalrequiredPeer dependency for experimental features
@effect/sqlrequiredPeer dependency for SQL execution
effectrequiredPeer dependency - core Effect library
Agent activity
7 hits · last 30 days
node
6
Resources
effect-qb — npm install effect-qb · libregistry