Improve error handling for polymorphic field data with missing type value
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 25/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- typescript
- 領域
- data
調査の方向性
packages/@contentlayer/core/src/generation/generate-dotpkg.ts から始め、特に idToFileName とその周辺の makeDataExportFile フローを確認してください。TypeScript の多相なネストされたリストの例を再現し、欠落している型の値がどのように生成処理に到達するかを追跡し、そのケースで、報告されている undefined.replace TypeError ではなく、有用なハンドリング済みエラーが発生することを確認してください。
索引モデルが issue の本文から書いたものです。
説明
I encountered an error with following code trying to add polymorphic nested objects to a list.
export const Link = defineNestedType(() => ({
name: "Link",
description: "Link to an external resource",
fields: {
text: {
type: "string",
required: true,
},
url: {
type: "string",
required: true,
},
},
}));
export const LinkList = defineNestedType(() => ({
name: "LinkList",
description: "List of links to external resources",
fields: {
text: {
type: "string",
required: true,
},
links: {
type: "list",
required: true,
of: Link,
},
},
}));
export const NavbarLinks = defineDocumentType(() => ({
name: "NavbarLinks",
filePathPattern: "core/navbarLinks.json",
isSingleton: true,
fields: {
links: {
type: "list",
of: [Link, LinkList],
required: true,
},
},
}));
This produces following stack trace
TypeError: Cannot read properties of undefined (reading 'replace')
at idToFileName (file://.../node_modules/@contentlayer/core/src/generation/generate-dotpkg.ts:389:89)
at makeDataExportFile (file://.../node_modules/@contentlayer/core/src/generation/generate-dotpkg.ts:291:53)
at file://.../node_modules/@contentlayer/core/src/generation/generate-dotpkg.ts:153:18
at Array.map (<anonymous>)
at next (file://.../node_modules/@contentlayer/core/src/generation/generate-dotpkg.ts:152:44)
at Generator.next (<anonymous>)
at ApplyFrame.apply (file://.../node_modules/@effect-ts/system/_src/Effect/gen.ts:148:36)
at FiberContext.nextInstr (file://.../node_modules/@effect-ts/system/_src/Fiber/context.ts:357:28)
at FiberContext.evaluateNow (file://.../node_modules/@effect-ts/system/_src/Fiber/context.ts:940:36)
at file://.../node_modules/@effect-ts/system/_src/Fiber/context.ts:576:33
Fiber: #17 (started at: 2022-09-04T21:49:21.161Z) was supposed to continue to:
a future continuation at packages/@contentlayer/core/src/generation/generate-dotpkg.ts:216:13
Fiber: #17 (started at: 2022-09-04T21:49:21.161Z) Execution trace:
packages/@contentlayer/core/src/generation/generate-dotpkg.ts:144:22
packages/@contentlayer/core/src/generation/generate-dotpkg.ts:143:60
packages/@contentlayer/core/src/generation/generate-dotpkg.ts:125:10
packages/@contentlayer/core/src/generation/generate-dotpkg.ts:82:13
packages/@contentlayer/core/src/generation/generate-dotpkg.ts:78:16
- 主要言語
- TypeScript
- スター
- 3.5k
- フォーク
- 192
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
contentlayerdev/contentlayer のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 25/100
contentlayerdev/contentlayer#506 · コメント 84 件 · リアクション 47 件 ·
-
Poor/broken monorepo DX: can't specify .contentlayer/ output path, no docs for custom config path オープンhelp wanted meta: never-stale needs-research
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
contentlayerdev/contentlayer#464 · コメント 4 件 · リアクション 9 件 ·
-
State of the project オープンmeta: never-stale
難易度 5/5 1週間以上 初心者へのやさしさ 10/100
contentlayerdev/contentlayer#429 · コメント 49 件 · リアクション 83 件 ·
-
meta: never-stale topic: markdown/mdx
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
contentlayerdev/contentlayer#421 · リアクション 4 件 ·
-
meta: never-stale needs-research topic: schema
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
contentlayerdev/contentlayer#420 ·
contentlayerdev/contentlayer の issue をすべて見る
似ている issue
-
bug(cli): hapi doctor inline-media prints a fabricated B:\ helper-script path in packaged installs オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
Crush オープン
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
catppuccin/catppuccin#3125 ·
-
Add a SECURITY.md オープン
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
ElementsProject/cln-application#167 · コメント 1 件 · リアクション 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
Quantco/pnpm-licenses#17 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100