Skip to content

Commit 3e294cd

Browse files
committed
fixed tests
1 parent 717f76c commit 3e294cd

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

packages/@contentlayer/source-files/src/schema/provideSchema.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export const makeCoreSchema = ({
5656

5757
const computedFields = Object.entries(documentDef.computedFields ?? {}).map<core.ComputedField>(
5858
([name, computedField]) => ({
59-
...utils.pick(computedField, ['description', 'type']),
59+
...utils.pick(computedField, ['description', 'type'], false),
6060
name,
6161
// NOTE we need to flip the variance here (casting a core.Document to a LocalDocument)
6262
resolve: computedField.resolve as core.ComputedFieldResolver,
@@ -65,7 +65,7 @@ export const makeCoreSchema = ({
6565

6666
const coreDocumentDef: core.DocumentTypeDef = {
6767
_tag: 'DocumentTypeDef',
68-
...utils.pick(documentDef, ['name', 'description']),
68+
...utils.pick(documentDef, ['name', 'description'], false),
6969
isSingleton: documentDef.isSingleton ?? false,
7070
fieldDefs,
7171
computedFields,
@@ -80,7 +80,7 @@ export const makeCoreSchema = ({
8080

8181
const coreNestedTypeDef: core.NestedTypeDef = {
8282
_tag: 'NestedTypeDef',
83-
...utils.pick(nestedDef, ['description']),
83+
...utils.pick(nestedDef, ['description'], false),
8484
name: nestedDef.name,
8585
fieldDefs: getFieldDefEntries(nestedDef.fields ?? []).map((_) =>
8686
fieldDefEntryToCoreFieldDef(_, options.fieldOptions),
@@ -135,7 +135,7 @@ const fieldDefEntryToCoreFieldDef = (
135135
fieldOptions: core.FieldOptions,
136136
): core.FieldDef => {
137137
const baseFields: core.FieldDefBase = {
138-
...utils.pick(fieldDef, ['type', 'default', 'description']),
138+
...utils.pick(fieldDef, ['type', 'default', 'description'], false),
139139
name,
140140
isRequired: fieldDef.required ?? false,
141141
isSystemField: false,
@@ -231,7 +231,7 @@ const fieldDefEntryToCoreFieldDef = (
231231
case 'string':
232232
return {
233233
// needs to pick again since fieldDef.type has been
234-
...utils.pick(fieldDef, ['type', 'default', 'description']),
234+
...utils.pick(fieldDef, ['type', 'default', 'description'], false),
235235
isRequired: fieldDef.required ?? false,
236236
name,
237237
isSystemField: false,
@@ -254,7 +254,7 @@ const fieldListItemsToCoreFieldListDefItems = (
254254
case 'markdown':
255255
case 'mdx':
256256
case 'image':
257-
return utils.pick(listFieldDefItem, ['type'])
257+
return utils.pick(listFieldDefItem, ['type'], false)
258258
case 'enum':
259259
return {
260260
type: 'enum',

packages/@contentlayer/utils/src/object/pick.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,18 @@ type OrUndefined<T> = { [K in keyof T]: T[K] | undefined }
33
type PickRequired<T> = { [K in keyof T as undefined extends T[K] ? never : K]: T[K] }
44
type ConvertPick<T> = ConvertUndefined<T> & PickRequired<T>
55

6-
export const pick = <Obj, Keys extends keyof Obj>(obj: Obj, keys: Keys[]): ConvertPick<{ [K in Keys]: Obj[K] }> => {
6+
export const pick = <Obj, Keys extends keyof Obj>(
7+
obj: Obj,
8+
keys: Keys[],
9+
/** Whether to filter out explicit `undefined` values */
10+
filterUndefined = true,
11+
): ConvertPick<{ [K in Keys]: Obj[K] }> => {
712
return keys.reduce((acc, key) => {
813
const val = obj[key]
9-
if (val !== undefined) {
10-
acc[key] = val
11-
}
14+
if (val === undefined && filterUndefined) return acc
15+
16+
acc[key] = val
17+
1218
return acc
1319
}, {} as any)
1420
}

packages/integration-tests/src/image-field/index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ test('mdx-image-field ', async () => {
4040

4141
expect(allPosts[0].coverImage).toMatchInlineSnapshot(`
4242
{
43-
"blurhashDataUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAACXBIWXMAAAsTAAALEwEAmpwYAAAArklEQVR4nF2OSw6CQBBEuZKGwfl4Io1BNqAMwwV1YTRGl4gLI3+8QJludeOiU13J6+ryMlPjMxWsqVjZzytY2cEjY1UDpwfk5sVKnoFggJfphi8iccViskMkLt/EGqkY4RGd6wGJKrEOTohlgdyMsJoATmgR+mes/ANS80AojlhO93Cm/QENNuqOeHbDVj6RyBKxKpCZ5vOCfjndwekelEbKO5fsqUPLrf+Hkgl4A4q9pmrNTiK/AAAAAElFTkSuQmCC",
43+
"blurhashDataUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAACVBMVEV8Oe1uNNJ3OOKPJhaEAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAAHUlEQVR4nGNgwAIYGRkhDCZGJqgAE0SIiQmEsAAAAyMAF5ferjEAAAAASUVORK5CYII=",
4444
"filePath": "posts/image-a.png",
4545
"format": "png",
4646
"height": 480,

0 commit comments

Comments
 (0)