From d60e69e82215565b2a4dc74e32cbe959cbc6f3eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Fri, 24 Aug 2018 08:41:41 +0200 Subject: [PATCH] add base extension --- packages/tiptap/src/index.js | 1 + packages/tiptap/src/utils/extension.js | 30 ++++++++++++++++++++++++++ packages/tiptap/src/utils/mark.js | 25 ++++----------------- packages/tiptap/src/utils/node.js | 25 ++++----------------- 4 files changed, 39 insertions(+), 42 deletions(-) create mode 100644 packages/tiptap/src/utils/extension.js diff --git a/packages/tiptap/src/index.js b/packages/tiptap/src/index.js index 841db5df..47c1fa3f 100644 --- a/packages/tiptap/src/index.js +++ b/packages/tiptap/src/index.js @@ -1,3 +1,4 @@ export { default as Editor } from './components/editor' +export { default as Extension } from './utils/extension' export { default as Node } from './utils/node' export { default as Mark } from './utils/mark' diff --git a/packages/tiptap/src/utils/extension.js b/packages/tiptap/src/utils/extension.js new file mode 100644 index 00000000..e3fa24dd --- /dev/null +++ b/packages/tiptap/src/utils/extension.js @@ -0,0 +1,30 @@ +export default class Extension { + + constructor(options = {}) { + this.options = { + ...this.defaultOptions, + ...options, + } + } + + get name() { + return null + } + + get type() { + return 'extension' + } + + get defaultOptions() { + return {} + } + + get plugins() { + return [] + } + + inputRules() { + return [] + } + +} diff --git a/packages/tiptap/src/utils/mark.js b/packages/tiptap/src/utils/mark.js index a298f7e9..9d9b8edc 100644 --- a/packages/tiptap/src/utils/mark.js +++ b/packages/tiptap/src/utils/mark.js @@ -1,18 +1,9 @@ -export default class Mark { +import Extension from './extension' + +export default class Mark extends Extension { constructor(options = {}) { - this.options = { - ...this.defaultOptions, - ...options, - } - } - - get name() { - return null - } - - get defaultOptions() { - return {} + super(options) } get type() { @@ -27,10 +18,6 @@ export default class Mark { return null } - get plugins() { - return [] - } - command() { return () => {} } @@ -39,8 +26,4 @@ export default class Mark { return {} } - inputRules() { - return [] - } - } diff --git a/packages/tiptap/src/utils/node.js b/packages/tiptap/src/utils/node.js index 16f02c7f..adfea214 100644 --- a/packages/tiptap/src/utils/node.js +++ b/packages/tiptap/src/utils/node.js @@ -1,18 +1,9 @@ -export default class Node { +import Extension from './extension' + +export default class Node extends Extension { constructor(options = {}) { - this.options = { - ...this.defaultOptions, - ...options, - } - } - - get name() { - return null - } - - get defaultOptions() { - return {} + super(options) } get type() { @@ -27,10 +18,6 @@ export default class Node { return null } - get plugins() { - return [] - } - command() { return () => {} } @@ -39,8 +26,4 @@ export default class Node { return {} } - inputRules() { - return [] - } - }