diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index cfeccacc..5533a4fd 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -7,8 +7,8 @@ export type Extensions = (Extension | NodeExtension | MarkExtension)[] export type Attribute = { default: any, rendered?: boolean, - renderHTML?: ((attributes: { [key: string]: any }) => any) | null, - parseHTML?: ((element: HTMLElement) => { [key: string]: any }) | null, + renderHTML?: ((attributes: { [key: string]: any }) => { [key: string]: any } | null) | null, + parseHTML?: ((element: HTMLElement) => { [key: string]: any } | null) | null, } export type Attributes = { diff --git a/packages/core/src/utils/getRenderedAttributes.ts b/packages/core/src/utils/getRenderedAttributes.ts index a98138c5..da92012d 100644 --- a/packages/core/src/utils/getRenderedAttributes.ts +++ b/packages/core/src/utils/getRenderedAttributes.ts @@ -12,7 +12,7 @@ export default function getRenderedAttributes(nodeOrMark: Node | Mark, extension } } - return item.attribute.renderHTML(nodeOrMark.attrs) + return item.attribute.renderHTML(nodeOrMark.attrs) || {} }) .reduce((attributes, attribute) => { return mergeAttributes(attributes, attribute) diff --git a/packages/core/src/utils/injectExtensionAttributesToParseRule.ts b/packages/core/src/utils/injectExtensionAttributesToParseRule.ts index 14c7595d..0cd42dd6 100644 --- a/packages/core/src/utils/injectExtensionAttributesToParseRule.ts +++ b/packages/core/src/utils/injectExtensionAttributesToParseRule.ts @@ -27,7 +27,7 @@ export default function injectExtensionAttributesToParseRule(parseRule: ParseRul .filter(item => item.attribute.rendered) .reduce((items, item) => { const attributes = item.attribute.parseHTML - ? item.attribute.parseHTML(node as HTMLElement) + ? item.attribute.parseHTML(node as HTMLElement) || {} : { [item.name]: (node as HTMLElement).getAttribute(item.name), }