diff options
| author | Mohamed Bassem <me@mbassem.com> | 2026-02-08 15:53:14 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-08 15:53:14 +0000 |
| commit | b05a7531b76d580fc2378d3fed12f57e5f4b35b1 (patch) | |
| tree | c80d578507321ebe43f540649daba2bdec47f939 /packages/trpc | |
| parent | 960ca9b67915408f26b825886f2b6c6481a658dc (diff) | |
| download | karakeep-b05a7531b76d580fc2378d3fed12f57e5f4b35b1.tar.zst | |
feat: add source filter to query language (#2465)
* feat: add source filter to query language
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* autocomplete source
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'packages/trpc')
| -rw-r--r-- | packages/trpc/lib/search.ts | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/trpc/lib/search.ts b/packages/trpc/lib/search.ts index 88f10f22..51e51d1c 100644 --- a/packages/trpc/lib/search.ts +++ b/packages/trpc/lib/search.ts @@ -373,6 +373,22 @@ async function getIds( ), ); } + case "source": { + return db + .select({ id: bookmarks.id }) + .from(bookmarks) + .where( + and( + eq(bookmarks.userId, userId), + matcher.inverse + ? or( + ne(bookmarks.source, matcher.source), + isNull(bookmarks.source), + ) + : eq(bookmarks.source, matcher.source), + ), + ); + } case "and": { const vals = await Promise.all( matcher.matchers.map((m) => getIds(db, userId, m)), |
