effect-qb
v0.24.1
Published
`effect-qb` is the typed SQL querybuilder package in this workspace.
Readme
effect-qb
effect-qb is the typed SQL querybuilder package in this workspace.
Install
bun add effect-qb effectRequires stable Effect ^4.0.0. Install from the default npm channel;
the old beta and RC artifacts are superseded.
Entry points
effect-qbeffect-qb/postgreseffect-qb/mysqleffect-qb/sqliteeffect-qb/postgres/metadata
effect-qb/postgres/metadata exposes normalized table and enum metadata helpers used by effectdb.
Use the root modules from effect-qb for portable query plans that should render through the built-in SQL renderers.
Row decode diagnostics
Use Executor.formatRowDecodeError(error) when logging a RowDecodeError.
It reports dialect, failure stage, and projection path, omitting values, SQL,
causes, and custom schema messages. Projection identifiers are not redacted.
This formatter is available from the root and all dialect Executor modules.
For local debugging, Executor.make({ reportInput: true }) on a dialect
executor enables Effect Schema's rejected-input reporting. To display raw rows,
query parameters, and detailed schema errors, explicitly call
Executor.formatRowDecodeError(error, { reportInput: true }).
Do not send this verbose output to shared logs.
The original error still retains raw, normalized, query, and cause for
compatibility. Logging the error object directly is not safe, even when
schema input reporting is disabled.
Runtime bundles
Published JavaScript preserves ESM module boundaries and has no import-time
registration side effects. Bundlers such as esbuild can remove unused exports:
column-only imports omit renderers, renderer-only imports omit error catalogs,
and PostgreSQL runtime imports omit schema parsing. Explicit schema parsing
still includes pgsql-ast-parser; MySQL executors retain the catalog required
by their normalized error contract. No runtime-only entrypoint is needed.
