From 9a8ce8c5fb28d5615a60e834baaa5aaeda55a532 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Tue, 22 Sep 2020 23:34:18 +0200 Subject: [PATCH] refactoring --- packages/core/index.ts | 4 ++-- packages/core/src/Editor.ts | 12 +++++++----- packages/core/src/Extension.ts | 4 ++-- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/core/index.ts b/packages/core/index.ts index 86af73a3..13b1a00a 100644 --- a/packages/core/index.ts +++ b/packages/core/index.ts @@ -1,7 +1,7 @@ -import { Editor, Command, CommandSpec } from './src/Editor' +import { Editor, Command, CommandsSpec } from './src/Editor' export default Editor -export { Editor, Command, CommandSpec } +export { Editor, Command, CommandsSpec } export { default as ComponentRenderer } from './src/ComponentRenderer' export { default as Extension } from './src/Extension' export { default as Node } from './src/Node' diff --git a/packages/core/src/Editor.ts b/packages/core/src/Editor.ts index 48af420f..069c8206 100644 --- a/packages/core/src/Editor.ts +++ b/packages/core/src/Editor.ts @@ -31,8 +31,10 @@ export type Command = (props: { dispatch: (args?: any) => any, }) => boolean -export interface CommandSpec { - [key: string]: (...args: any[]) => Command +export type CommandSpec = (...args: any[]) => Command + +export interface CommandsSpec { + [key: string]: CommandSpec } export interface Commands {} @@ -79,7 +81,7 @@ export class Editor extends EventEmitter { private proxy!: Editor private commandManager!: CommandManager private extensionManager!: ExtensionManager - private commands: { [key: string]: any } = {} + private commands: CommandsSpec = {} private css!: HTMLStyleElement public schema!: Schema public view!: EditorView @@ -166,7 +168,7 @@ export class Editor extends EventEmitter { * * @param commands A list of commands */ - public registerCommands(commands: CommandSpec) { + public registerCommands(commands: CommandsSpec) { Object .entries(commands) .forEach(([name, command]) => this.registerCommand(name, command)) @@ -178,7 +180,7 @@ export class Editor extends EventEmitter { * @param name The name of your command * @param callback The method of your command */ - public registerCommand(name: string, callback: (bla?: any) => Command): Editor { + public registerCommand(name: string, callback: CommandSpec): Editor { if (this.commands[name]) { throw new Error(`tiptap: command '${name}' is already defined.`) } diff --git a/packages/core/src/Extension.ts b/packages/core/src/Extension.ts index bf5451f4..873c424b 100644 --- a/packages/core/src/Extension.ts +++ b/packages/core/src/Extension.ts @@ -1,6 +1,6 @@ import cloneDeep from 'clone-deep' import { Plugin } from 'prosemirror-state' -import { Editor, CommandSpec } from './Editor' +import { Editor, CommandsSpec } from './Editor' type AnyObject = { [key: string]: any @@ -26,7 +26,7 @@ export interface ExtensionProps { export interface ExtensionMethods { name: string options: Options - commands: (params: Props) => CommandSpec + commands: (params: Props) => CommandsSpec inputRules: (params: Props) => any[] pasteRules: (params: Props) => any[] keys: (params: Props) => {