From e2aa2e4bbac3bdff6d1a3518c2e23e0fd9fa0e67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Fri, 23 Oct 2020 14:24:19 +0200 Subject: [PATCH] fix tests --- packages/core/src/MarkExtension.ts | 6 +++--- packages/core/src/NodeExtension.ts | 6 +++--- packages/core/src/utils/getSchema.ts | 32 ++++++++++++++++------------ 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/packages/core/src/MarkExtension.ts b/packages/core/src/MarkExtension.ts index 4982bb81..4627b681 100644 --- a/packages/core/src/MarkExtension.ts +++ b/packages/core/src/MarkExtension.ts @@ -39,7 +39,7 @@ export interface MarkExtensionSpec extends Overwrit /** * Render HTML */ - renderHTML?: ( + renderHTML?: (( this: { options: Options, }, @@ -47,7 +47,7 @@ export interface MarkExtensionSpec extends Overwrit mark: Mark, attributes: { [key: string]: any }, } - ) => DOMOutputSpec, + ) => DOMOutputSpec) | null, /** * Attributes @@ -122,7 +122,7 @@ const defaultMark: MarkExtension = { group: null, spanning: null, parseHTML: () => null, - renderHTML: () => '', + renderHTML: null, addAttributes: () => ({}), } diff --git a/packages/core/src/NodeExtension.ts b/packages/core/src/NodeExtension.ts index 195800ac..76dba816 100644 --- a/packages/core/src/NodeExtension.ts +++ b/packages/core/src/NodeExtension.ts @@ -74,7 +74,7 @@ export interface NodeExtensionSpec extends Overwrit /** * Render HTML */ - renderHTML?: ( + renderHTML?: (( this: { options: Options, }, @@ -82,7 +82,7 @@ export interface NodeExtensionSpec extends Overwrit node: Node, attributes: { [key: string]: any }, } - ) => DOMOutputSpec, + ) => DOMOutputSpec) | null, /** * Add Attributes @@ -164,7 +164,7 @@ const defaultNode: NodeExtension = { defining: null, isolating: null, parseHTML: () => null, - renderHTML: () => '', + renderHTML: null, addAttributes: () => ({}), } diff --git a/packages/core/src/utils/getSchema.ts b/packages/core/src/utils/getSchema.ts index 8e8bac1a..e14f23e9 100644 --- a/packages/core/src/utils/getSchema.ts +++ b/packages/core/src/utils/getSchema.ts @@ -38,16 +38,18 @@ export default function getSchema(extensions: Extensions): Schema { code: extension.code, defining: extension.defining, isolating: extension.isolating, - parseDOM: extension.parseHTML.bind(context)(), - toDOM: node => { - return extension.renderHTML.bind(context)({ - node, - attributes: getRenderedAttributes(node, attributes), - }) - }, attrs: Object.fromEntries(attributes.map(attribute => { return [attribute.name, { default: attribute?.attribute?.default }] })), + parseDOM: extension.parseHTML.bind(context)(), + ...(typeof extension.renderHTML === 'function') && { + toDOM: node => { + return (extension.renderHTML as Function).bind(context)({ + node, + attributes: getRenderedAttributes(node, attributes), + }) + }, + }, }) return [extension.name, schema] @@ -65,16 +67,18 @@ export default function getSchema(extensions: Extensions): Schema { excludes: extension.excludes, group: extension.group, spanning: extension.spanning, - parseDOM: extension.parseHTML.bind(context)(), - toDOM: mark => { - return extension.renderHTML.bind(context)({ - mark, - attributes: getRenderedAttributes(mark, attributes), - }) - }, attrs: Object.fromEntries(attributes.map(attribute => { return [attribute.name, { default: attribute?.attribute?.default }] })), + parseDOM: extension.parseHTML.bind(context)(), + ...(typeof extension.renderHTML === 'function') && { + toDOM: mark => { + return (extension.renderHTML as Function).bind(context)({ + mark, + attributes: getRenderedAttributes(mark, attributes), + }) + }, + }, }) return [extension.name, schema]