Skip to content

Commit 8e90bcd

Browse files
committed
fix(notion): make plugin work properly even with unsupported proprty types
1 parent a24344d commit 8e90bcd

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

packages/@contentlayer/source-notion/src/schema/provideDatabaseFieldSchema.ts

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import type { OT } from "@contentlayer/utils/effect";
22
import { pipe, T } from "@contentlayer/utils/effect";
33

4-
import { getFieldFunctions } from "../mapping";
5-
import type { DatabaseProperties, FieldDef } from "../types";
6-
import type { ProvideDatabaseSchemaArgs } from "./provideDatabaseSchema";
7-
import type { DatabaseTypeDef } from "./types";
8-
import { findDatabaseFieldDef } from "./utils/findDatabaseFieldDef";
9-
import { normalizeKey } from "./utils/normalizeKey";
4+
import { getFieldFunctions } from "../mapping/index.js";
5+
import type { DatabaseProperties, FieldDef } from "../types.js";
6+
import type { ProvideDatabaseSchemaArgs } from "./provideDatabaseSchema.js";
7+
import type { DatabaseTypeDef } from "./types.js";
8+
import { findDatabaseFieldDef } from "./utils/findDatabaseFieldDef.js";
9+
import { normalizeKey } from "./utils/normalizeKey.js";
1010

1111
export type ProvideDatabaseFieldSchemaArgs = {
1212
property: DatabaseProperties
@@ -15,11 +15,13 @@ export type ProvideDatabaseFieldSchemaArgs = {
1515

1616
export const provideDatabaseFieldSchema =
1717
({ property, databaseTypeDef, ...rest }: ProvideDatabaseFieldSchemaArgs):
18-
T.Effect<OT.HasTracer, unknown, FieldDef> => pipe(
18+
T.Effect<OT.HasTracer, unknown, FieldDef | undefined> => pipe(
1919
T.succeed(findDatabaseFieldDef({ databaseTypeDef, property })),
2020
T.chain((databaseFieldTypeDef) => pipe(
2121
T.succeed(getFieldFunctions(property.type)?.getFieldDef({ property, databaseFieldTypeDef, databaseTypeDef, ...rest })),
2222
T.map((def) => {
23+
if (!def) return; // TODO : Find a more beautiful way using ts-effects
24+
2325
const name = normalizeKey(databaseFieldTypeDef?.key ?? property.name);
2426

2527
return {

packages/@contentlayer/source-notion/src/schema/provideDatabaseSchema.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import type * as core from '@contentlayer/core'
2+
import type { FieldDef } from '@contentlayer/core';
23
import type { OT } from "@contentlayer/utils/effect";
34
import { pipe, T } from "@contentlayer/utils/effect";
45

5-
import { provideDatabaseFieldSchema } from './provideDatabaseFieldSchema';
6-
import type { ProvideSchemaArgs } from "./provideSchema";
7-
import type { DatabaseTypeDef } from "./types";
6+
import { provideDatabaseFieldSchema } from './provideDatabaseFieldSchema.js';
7+
import type { ProvideSchemaArgs } from "./provideSchema.js";
8+
import type { DatabaseTypeDef } from "./types.js";
89

910
export type ProvideDatabaseSchemaArgs = {
1011
databaseTypeDef: DatabaseTypeDef
@@ -23,7 +24,7 @@ export const provideDatabaseSchema =
2324
name: databaseTypeDef.name,
2425
description: databaseTypeDef.description,
2526
isSingleton: false,
26-
fieldDefs: [...def],
27+
fieldDefs: [...def].filter(def => !!def) as FieldDef[], // TODO : Find a more beautiful way
2728
computedFields: [],
2829
extensions: {}
2930
}))

0 commit comments

Comments
 (0)