[ORM] CreateRelationField typing is missing when creating a delegated Model from a polymorphic Model
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- typescript
- 領域
- database
調査の方向性
Reproduce with the example schema: Main carrying @@delegate(type) and Sub extends Main, then inspect the generated typing for zenstack.sub.create and check where CreateRelationField should be applied to the inherited item and the Sub-only group. The generator that expands delegate/polymorphic models and their relations produces these types; compare what it emits for Sub against a non-delegated model with the same relations. Done means db.sub.create({ data: { item, group } }) exposes the usual connect/create relation fields with correct types. The payload names no file, so locating the type-generation code is part of the work.
索引モデルが issue の本文から書いたものです。
説明
Description and expected behavior
When wanting to create a new model with the create or createMany methods on a submodel of a delegated model (so Main has the @@delegate and Sub is a delegate of Main and you want to create a Sub entity) and this sub model has a relation the usual CreateRelationField typing is missing on all relation fields and only will be undefined.
Environment (please complete the following information):
- ZenStack version: 3.8.3
- Database type: PostgreSQL
- Node.js/Bun version: 1.3.14
- Package manager: Bun
Example schema
model Main with Base {
item Item @relation(fields: [itemId], references: [id], onDelete: Cascade)
itemId String
@@unique([permissionId, itemId])
@@delegate(type)
}
model Sub extends Main {
group Group @relation(fields: [groupId], references: [id], onDelete: Cascade)
groupId String
}
and then creating a Sub via zenstack.sub.create:
await db.sub.create({
data: {
item: // <-- this is undefined and untyped
group: // <-- aswell as relation lying directly on the Sub
},
})
usually there will be functions like connect, create, ...
- 主要言語
- TypeScript
- スター
- 2.9k
- フォーク
- 157
- 平均マージ
- 11時間 42分
- マージ済み PR(30日)
- 20
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
zenstackhq/zenstack のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
zenstackhq/zenstack#2873 ·
メンテナーはふだん 1 日以内に返信
-
runtime
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
zenstackhq/zenstack#2868 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
zenstackhq/zenstack#2694 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
zenstackhq/zenstack#2659 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
zenstackhq/zenstack#2542 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
zenstackhq/zenstack の issue をすべて見る
似ている issue
-
Tenant
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
MTES-MCT/Dossier-Facile-Frontend#2061 ·
メンテナーはふだん 1 日以内に返信
-
area:frontend
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
interledger/publisher-tools#905 ·
メンテナーはふだん 1 日以内に返信
-
Add: Cbeebies PL SDオープンapproved check:passed streams:add
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
iptv-org/iptv#54525 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
DB-plane provider_chat_options.* is accepted by config set but never merged into the loaded config対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
area:web
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
praetorianer777/GoTome#178 ·
メンテナーはふだん 1 日以内に返信