diff --git a/packages/core/src/Editor.ts b/packages/core/src/Editor.ts index 7350a28c..7b9c9df2 100644 --- a/packages/core/src/Editor.ts +++ b/packages/core/src/Editor.ts @@ -17,7 +17,7 @@ import EventEmitter from './EventEmitter' import { Extension } from './Extension' import { NodeExtension } from './NodeExtension' import { MarkExtension } from './MarkExtension' -import { Extensions, UnionToIntersection, PickValue } from './types' +import { Extensions, UnionToIntersection } from './types' import * as extensions from './extensions' import style from './style' @@ -40,50 +40,7 @@ export interface CommandsSpec { export interface AllExtensions {} -// type names = AllExtensions[keyof AllExtensions] -// type onlyExtensions = AllExtensions[keyof AllExtensions] extends Extension ? '1' : '0' -// type onlyExtensions = AllExtensions[keyof AllExtensions extends Extension ? '1' : '0'] - -// export type OnlyExtensions = { -// [Item in keyof AllExtensions]: AllExtensions[Item] extends Extension -// ? AllExtensions[Item] -// : never -// } - -// type ExtractCat = A extends Extension ? A : never - -// export type OnlyExtensions = ExtractCat - -// type ExtractCommands = G extends Extension ? S : never -// type Test = UnionToIntersection> - -// type SubType = Pick; - -// type OnlyExtensions = SubType -// type ExtractCommands = G extends Extension ? S : never -// type Test = ExtractCommands - -// type ExtractCommands = G extends Extension -// ? never -// : G extends NodeExtension -// ? never -// : G extends MarkExtension -// ? U -// : never - -// export type Bla = { -// [Item in keyof AllExtensions]: AllExtensions[Item] extends Extension -// ? S -// : AllExtensions[Item] extends NodeExtension -// ? T -// : AllExtensions[Item] extends MarkExtension -// ? U -// : never -// } - -export type Bla = { +export type UnfilteredCommands = { [Item in keyof AllExtensions]: AllExtensions[Item] extends Extension ? ExtensionCommands : AllExtensions[Item] extends NodeExtension @@ -95,7 +52,7 @@ export type Bla = { type ValuesOf = T[keyof T]; type KeysWithTypeOf = ({[P in keyof T]: T[P] extends Type ? P : never })[keyof T] -type AllCommands = UnionToIntersection>>> +type AllCommands = UnionToIntersection>>> export type SingleCommands = { [Item in keyof AllCommands]: AllCommands[Item] extends (...args: any[]) => any