porsager / postgres

Postgres.js - The Fastest full featured PostgreSQL client for Node.js, Deno, Bun and CloudFlare

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Incorrect type definitions causing confusion when trying to catch PostgresError

michalkvasnicak opened this issue · comments

I noticed that when I want to catch an error and identify it using instanceof I got an error TypeError: Right-hand side of 'instanceof' is not an object. Which was caused by following code:

import { PostgresError } from 'postgres';

try {
  // await query
} catch (e) {
  if (e instanceof PostgresError) {
    // do something
  }
}

To fix that I had to use default import:

import Postgres from 'postgres';

try {
  // await query
} catch (e) {
  if (e instanceof Postgres.PostgresError) {
    // do something
  }
}

This is confusing because typescript was not able to catch the failing example as something wrong and I was able to find this error only in runtime.

There is no PostgresError named export so the first sample doesn't make sense and I don't know typescript so feel free to do a PR that fixes the ts issue.