From 9acbcf11bc356901facff7bb1fe0d9d17b0b2821 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Wed, 9 Sep 2020 21:18:04 +0200 Subject: [PATCH] fix getSchema --- docs/src/demos/Api/Schema/index.vue | 6 +++--- packages/core/src/utils/getSchema.ts | 13 +++++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/docs/src/demos/Api/Schema/index.vue b/docs/src/demos/Api/Schema/index.vue index c7558366..9003dd36 100644 --- a/docs/src/demos/Api/Schema/index.vue +++ b/docs/src/demos/Api/Schema/index.vue @@ -31,9 +31,9 @@ export default { computed: { html() { return generateHtml(this.doc, [ - new Document(), - new Paragraph(), - new Text(), + Document(), + Paragraph(), + Text(), ]) } } diff --git a/packages/core/src/utils/getSchema.ts b/packages/core/src/utils/getSchema.ts index 36c135dc..58b455d2 100644 --- a/packages/core/src/utils/getSchema.ts +++ b/packages/core/src/utils/getSchema.ts @@ -1,10 +1,23 @@ +import deepmerge from 'deepmerge' import { Schema } from 'prosemirror-model' import { Extensions } from '../types' import getTopNodeFromExtensions from './getTopNodeFromExtensions' import getNodesFromExtensions from './getNodesFromExtensions' import getMarksFromExtensions from './getMarksFromExtensions' +import resolveExtensionConfig from './resolveExtensionConfig' export default function getSchema(extensions: Extensions): Schema { + extensions.forEach(extension => { + resolveExtensionConfig(extension, 'name') + resolveExtensionConfig(extension, 'defaults') + resolveExtensionConfig(extension, 'topNode') + + const name = extension.config.name + const options = deepmerge(extension.config.defaults, extension.options) + + resolveExtensionConfig(extension, 'schema', { name, options }) + }) + return new Schema({ topNode: getTopNodeFromExtensions(extensions), nodes: getNodesFromExtensions(extensions),