mirror of
https://github.com/ueberdosis/tiptap.git
synced 2024-11-23 19:19:03 +08:00
use global namespace
This commit is contained in:
parent
3a6479eeca
commit
24c3a9abd3
@ -70,6 +70,8 @@ module.exports = {
|
||||
'@typescript-eslint/ban-types': 'off',
|
||||
'@typescript-eslint/comma-dangle': ['error', 'always-multiline'],
|
||||
'@typescript-eslint/explicit-module-boundary-types': 'off',
|
||||
'@typescript-eslint/no-namespace': 'off',
|
||||
'no-undef': 'off',
|
||||
},
|
||||
},
|
||||
],
|
||||
|
@ -1,7 +1,5 @@
|
||||
import { EditorState, Transaction } from 'prosemirror-state'
|
||||
import {
|
||||
SingleCommands,
|
||||
ChainedCommands,
|
||||
Editor,
|
||||
CommandSpec,
|
||||
} from './Editor'
|
||||
@ -58,7 +56,7 @@ export default class CommandManager {
|
||||
}
|
||||
|
||||
return [name, method]
|
||||
})) as SingleCommands
|
||||
})) as Tiptap.SingleCommands
|
||||
}
|
||||
|
||||
public createChain(startTr?: Transaction, shouldDispatch = true) {
|
||||
@ -92,7 +90,7 @@ export default class CommandManager {
|
||||
return proxy
|
||||
}
|
||||
},
|
||||
}) as ChainedCommands
|
||||
}) as Tiptap.ChainedCommands
|
||||
}
|
||||
|
||||
public createCan(startTr?: Transaction) {
|
||||
@ -105,7 +103,7 @@ export default class CommandManager {
|
||||
.entries(commands)
|
||||
.map(([name, command]) => {
|
||||
return [name, (...args: any[]) => command(...args)({ ...props, dispatch })]
|
||||
})) as SingleCommands
|
||||
})) as Tiptap.SingleCommands
|
||||
|
||||
return {
|
||||
...formattedCommands,
|
||||
|
@ -24,9 +24,9 @@ import style from './style'
|
||||
export type Command = (props: {
|
||||
editor: Editor,
|
||||
tr: Transaction,
|
||||
commands: SingleCommands,
|
||||
can: () => SingleCommands & { chain: () => ChainedCommands },
|
||||
chain: () => ChainedCommands,
|
||||
commands: Tiptap.SingleCommands,
|
||||
can: () => Tiptap.SingleCommands & { chain: () => Tiptap.ChainedCommands },
|
||||
chain: () => Tiptap.ChainedCommands,
|
||||
state: EditorState,
|
||||
view: EditorView,
|
||||
dispatch: ((args?: any) => any) | undefined,
|
||||
@ -38,35 +38,71 @@ export interface CommandsSpec {
|
||||
[key: string]: CommandSpec
|
||||
}
|
||||
|
||||
export interface AllExtensions {}
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
export interface AllExtensions {}
|
||||
|
||||
export type UnfilteredCommands = {
|
||||
[Item in keyof AllExtensions]: AllExtensions[Item] extends Extension<any, infer ExtensionCommands>
|
||||
? ExtensionCommands
|
||||
: AllExtensions[Item] extends Node<any, infer NodeCommands>
|
||||
? NodeCommands
|
||||
: AllExtensions[Item] extends Mark<any, infer MarkCommands>
|
||||
? MarkCommands
|
||||
: never
|
||||
export type UnfilteredCommands = {
|
||||
[Item in keyof AllExtensions]: AllExtensions[Item] extends Extension<any, infer ExtensionCommands>
|
||||
? ExtensionCommands
|
||||
: AllExtensions[Item] extends Node<any, infer NodeCommands>
|
||||
? NodeCommands
|
||||
: AllExtensions[Item] extends Mark<any, infer MarkCommands>
|
||||
? MarkCommands
|
||||
: never
|
||||
}
|
||||
|
||||
type ValuesOf<T> = T[keyof T];
|
||||
type KeysWithTypeOf<T, Type> = ({[P in keyof T]: T[P] extends Type ? P : never })[keyof T]
|
||||
type AllCommands = UnionToIntersection<ValuesOf<Pick<UnfilteredCommands, KeysWithTypeOf<UnfilteredCommands, {}>>>>
|
||||
|
||||
export type SingleCommands = {
|
||||
[Item in keyof AllCommands]: AllCommands[Item] extends (...args: any[]) => any
|
||||
? (...args: Parameters<AllCommands[Item]>) => boolean
|
||||
: never
|
||||
}
|
||||
|
||||
export type ChainedCommands = {
|
||||
[Item in keyof AllCommands]: AllCommands[Item] extends (...args: any[]) => any
|
||||
? (...args: Parameters<AllCommands[Item]>) => ChainedCommands
|
||||
: never
|
||||
} & {
|
||||
run: () => boolean
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
type ValuesOf<T> = T[keyof T];
|
||||
type KeysWithTypeOf<T, Type> = ({[P in keyof T]: T[P] extends Type ? P : never })[keyof T]
|
||||
type AllCommands = UnionToIntersection<ValuesOf<Pick<UnfilteredCommands, KeysWithTypeOf<UnfilteredCommands, {}>>>>
|
||||
// type blub = Tiptap.AllExtensions
|
||||
|
||||
export type SingleCommands = {
|
||||
[Item in keyof AllCommands]: AllCommands[Item] extends (...args: any[]) => any
|
||||
? (...args: Parameters<AllCommands[Item]>) => boolean
|
||||
: never
|
||||
}
|
||||
// export interface AllExtensions {}
|
||||
|
||||
export type ChainedCommands = {
|
||||
[Item in keyof AllCommands]: AllCommands[Item] extends (...args: any[]) => any
|
||||
? (...args: Parameters<AllCommands[Item]>) => ChainedCommands
|
||||
: never
|
||||
} & {
|
||||
run: () => boolean
|
||||
}
|
||||
// export type UnfilteredCommands = {
|
||||
// [Item in keyof Tiptap.AllExtensions]: AllExtensions[Item] extends Extension<any, infer ExtensionCommands>
|
||||
// ? ExtensionCommands
|
||||
// : AllExtensions[Item] extends Node<any, infer NodeCommands>
|
||||
// ? NodeCommands
|
||||
// : AllExtensions[Item] extends Mark<any, infer MarkCommands>
|
||||
// ? MarkCommands
|
||||
// : never
|
||||
// }
|
||||
|
||||
// type ValuesOf<T> = T[keyof T];
|
||||
// type KeysWithTypeOf<T, Type> = ({[P in keyof T]: T[P] extends Type ? P : never })[keyof T]
|
||||
// type AllCommands = UnionToIntersection<ValuesOf<Pick<UnfilteredCommands, KeysWithTypeOf<UnfilteredCommands, {}>>>>
|
||||
|
||||
// export type SingleCommands = {
|
||||
// [Item in keyof AllCommands]: AllCommands[Item] extends (...args: any[]) => any
|
||||
// ? (...args: Parameters<AllCommands[Item]>) => boolean
|
||||
// : never
|
||||
// }
|
||||
|
||||
// export type ChainedCommands = {
|
||||
// [Item in keyof AllCommands]: AllCommands[Item] extends (...args: any[]) => any
|
||||
// ? (...args: Parameters<AllCommands[Item]>) => ChainedCommands
|
||||
// : never
|
||||
// } & {
|
||||
// run: () => boolean
|
||||
// }
|
||||
|
||||
type EditorContent = string | JSON | null
|
||||
|
||||
|
@ -147,8 +147,10 @@ export const Commands = Extension.create({
|
||||
},
|
||||
})
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Commands: typeof Commands,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Commands: typeof Commands,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -14,8 +14,10 @@ export const Editable = Extension.create({
|
||||
},
|
||||
})
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Editable: typeof Editable,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Editable: typeof Editable,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -36,8 +36,10 @@ export const FocusEvents = Extension.create({
|
||||
},
|
||||
})
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
FocusEvents: typeof FocusEvents,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
FocusEvents: typeof FocusEvents,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,8 +45,10 @@ export const Keymap = Extension.create({
|
||||
},
|
||||
})
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Keymap: typeof Keymap,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Keymap: typeof Keymap,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ export {
|
||||
Editor,
|
||||
Command,
|
||||
CommandsSpec,
|
||||
AllExtensions,
|
||||
} from './Editor'
|
||||
|
||||
export * from './Extension'
|
||||
|
@ -58,8 +58,10 @@ const Blockquote = Node.create({
|
||||
|
||||
export default Blockquote
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Blockquote: typeof Blockquote,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Blockquote: typeof Blockquote,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -74,8 +74,10 @@ const Bold = Mark.create({
|
||||
|
||||
export default Bold
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Bold: typeof Bold,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Bold: typeof Bold,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -56,8 +56,10 @@ const BulletList = Node.create({
|
||||
|
||||
export default BulletList
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
BulletList: typeof BulletList,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
BulletList: typeof BulletList,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -99,8 +99,10 @@ const CodeBlock = Node.create({
|
||||
|
||||
export default CodeBlock
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
CodeBlock: typeof CodeBlock,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
CodeBlock: typeof CodeBlock,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -65,8 +65,10 @@ const Code = Mark.create({
|
||||
|
||||
export default Code
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Code: typeof Code,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Code: typeof Code,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -64,8 +64,10 @@ const CollaborationCursor = Extension.create({
|
||||
|
||||
export default CollaborationCursor
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
CollaborationCursor: typeof CollaborationCursor,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
CollaborationCursor: typeof CollaborationCursor,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,8 +32,10 @@ const Collaboration = Extension.create({
|
||||
|
||||
export default Collaboration
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Collaboration: typeof Collaboration,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Collaboration: typeof Collaboration,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -8,8 +8,10 @@ const Document = Node.create({
|
||||
|
||||
export default Document
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Document: typeof Document,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Document: typeof Document,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,8 +11,10 @@ const Dropcursor = Extension.create({
|
||||
|
||||
export default Dropcursor
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Dropcursor: typeof Dropcursor,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Dropcursor: typeof Dropcursor,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -50,8 +50,10 @@ const FocusClasses = Extension.create({
|
||||
|
||||
export default FocusClasses
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
FocusClasses: typeof FocusClasses,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
FocusClasses: typeof FocusClasses,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -52,8 +52,10 @@ const FontFamily = Extension.create({
|
||||
|
||||
export default FontFamily
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
FontFamily: typeof FontFamily,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
FontFamily: typeof FontFamily,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,8 +11,10 @@ const Gapcursor = Extension.create({
|
||||
|
||||
export default Gapcursor
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Gapcursor: typeof Gapcursor,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Gapcursor: typeof Gapcursor,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -50,8 +50,10 @@ const HardBreak = Node.create({
|
||||
|
||||
export default HardBreak
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
HardBreak: typeof HardBreak,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
HardBreak: typeof HardBreak,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -83,8 +83,10 @@ const Heading = Node.create({
|
||||
|
||||
export default Heading
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Heading: typeof Heading,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Heading: typeof Heading,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -88,8 +88,10 @@ const Highlight = Mark.create({
|
||||
|
||||
export default Highlight
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Highlight: typeof Highlight,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Highlight: typeof Highlight,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -46,8 +46,10 @@ const History = Extension.create({
|
||||
|
||||
export default History
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
History: typeof History,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
History: typeof History,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -47,8 +47,10 @@ const HorizontalRule = Node.create({
|
||||
|
||||
export default HorizontalRule
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
HorizontalRule: typeof HorizontalRule,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
HorizontalRule: typeof HorizontalRule,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -82,8 +82,10 @@ const Image = Node.create({
|
||||
|
||||
export default Image
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Image: typeof Image,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Image: typeof Image,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -76,8 +76,10 @@ const Italic = Mark.create({
|
||||
|
||||
export default Italic
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Italic: typeof Italic,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Italic: typeof Italic,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -93,8 +93,10 @@ const Link = Mark.create({
|
||||
|
||||
export default Link
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Link: typeof Link,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Link: typeof Link,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -40,8 +40,10 @@ const ListItem = Node.create({
|
||||
|
||||
export default ListItem
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
ListItem: typeof ListItem,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
ListItem: typeof ListItem,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -80,8 +80,10 @@ const OrderedList = Node.create({
|
||||
|
||||
export default OrderedList
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
OrderedList: typeof OrderedList,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
OrderedList: typeof OrderedList,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -47,8 +47,10 @@ const Paragraph = Node.create({
|
||||
|
||||
export default Paragraph
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Paragraph: typeof Paragraph,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Paragraph: typeof Paragraph,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -74,8 +74,10 @@ const Strike = Mark.create({
|
||||
|
||||
export default Strike
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Strike: typeof Strike,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Strike: typeof Strike,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -125,8 +125,10 @@ const TaskItem = Node.create({
|
||||
|
||||
export default TaskItem
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
TaskItem: typeof TaskItem,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
TaskItem: typeof TaskItem,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -44,8 +44,10 @@ const TaskList = Node.create({
|
||||
|
||||
export default TaskList
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
TaskList: typeof TaskList,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
TaskList: typeof TaskList,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -65,8 +65,10 @@ const TextAlign = Extension.create({
|
||||
|
||||
export default TextAlign
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
TextAlign: typeof TextAlign,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
TextAlign: typeof TextAlign,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -46,8 +46,10 @@ const TextStyle = Mark.create({
|
||||
|
||||
export default TextStyle
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
TextStyle: typeof TextStyle,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
TextStyle: typeof TextStyle,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -7,8 +7,10 @@ const Text = Node.create({
|
||||
|
||||
export default Text
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Text: typeof Text,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Text: typeof Text,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,8 +45,10 @@ const Typography = Extension.create({
|
||||
|
||||
export default Typography
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Typography: typeof Typography,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Typography: typeof Typography,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,8 +45,10 @@ const Underline = Mark.create({
|
||||
|
||||
export default Underline
|
||||
|
||||
declare module '@tiptap/core' {
|
||||
interface AllExtensions {
|
||||
Underline: typeof Underline,
|
||||
declare global {
|
||||
namespace Tiptap {
|
||||
interface AllExtensions {
|
||||
Underline: typeof Underline,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user