Registry / database / kysforge

kysforge

JSON →
library0.3.5jsnpmunverified

Programmatic database introspection and Kysely type codegen for PostgreSQL and SQLite. Version 0.3.5. Requires Node >=22 and supports postgres.js (via kysely-postgres-js) or node-postgres drivers. Unlike CLI-based alternatives, it provides a pure API with no env-var magic, returning typed Database interfaces with ColumnType, Generated, Selectable, Insertable, Updateable helpers. Auto-detects driver, supports schemas, views, enums, and column overrides.

npm install kysforge
INSTALL
IMPORT
SIG · KYSFORGE
K
kysforge
databasejavascriptv0.3.5
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.

pgCodegen
import { pgCodegen } from "kysforge/pg";
import { pgCodegen } from "kysforge";
Must import from 'kysforge/pg' subpath; default export not available.
liteCodegen
import { liteCodegen } from "kysforge/lite";
import { sqliteCodegen } from "kysforge/lite";
Function named liteCodegen, not sqliteCodegen. Import from 'kysforge/lite'.
PgCodegenResult
import type { PgCodegenResult } from "kysforge/pg";
import { PgCodegenResult } from "kysforge/pg";
Type import recommended; it's only a type.

Generates Kysely Database interface from PostgreSQL by introspecting schemas, tables, views, and enums, writing typed output files.

import { pgCodegen } from "kysforge/pg"; const result = await pgCodegen({ connection: { host: process.env.PGHOST ?? "localhost", port: Number(process.env.PGPORT) || 5432, database: process.env.PGDATABASE ?? "my_db", user: process.env.PGUSER ?? "dev", password: process.env.PGPASSWORD ?? "", }, driver: "pg", schemas: ["public"], output: { database: "./src/database.generated.ts", enums: "./src/enums.generated.ts", }, views: true, }); console.info(`Generated ${result.tables} table(s), ${result.enums} enum(s), ${result.views} view(s)`); for (const w of result.warnings) console.warn(w);
Debug
Known issues
gotchaAuto-detection of PostgreSQL driver installs both pg and postgres packages but fails silently if neither is installed.
fix
Install at least one driver explicitly (pg or postgres) or set driver option to avoid ambiguity.
affects: <=0.3.5
deprecatedNode 22-23 require --experimental-sqlite flag for SQLite codegen; this flag is no longer needed in Node 24+.
fix
Run your script with --experimental-sqlite on Node 22-23, or upgrade to Node 24+.
affects: >=0.1.0
breakingLibrary is pre-1.0; minor versions may introduce breaking changes including API shape changes.
fix
Pin version and review changelog before upgrading minor versions.
affects: >=0.0.0 <1.0.0
gotchaPostgreSQL connection string not supported; only object config for connection is accepted.
fix
Pass connection as an object: { host, port, database, user, password }.
affects: <=0.3.5
gotchaPeer dependency kysely-postgres-js must be installed alongside postgres.js driver, but may be forgotten.
fix
Run: npm install postgres kysely-postgres-js
affects: >=0.1.0
Errors
Common errors & fixes
Cannot find module 'pg' or its corresponding type declarations
Missing peer dependency for PostgreSQL codegen using 'pg' driver.
fix
Install pg: npm install pg
No such export 'sqliteCodegen' from 'kysforge/lite'
Attempting to import a function named 'sqliteCodegen' but the actual export is 'liteCodegen'.
fix
Use import { liteCodegen } from 'kysforge/lite';
TypeError: Cannot read properties of undefined (reading 'host')
Connection object passed to pgCodegen is missing required fields (host, database, user, password).
fix
Ensure connection object has host, database, user, password properties. Port defaults to 5432.
Error: The '--experimental-sqlite' flag is required to use node:sqlite on Node 22-23.
SQLite codegen requires Node.js experimental flag for versions before 24.
fix
Run script with: node --experimental-sqlite your-script.js
Upgrade
Version history
0.3.5latest on npm
Audit
Dependencies
kyselyrequiredPeer dependency: provides types and runtime for Kysely ORM.
pgoptionalOptional PostgreSQL driver (node-postgres) — install only if using PostgreSQL and choosing this driver.
postgresoptionalOptional PostgreSQL driver (postgres.js) — install only if using PostgreSQL and choosing this driver.
kysely-postgres-jsoptionalRequired peer when using postgres.js driver for PostgreSQL codegen.
Agent activity
10 hits · last 30 days
node
8
Resources
kysforge — npm install kysforge · libregistry