diff --git a/packages/core/index.ts b/packages/core/index.ts index 7571b28c..7c003189 100644 --- a/packages/core/index.ts +++ b/packages/core/index.ts @@ -11,4 +11,7 @@ export { default as markInputRule } from './src/inputRules/markInputRule' export { default as markPasteRule } from './src/pasteRules/markPasteRule' export { default as getSchema } from './src/utils/getSchema' -export { default as generateHtml } from './src/utils/generateHtml' \ No newline at end of file +export { default as generateHtml } from './src/utils/generateHtml' +export { default as getTopNodeFromExtensions } from './src/utils/getTopNodeFromExtensions' +export { default as getNodesFromExtensions } from './src/utils/getNodesFromExtensions' +export { default as getMarksFromExtensions } from './src/utils/getMarksFromExtensions' diff --git a/packages/core/src/utils/getMarksFromExtensions.ts b/packages/core/src/utils/getMarksFromExtensions.ts new file mode 100644 index 00000000..fca51100 --- /dev/null +++ b/packages/core/src/utils/getMarksFromExtensions.ts @@ -0,0 +1,10 @@ +import Mark from '../Mark' +import collect from 'collect.js' +import { Extensions } from '../types' + +export default function getMarksFromExtensions(extensions: Extensions): any { + return collect(extensions) + .where('extensionType', 'mark') + .mapWithKeys((extension: Mark) => [extension.name, extension.schema()]) + .all() +} \ No newline at end of file diff --git a/packages/core/src/utils/getNodesFromExtensions.ts b/packages/core/src/utils/getNodesFromExtensions.ts new file mode 100644 index 00000000..94604110 --- /dev/null +++ b/packages/core/src/utils/getNodesFromExtensions.ts @@ -0,0 +1,10 @@ +import Node from '../Node' +import collect from 'collect.js' +import { Extensions } from '../types' + +export default function getNodesFromExtensions(extensions: Extensions): any { + return collect(extensions) + .where('extensionType', 'node') + .mapWithKeys((extension: Node) => [extension.name, extension.schema()]) + .all() +} \ No newline at end of file diff --git a/packages/core/src/utils/getSchema.ts b/packages/core/src/utils/getSchema.ts index 9cd91aab..36c135dc 100644 --- a/packages/core/src/utils/getSchema.ts +++ b/packages/core/src/utils/getSchema.ts @@ -1,9 +1,8 @@ -import Extension from '../Extension' -import Node from '../Node' -import Mark from '../Mark' import { Schema } from 'prosemirror-model' -import collect from 'collect.js' import { Extensions } from '../types' +import getTopNodeFromExtensions from './getTopNodeFromExtensions' +import getNodesFromExtensions from './getNodesFromExtensions' +import getMarksFromExtensions from './getMarksFromExtensions' export default function getSchema(extensions: Extensions): Schema { return new Schema({ @@ -12,25 +11,3 @@ export default function getSchema(extensions: Extensions): Schema { marks: getMarksFromExtensions(extensions), }) } - -function getNodesFromExtensions(extensions: (Extension | Node | Mark)[]): any { - return collect(extensions) - .where('extensionType', 'node') - .mapWithKeys((extension: Node) => [extension.name, extension.schema()]) - .all() -} - -function getTopNodeFromExtensions(extensions: (Extension | Node | Mark)[]): any { - const topNode = collect(extensions).firstWhere('topNode', true) - - if (topNode) { - return topNode.name - } -} - -function getMarksFromExtensions(extensions: (Extension | Node | Mark)[]): any { - return collect(extensions) - .where('extensionType', 'mark') - .mapWithKeys((extension: Mark) => [extension.name, extension.schema()]) - .all() -} diff --git a/packages/core/src/utils/getTopNodeFromExtensions.ts b/packages/core/src/utils/getTopNodeFromExtensions.ts new file mode 100644 index 00000000..360bc57e --- /dev/null +++ b/packages/core/src/utils/getTopNodeFromExtensions.ts @@ -0,0 +1,10 @@ +import collect from 'collect.js' +import { Extensions } from '../types' + +export default function getTopNodeFromExtensions(extensions: Extensions): any { + const topNode = collect(extensions).firstWhere('topNode', true) + + if (topNode) { + return topNode.name + } +} \ No newline at end of file