refactor(ckeditor5-mermaid): use proper method for config type

This commit is contained in:
Elian Doran 2025-05-05 14:54:17 +03:00
parent d6548f4cd6
commit 9f25162700
No known key found for this signature in database
2 changed files with 24 additions and 20 deletions

View File

@ -3,17 +3,8 @@ import MermaidEditing from './mermaidediting.js';
import MermaidToolbar from './mermaidtoolbar.js';
import MermaidUI from './mermaidui.js';
declare module 'ckeditor5' {
interface PluginsMap {
[ Mermaid.pluginName ]: Mermaid;
[ MermaidEditing.pluginName ]: MermaidEditing;
[ MermaidToolbar.pluginName ]: MermaidToolbar;
[ MermaidUI.pluginName]: MermaidUI;
}
}
declare global {
interface Mermaid {
interface MermaidInstance {
init(config: MermaidConfig, element: HTMLElement): void;
}
@ -23,3 +14,21 @@ declare global {
var mermaid: Mermaid | null | undefined;
}
declare module 'ckeditor5' {
interface PluginsMap {
[ Mermaid.pluginName ]: Mermaid;
[ MermaidEditing.pluginName ]: MermaidEditing;
[ MermaidToolbar.pluginName ]: MermaidToolbar;
[ MermaidUI.pluginName]: MermaidUI;
}
interface EditorConfig {
"mermaid"?: {
lazyLoad?: () => Promise<MermaidInstance> | MermaidInstance;
config: MermaidConfig;
}
}
}

View File

@ -8,24 +8,19 @@ import MermaidPreviewCommand from './commands/mermaidPreviewCommand.js';
import MermaidSourceViewCommand from './commands/mermaidSourceViewCommand.js';
import MermaidSplitViewCommand from './commands/mermaidSplitViewCommand.js';
import InsertMermaidCommand from './commands/insertMermaidCommand.js';
import { DowncastAttributeEvent, DowncastConversionApi, Element, EventInfo, Item, Node, Plugin, toWidget, UpcastConversionApi, UpcastConversionData, ViewElement, ViewText, ViewUIElement } from 'ckeditor5';
import { DowncastAttributeEvent, DowncastConversionApi, EditorConfig, Element, EventInfo, Item, Node, Plugin, toWidget, UpcastConversionApi, UpcastConversionData, ViewElement, ViewText, ViewUIElement } from 'ckeditor5';
// Time in milliseconds.
const DEBOUNCE_TIME = 300;
/* global window */
interface MermaidConfig {
lazyLoad?: () => Promise<Mermaid> | Mermaid;
config: MermaidConfig;
}
type DowncastConversionData = DowncastAttributeEvent["args"][0];
export default class MermaidEditing extends Plugin {
private _config!: MermaidConfig;
private mermaid?: Mermaid;
private _config!: EditorConfig["mermaid"];
private mermaid?: MermaidInstance;
/**
* @inheritDoc
@ -40,7 +35,7 @@ export default class MermaidEditing extends Plugin {
init() {
this._registerCommands();
this._defineConverters();
this._config = this.editor.config.get("mermaid") as MermaidConfig;
this._config = this.editor.config.get("mermaid");
}
/**
@ -276,6 +271,6 @@ export default class MermaidEditing extends Plugin {
this.mermaid = await this._config.lazyLoad();
}
this.mermaid?.init( this._config.config, domElement );
this.mermaid?.init( this._config?.config ?? {}, domElement );
}
}