tiptap/packages/core/src/helpers/createChainableState.ts

38 lines
897 B
TypeScript
Raw Normal View History

import { EditorState, Transaction } from 'prosemirror-state'
export default function createChainableState(config: {
transaction: Transaction,
state: EditorState,
}): EditorState {
const { state, transaction } = config
let { selection } = transaction
let { doc } = transaction
let { storedMarks } = transaction
return {
...state,
schema: state.schema,
plugins: state.plugins,
apply: state.apply.bind(state),
applyTransaction: state.applyTransaction.bind(state),
reconfigure: state.reconfigure.bind(state),
toJSON: state.toJSON.bind(state),
get storedMarks() {
return storedMarks
},
get selection() {
return selection
},
get doc() {
return doc
},
get tr() {
selection = transaction.selection
doc = transaction.doc
storedMarks = transaction.storedMarks
return transaction
},
}
}