drizzle-team/drizzle-orm

[BUG]:

Open

#1826 opened on Jan 23, 2024

View on GitHub
 (8 comments) (9 reactions) (1 assignee)TypeScript (16,414 stars) (357 forks)batch import
good first issuehas-primprovementpriorityqb/crud

Description

What version of drizzle-orm are you using?

0.29.3

What version of drizzle-kit are you using?

n/a

Describe the Bug

Conditional helper functions such as isNull, isNotNull, exists, notExists cannot be used within a query select, without returning an unknown type.

const results = await db
    .select({
      id: table.id,
      has_title_orm: isNotNull(table.name),
      has_title_sql: sql<boolean>`${table.name} IS NOT NULL`,
    })
    .from(table);

  results[0].has_title_orm; // unknown type
  results[0].has_title_sql; // boolean type

Expected behavior

The sql wrapper used should be able to be typed for these boolean returns. I can imagine that there's a circumstance where you might not want to, given the fact these query helpers can be used in other places?

Environment & setup

Example Stackblitz: https://stackblitz.com/edit/typescript-5bbctn?file=index.ts

Contributor guide