contentlayerdev / contentlayerdev/contentlayer
Enum values are not validated
- Lingua principale
- TypeScript
- Stelle
- 3.5k
- Fork
- 192
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
I've seen some examples on issues of people using a field of type `enum` to specify the page locale.
```
---
locale: 'en'
---
(...)
```
```ts
defineDocumentType(() => ({
[...],
fields: {
locale: {
type: 'enum',
options: ['en', 'es', 'de'],
required: true
}
}
}));
```
I've just seen on `contentlayer@0.3.0` that if you have a file with an invalid enum value (not in the `options` array), then the build will complete successfully.
```
---
locale: 'not in the options array'
---
(...)
```
```sh
$ yarn contentlayer build
yarn run v1.22.19
$ /(...)/node_modules/.bin/contentlayer build
Generated 2 documents in .contentlayer
Done in 1.32s.
```
I understand that even if it does not validate values, the enum type field is really useful once it automatically generates TS types, but given that we can validate fields with `required`, shouldn't we also be able to validate the if the field value matches what we defined on the schema? (In the case of enum fields)
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia riproducendo il problema con un campo enum il cui valore di frontmatter è assente dal relativo array options, quindi traccia i punti di ingresso della build di Contentlayer e della convalida dello schema. Il lavoro è completato quando la build rifiuta il valore non valido, mentre i valori enum validi continuano a generare documenti e tipi TypeScript.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100