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,