Registry / database / sqm
library0.7.1jsnpmunverified

A lightweight and flexible query maker library for building raw SQL queries in JavaScript and TypeScript. Current stable version 0.7.1 (frequent releases). Focuses on type-safe query construction with minimal abstraction, supporting SELECT, INSERT, UPDATE, DELETE, and Postgres features like RETURNING. Requires zod v4+, class-validator, and class-transformer as peer dependencies. Differentiator: offers raw SQL control with optional runtime validation via Zod schemas, and full TypeScript support.

npm install sqm
INSTALL
IMPORT
SIG · SQM
S
sqm
databasejavascriptv0.7.1
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 'sqm'
const QueryBuilder = require('sqm')
Package is ESM-only (engine >=21), no CommonJS support.
select
import { select } from 'sqm'
import sqm from 'sqm'
Named export; default import does not exist.
QueryBuilder
import type { QueryBuilder } from 'sqm'
Use type import for pure type usage, avoids runtime overhead.

Builds a simple SELECT query with parameters, showcases the fluent API and automatic parameterization.

import { select } from 'sqm'; const query = select('id', 'name') .from('users') .where('age', '>=', 21) .build(); console.log(query.text); // SELECT id, name FROM users WHERE age >= $1 console.log(query.values); // [21]
Debug
Known issues
breakingNode.js >=21 required; ESM-only package will throw ERR_REQUIRE_ESM if using require().
fix
Use import, set "type": "module" in package.json, or use dynamic import().
affects: >=0.7.0
deprecatedIn v0.7.0, the 'join' method signature changed. Old: .join('JOIN table ON cond') -> new: .join('table', 'cond')
fix
Update join calls to use two arguments: table and condition.
affects: >=0.7.0
gotchaAll query methods return a new instance; chaining is required. Calling .build() consumes the builder.
fix
Always chain calls and use the result of .build() only once.
affects: >=0.5.0
gotchaClass-validator and class-transformer are required peer dependencies; missing them will cause runtime errors when using entity validation.
fix
Install class-validator and class-transformer alongside sqm.
affects: >=0.6.0
deprecatedESM-only: no CommonJS support. Using require() will fail with 'ERR_REQUIRE_ESM'.
fix
Convert project to ESM or use dynamic import().
affects: >=0.7.0
Errors
Common errors & fixes
Error [ERR_REQUIRE_ESM]: require() of ES Module /path/to/node_modules/sqm/index.js from /app/index.js not supported.
Package is ESM-only and does not provide a CommonJS build.
fix
Use import instead of require, or set "type": "module" in package.json.
Module not found: Can't resolve 'class-validator'
Missing peer dependency class-validator.
fix
Run: npm install class-validator class-transformer
TypeError: query.build is not a function
Attempted to reuse a builder after calling .build(). Builders are consumed after build.
fix
Assign the result of .build() to a variable and use that; do not chain further after .build().
ReferenceError: exports is not defined in ES module scope
Using CommonJS syntax (module.exports) in an ESM context.
fix
Switch to ES module syntax (export, import).
Upgrade
Version history
0.7.1latest on npm
Audit
Dependencies
zodrequiredRequired for runtime validation of query parameters and schemas
class-validatorrequiredUsed for class-based validation decorators
class-transformerrequiredUsed for transforming class instances
Agent activity
15 hits · last 30 days
node
12
Meta
2
OpenAI (training)
1
Resources
packagesqm
sqm — npm install sqm · libregistry