improve handling options

This commit is contained in:
Philipp Kühn
2020-09-05 23:18:05 +02:00
parent ce3aa2a49b
commit 8fdc75f07c

View File

@@ -808,7 +808,7 @@ class ExtensionTest<Options, Extends extends ExtensionExtends> {
} }
} }
private useOptions(options: Partial<Options>) { public options(options: Partial<Options>) {
this.usedOptions = { ...this.usedOptions, ...options } this.usedOptions = { ...this.usedOptions, ...options }
return this return this
} }
@@ -818,8 +818,8 @@ class ExtensionTest<Options, Extends extends ExtensionExtends> {
return this return this
} }
public options(value: Options) { public defaultOptions(value: Options) {
this.storeConfig('options', value, 'overwrite') this.storeConfig('defaultOptions', value, 'overwrite')
return this return this
} }
@@ -833,12 +833,12 @@ class ExtensionTest<Options, Extends extends ExtensionExtends> {
return this return this
} }
public create(options?: Partial<Options>) { public create() {
const self = this const self = this
return function<Options2 = Options>(options2?: Partial<Options>): ExtensionTest<Options2, Extends> { return function<Options2 = Options>(options?: Partial<Options2>): ExtensionTest<Options2, Extends> {
return cloneDeep(self as unknown as ExtensionTest<Options2, Extends>, true) return cloneDeep(self as unknown as ExtensionTest<Options2, Extends>, true)
.useOptions({...options, ...options2} as Options2) .options(options as Options2)
} }
} }
} }
@@ -862,7 +862,7 @@ interface TestOptions {
const Suggestion = new NodeTest<TestOptions>() const Suggestion = new NodeTest<TestOptions>()
.name('suggestion') .name('suggestion')
.options({ .defaultOptions({
trigger: '@' trigger: '@'
}) })
.schema(() => ({ .schema(() => ({
@@ -879,28 +879,8 @@ const Suggestion = new NodeTest<TestOptions>()
})) }))
.create() .create()
// const Suggestion2 = new NodeTesttt({ // console.log(Suggestion(), Suggestion().name('bla'))
// name: 'suggestion', console.log(Suggestion().options({ trigger: 'jo' }))
// options: {
// trigger: '@',
// },
// schema: () => ({
// toDOM: () => ['div', 0]
// }),
// commands: (({ editor, name }) => ({
// [name]: next => () => {
// editor.toggleMark(name)
// next()
// },
// }))
// })
// .extend({
// schema: () => ({
// toDOM: () => ['span', 0],
// }),
// })
console.log(Suggestion(), Suggestion().name('bla').create()())
// interface MentionOptions { // interface MentionOptions {
// trigger: string // trigger: string