Registry / database / will-sql

will-sql

JSON →
library1.0.27jsnpmunverified

A SQL query builder that normalizes parameter placeholders across different database dialects (MySQL, MSSQL, Oracle, PostgreSQL, SQLite, ODBC, Informix). It wraps the KnSQL class to use a unified '?' placeholder syntax while automatically adapting to each database's native parameter style. Version 1.0.27, requires Node >=20, ships TypeScript types. Key differentiator: it allows writing queries with a single placeholder format and then executes them against multiple database backends without rewriting. Dependencies on config and will-util modules for configuration.

npm install will-sql
INSTALL
IMPORT
SIG · WILL-SQL
W
will-sql
databasejavascriptv1.0.27
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.

KnSQL
import { KnSQL } from 'will-sql'
const KnSQL = require('will-sql').KnSQL
TypeScript/ESM import; also works with CommonJS destructuring
KnDBConnections
import { KnDBConnections } from 'will-sql'
import KnDBConnections from 'will-sql'
Named export, not default.
getDBConnector
import { getDBConnector } from 'will-sql'
const getDBConnector = require('will-sql').getDBConnector
Same as KnDBConnections.getDBConnector; both are available

Shows how to create a KnSQL query with named placeholders, set parameter values, obtain a DB connector, execute the query, and close the connection.

import { KnSQL, KnDBConnections } from 'will-sql'; import config from 'config'; async function main() { const knsql = new KnSQL(); knsql.append('SELECT * FROM users WHERE id = ?id AND status = ?status'); knsql.set('id', 123); knsql.set('status', 'active'); const db = KnDBConnections.getDBConnector('MYSQL'); try { const rows = await knsql.executeQuery(db); console.log('Result:', rows); } finally { db.close(); } } main().catch(console.error);
Debug
Known issues
breakingRequires Node >=20; older Node versions will not run.
fix
Upgrade Node.js to version 20 or later.
affects: >=1.0.0
deprecatedCertain DB drivers (mysql, odbc, oracledb, pg) may have been deprecated; check peer dependencies.
fix
Install the required database driver explicitly (e.g., npm install mysql for MySQL).
affects: >=1.0.0
gotchaPinned dependency on will-util; if will-util has breaking changes, will-sql may break.
fix
Keep will-util version in sync with will-sql requirements.
affects: >=1.0.0
gotchaCalling db.close() after every query is manual; forgetting leads to connection leaks.
fix
Always use try/finally or wrap in connection pool management.
affects: >=1.0.0
gotchaConfiguration must exist in 'config' module's default.json; missing config throws an error.
fix
Create config/default.json with an appropriate DB alias entry.
affects: >=1.0.0
Errors
Common errors & fixes
Error: Cannot find module 'will-util'
Missing required dependency will-util.
fix
Run: npm install will-util
Error: No configuration found for DB alias 'MYSQL'
Missing or incorrect entry in config/default.json.
fix
Add a configuration object with key 'MYSQL' (or your alias) to config/default.json.
TypeError: knsql.executeQuery is not a function
Importing KnSQL incorrectly (e.g., default import).
fix
Use named import: import { KnSQL } from 'will-sql'
Error: connect ECONNREFUSED 127.0.0.1:3306
Database server is not running or incorrect URL.
fix
Ensure the database is running and the connection URL in config/default.json is correct.
Upgrade
Version history
1.0.27latest on npm
Audit
Dependencies
will-utilrequiredRequired for DB connection configuration and utilities
configoptionalUsed to load database connection settings from config/default.json
Agent activity
33 hits · last 30 days
node
26
Meta
2
Amazon
1
OpenAI (training)
1
Resources
will-sql — npm install will-sql · libregistry