import { NodeSelection } from '@sse-editor/pm/state' import { RawCommands } from '../types.js' import { minMax } from '../utilities/minMax.js' declare module '@sse-editor/core' { interface Commands { setNodeSelection: { /** * Creates a NodeSelection. */ setNodeSelection: (position: number) => ReturnType } } } export const setNodeSelection: RawCommands['setNodeSelection'] = position => ({ tr, dispatch }) => { if (dispatch) { const { doc } = tr const from = minMax(position, 0, doc.content.size) const selection = NodeSelection.create(doc, from) tr.setSelection(selection) } return true }