Improve error handling for polymorphic field data with missing type value
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Bug
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- typescript
- Domínio
- data
Direção de pesquisa
Comece em packages/@contentlayer/core/src/generation/generate-dotpkg.ts, especialmente em idToFileName e no fluxo ao redor de makeDataExportFile. Reproduza o exemplo TypeScript de lista aninhada polimórfica, rastreie como o valor de tipo ausente chega à geração e verifique se o caso produz um erro tratado útil em vez do TypeError undefined.replace relatado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- TypeScript
- Estrelas
- 3.5k
- Forks
- 192
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de contentlayerdev/contentlayer
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
contentlayerdev/contentlayer#506 · 84 comentários · 47 reações ·
-
Poor/broken monorepo DX: can't specify .contentlayer/ output path, no docs for custom config path Abertahelp wanted meta: never-stale needs-research
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
contentlayerdev/contentlayer#464 · 4 comentários · 9 reações ·
-
State of the project Abertameta: never-stale
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 10/100
contentlayerdev/contentlayer#429 · 49 comentários · 83 reações ·
-
meta: never-stale topic: markdown/mdx
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 42/100
contentlayerdev/contentlayer#421 · 4 reações ·
-
meta: never-stale needs-research topic: schema
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
contentlayerdev/contentlayer#420 ·
Todas as issues de contentlayerdev/contentlayer
Issues semelhantes
-
bug(cli): hapi doctor inline-media prints a fabricated B:\ helper-script path in packaged installs Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Crush Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
catppuccin/catppuccin#3125 ·
-
Add a SECURITY.md Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
ElementsProject/cln-application#167 · 1 comentário · 1 reação ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Quantco/pnpm-licenses#17 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100