diff --git a/packages/tiptap-core/src/Editor.ts b/packages/tiptap-core/src/Editor.ts index 2992c8de..161e420c 100644 --- a/packages/tiptap-core/src/Editor.ts +++ b/packages/tiptap-core/src/Editor.ts @@ -11,14 +11,16 @@ import { gapCursor } from 'prosemirror-gapcursor' import elementFromString from './utils/elementFromString' import injectCSS from './utils/injectCSS' import ExtensionManager from './ExtensionManager' +import Extension from './Extension' +import Node from './Node' type EditorContent = string | JSON type Command = (next: Function, editor: Editor, ...args: any) => any interface Options { - element?: Node + element?: globalThis.Node content: EditorContent - extensions: [any?] + extensions: (Extension | Node)[] injectCSS: Boolean } diff --git a/packages/tiptap-core/src/Extension.ts b/packages/tiptap-core/src/Extension.ts index ac57a052..f7e37e0b 100644 --- a/packages/tiptap-core/src/Extension.ts +++ b/packages/tiptap-core/src/Extension.ts @@ -18,9 +18,9 @@ export default abstract class Extension { public type = 'extension' - protected created() {} + public created() {} - protected bindEditor(editor: Editor): void { + public bindEditor(editor: Editor): void { this.editor = editor } diff --git a/packages/tiptap-core/src/ExtensionManager.ts b/packages/tiptap-core/src/ExtensionManager.ts index eb10958e..29c541f0 100644 --- a/packages/tiptap-core/src/ExtensionManager.ts +++ b/packages/tiptap-core/src/ExtensionManager.ts @@ -1,12 +1,14 @@ import { keymap } from 'prosemirror-keymap' import collect from 'collect.js' import { Editor } from './Editor' +import Extension from './Extension' +import Node from './Node' export default class ExtensionManager { - extensions: [any?] + extensions: (Extension | Node)[] - constructor(extensions: any = [], editor: Editor) { + constructor(extensions: (Extension | Node)[], editor: Editor) { this.extensions = extensions this.extensions.forEach(extension => { extension.bindEditor(editor) @@ -15,7 +17,7 @@ export default class ExtensionManager { } get topNode() { - const topNode = this.extensions.find(extension => extension.topNode) + const topNode = collect(this.extensions).firstWhere('topNode', true) if (topNode) { return topNode.name