From 0fdfe33820b95edd95d9ada193bba5d2884fb77b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Mon, 16 Nov 2020 10:22:12 +0100 Subject: [PATCH] create new instance on extension set method --- packages/core/src/Extension.ts | 11 ++++++++++- packages/core/src/MarkExtension.ts | 11 ++++++++++- packages/core/src/NodeExtension.ts | 11 ++++++++++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/packages/core/src/Extension.ts b/packages/core/src/Extension.ts index aec32953..9c4063a9 100644 --- a/packages/core/src/Extension.ts +++ b/packages/core/src/Extension.ts @@ -90,7 +90,16 @@ export class Extension { return new Extension(config) } - set(options: Options) { + set(options: Partial) { + return Extension + .create(this.config as ExtensionSpec) + .#set({ + ...this.config.defaultOptions, + ...options, + }) + } + + #set = (options: Partial) => { this.options = { ...this.config.defaultOptions, ...options, diff --git a/packages/core/src/MarkExtension.ts b/packages/core/src/MarkExtension.ts index 64a7e9e6..a934eb7c 100644 --- a/packages/core/src/MarkExtension.ts +++ b/packages/core/src/MarkExtension.ts @@ -140,7 +140,16 @@ export class MarkExtension { return new MarkExtension(config) } - set(options: Options) { + set(options: Partial) { + return MarkExtension + .create(this.config as MarkExtensionSpec) + .#set({ + ...this.config.defaultOptions, + ...options, + }) + } + + #set = (options: Partial) => { this.options = { ...this.config.defaultOptions, ...options, diff --git a/packages/core/src/NodeExtension.ts b/packages/core/src/NodeExtension.ts index 79991887..84e9cf77 100644 --- a/packages/core/src/NodeExtension.ts +++ b/packages/core/src/NodeExtension.ts @@ -192,7 +192,16 @@ export class NodeExtension { return new NodeExtension(config) } - set(options: Options) { + set(options: Partial) { + return NodeExtension + .create(this.config as NodeExtensionSpec) + .#set({ + ...this.config.defaultOptions, + ...options, + }) + } + + #set = (options: Partial) => { this.options = { ...this.config.defaultOptions, ...options,