Registry / database / js-data-sql

js-data-sql

JSON →
library1.0.1jsnpmunverified

SQL adapter for JSData ORM supporting PostgreSQL, MySQL, MariaDB, SQLite3, Oracle, and MSSQL. Current stable version 1.0.1. Requires knex as a peer dependency plus a specific database driver (e.g., pg, sqlite3, mysql). Differentiates from other ORMs by integrating tightly with JSData's schema-based data store, offering a unified API across multiple SQL dialects. Release cadence is low; this is a mature, stable package.

npm install js-data-sql
INSTALL
IMPORT
SIG · JS-DATA-SQL
J
js-data-sql
databasejavascriptv1.0.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.

SqlAdapter
import { SqlAdapter } from 'js-data-sql'
const { SqlAdapter } = require('js-data-sql')
Package is ESM; use import instead of require. Named export only.
SqlAdapter (default)
import { SqlAdapter } from 'js-data-sql'
import SqlAdapter from 'js-data-sql'
There is no default export; always use named import.
SqlAdapter type
import { SqlAdapter } from 'js-data-sql'
TypeScript types are bundled; no need for separate install.

Quickstart showing SqlAdapter usage with in-memory SQLite, registering adapter, defining mapper, creating and querying records.

import { DataStore } from 'js-data'; import { SqlAdapter } from 'js-data-sql'; const store = new DataStore(); const adapter = new SqlAdapter({ knexOpts: { client: 'sqlite3', useNullAsDefault: true, connection: { filename: ':memory:' } } }); store.registerAdapter('sql', adapter, { default: true }); store.defineMapper('user', { table: 'users', fields: { name: { type: 'string' }, age: { type: 'number' } } }); async function main() { const user = await store.create('user', { name: 'John', age: 30 }); console.log(user); const users = await store.findAll('user'); console.log(users); } main().catch(console.error);
Debug
Known issues
breakingRequires js-data >=3.0.0; incompatible with js-data 2.x
fix
Upgrade js-data to version 3 or later, or use an older js-data-sql version.
affects: >=1.0.0
gotchaknex must be version >=0.13.0; older versions may cause runtime errors
fix
Install knex@>=0.13.0 alongside js-data-sql.
affects: >=1.0.0
deprecatedNo major updates since 2017; consider using more modern SQL ORMs for new projects
fix
If you need active maintenance, evaluate alternatives like TypeORM, Prisma, or Sequelize.
affects: all
gotchaRequires a corresponding database driver package; missing driver causes knex errors
fix
Install one of: pg, sqlite3, mysql, mysql2, mariasql, strong-oracle, oracle, mssql
affects: all
Errors
Common errors & fixes
Error: Cannot find module 'knex'
Missing knex peer dependency
fix
Run: npm install knex
Error: Knex: unable to determine database driver to use. Specify client or pass connection object
Missing or incorrect knexOpts.client configuration
fix
Set knexOpts.client to one of: 'pg', 'mysql', 'sqlite3', etc.
TypeError: js_data_1.DataStore is not a constructor
Using CommonJS require with an ESM-only package
fix
Use import instead of require: import { DataStore } from 'js-data';
Error: sqlite3 is not supported by knex without useNullAsDefault
SQLite3 requires useNullAsDefault: true in knex config
fix
Add useNullAsDefault: true to knexOpts when using sqlite3 client.
Upgrade
Version history
1.0.1latest on npm
Audit
Dependencies
js-datarequiredPeer dependency required for JSData ORM integration
knexrequiredPeer dependency required for SQL query building and execution
Agent activity
4 hits · last 30 days
node
4
Resources
js-data-sql — npm install js-data-sql · libregistry