Skip to content

Commit

Permalink
feat: improves generated types by removing unnecessary optional prope…
Browse files Browse the repository at this point in the history
…rties (#784)
  • Loading branch information
jmikrut committed Jul 20, 2022
1 parent aa322b2 commit 6f748f1
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/bin/generateTypes.ts
Expand Up @@ -10,6 +10,12 @@ import loadConfig from '../config/load';
import { SanitizedGlobalConfig } from '../globals/config/types';
import deepCopyObject from '../utilities/deepCopyObject';

const nonOptionalFieldTypes = ['group', 'array', 'blocks'];

const propertyIsOptional = (field: Field) => {
return fieldAffectsData(field) && (field.required === true || nonOptionalFieldTypes.includes(field.type));
};

function getCollectionIDType(collections: SanitizedCollectionConfig[], slug: string): 'string' | 'number' {
const matchedCollection = collections.find((collection) => collection.slug === slug);
const customIdField = matchedCollection.fields.find((field) => 'name' in field && field.name === 'id');
Expand Down Expand Up @@ -320,7 +326,7 @@ function generateFieldTypes(config: SanitizedConfig, fields: Field[]): {
),
required: [
...fields
.filter((field) => fieldAffectsData(field) && field.required === true)
.filter(propertyIsOptional)
.map((field) => (fieldAffectsData(field) ? field.name : '')),
...requiredTopLevelProps,
],
Expand Down

0 comments on commit 6f748f1

Please sign in to comment.