Add `$where()` method to `db.query`
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- typescript
調査の方向性
まず、db.query#findMany の where オプションの処理と、relationsFilterToSQL のエントリポイントを読みます。db.select() と db.update() が SQL インスタンスをどのように消費するかを追跡し、その既存の経路に沿って $where() の動作を定義します。db.query.user.$where() がドキュメントに記載された where の値を受け付け、互換性のある SQL インスタンスを返し、toSQL() を通じて示された SQL とパラメーターを生成できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
This idea was suggested by Discord user @josefchi.
Essentially, it accepts the same value that db.query#findMany's where option does. But instead of executing a query, it returns a SQL instance, which you can use with db.select() calls, db.update() calls, etc.
Internally, it would call relationsFilterToSQL. Its main purpose is to provide type safety and auto-completion.
const where = db.query.user.$where({
age: { gte: 18 },
})
// => [object SQL]
where.toSQL()
// => {
// sql: `"user"."age" >= ?`,
// params: [18],
// }
- 主要言語
- TypeScript
- スター
- 174
- フォーク
- 8
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
alloc/drizzle-plus のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
alloc/drizzle-plus#24 · リアクション 1 件 ·
-
JSON array slicingオープンhelp wanted
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
alloc/drizzle-plus#12 ·
-
help wanted
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
alloc/drizzle-plus#5 ·
-
enhancement good first issue help wanted
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
alloc/drizzle-plus#4 ·
alloc/drizzle-plus の issue をすべて見る
似ている issue
-
area:tui enhancement platform:macos
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
anthropics/claude-code#101490 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
netlify/netlify-mcp#75 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
atlassian-labs/compiled#1960 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
pnp/cli-microsoft365#7639 ·
メンテナーはふだん 2 日以内に返信
-
nextjs-tracking
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
cloudflare/vinext#3887 ·
メンテナーはふだん 1 日以内に返信