dont use instanceof

This commit is contained in:
Philipp Kühn 2020-11-19 21:08:25 +01:00
parent a4cc02cff6
commit 6cb3de0f4e
4 changed files with 9 additions and 3 deletions

View File

@ -65,6 +65,8 @@ export interface ExtensionConfig<Options = any, Commands = {}> {
}
export class Extension<Options = any, Commands = any> {
type = 'extension'
config: Required<ExtensionConfig> = {
name: 'extension',
defaultOptions: {},

View File

@ -111,6 +111,8 @@ export interface MarkConfig<Options = any, Commands = {}> extends Overwrite<Exte
}> {}
export class Mark<Options = any, Commands = {}> {
type = 'mark'
config: Required<MarkConfig> = {
name: 'mark',
defaultOptions: {},

View File

@ -155,6 +155,8 @@ export interface NodeConfig<Options = any, Commands = {}> extends Overwrite<Exte
}> {}
export class Node<Options = any, Commands = {}> {
type = 'node'
config: Required<NodeConfig> = {
name: 'node',
defaultOptions: {},

View File

@ -4,9 +4,9 @@ import { Node } from '../Node'
import { Mark } from '../Mark'
export default function splitExtensions(extensions: Extensions) {
const baseExtensions = extensions.filter(extension => extension instanceof Extension) as Extension[]
const nodeExtensions = extensions.filter(extension => extension instanceof Node) as Node[]
const markExtensions = extensions.filter(extension => extension instanceof Mark) as Mark[]
const baseExtensions = extensions.filter(extension => extension.type === 'extension') as Extension[]
const nodeExtensions = extensions.filter(extension => extension.type === 'node') as Node[]
const markExtensions = extensions.filter(extension => extension.type === 'mark') as Mark[]
return {
baseExtensions,