Skip to content

Adapters

The adapter layer isolates connection lifecycle, query execution, transactions, and health checks.

import { connectionDB } from 'jsorm';
import { pgAdapter } from 'jsorm-pg';
import { mysqlAdapter } from 'jsorm-mysql';
import { sqliteAdapter } from 'jsorm-sqlite';
const db = connectionDB({
databases: {
main: pgAdapter({
name: 'main',
connectionString: process.env.DATABASE_URL!,
}),
analytics: mysqlAdapter({
name: 'analytics',
host: process.env.DB_HOST!,
user: process.env.DB_USER!,
password: process.env.DB_PASSWORD!,
database: process.env.DB_NAME!,
}),
cache: sqliteAdapter({
name: 'cache',
file: ':memory:',
}),
},
default: 'main',
});

If your application already manages pools or transactions, inject your own adapter through the core contracts.

  1. Reuse adapters instead of recreating them per request.
  2. Scope multi-database operations with use() or with().
  3. Keep custom adapters aligned with the official adapter metadata and validation shape.