Skip to content

Kysely dialect for PostgreSQL using the Postgres.js client.

License

Notifications You must be signed in to change notification settings

kysely-org/kysely-postgres-js

Repository files navigation

kysely-postgres-js

Powered by TypeScript

Kysely dialect for PostgreSQL using the Postgres.js client library under the hood (version >= 3.4).

This dialect should not be confused with Kysely's built-in PostgreSQL dialect, which uses the pg client library instead.

Installation

NPM 7+

npm i kysely-postgres-js

NPM <7

npm i kysely-postgres-js kysely postgres

Yarn

yarn add kysely-postgres-js kysely postgres

PNPM

pnpm add kysely-postgres-js kysely postgres

Deno

This package uses/extends some Kysely types and classes, which are imported using its NPM package name -- not a relative file path or CDN url. It also uses [Postgres.js] which is imported using its NPM package name -- not a relative file path or CDN url.

To fix that, add an import_map.json file.

{
  "imports": {
    "kysely": "https://cdn.jsdelivr.net/npm/kysely@0.27.2/dist/esm/index.js",
    "postgres": "https://deno.land/x/postgresjs@v3.4.3/mod.js"
  }
}

Usage

import {type GeneratedAlways, Kysely} from 'kysely'
import {PostgresJSDialect} from 'kysely-postgres-js'
import postgres from 'postgres'

interface Database {
  person: {
    id: GeneratedAlways<number>
    first_name: string | null
    last_name: string | null
    age: number
  }
}

const db = new Kysely<Database>({
  dialect: new PostgresJSDialect({
    postgres: postgres({
      database: 'test',
      host: 'localhost',
      max: 10,
      port: 5434,
      user: 'admin',
    }),
  }),
})

License

MIT License, see LICENSE