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

Folders and files

NameName
Last commit message
Last commit date
Jul 13, 2024
Apr 9, 2023
Oct 26, 2023
Oct 26, 2023
Apr 9, 2023
Apr 9, 2023
Apr 9, 2023
Mar 1, 2024
Apr 9, 2023
Apr 9, 2023
Apr 8, 2023
Mar 1, 2024
Mar 1, 2024
Apr 10, 2025
Apr 10, 2025
Mar 1, 2024
Apr 9, 2023

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