tiptap/packages/core/src/helpers/getNodeAttributes.ts
Ben Asher e97630c639
Require file extensions for imports and exports (#4001)
* Require .js endings

* add extension alias for cypress to resolve ts files with js endings
2023-06-30 21:03:49 +02:00

26 lines
599 B
TypeScript

import { Node, NodeType } from '@tiptap/pm/model'
import { EditorState } from '@tiptap/pm/state'
import { getNodeType } from './getNodeType.js'
export function getNodeAttributes(
state: EditorState,
typeOrName: string | NodeType,
): Record<string, any> {
const type = getNodeType(typeOrName, state.schema)
const { from, to } = state.selection
const nodes: Node[] = []
state.doc.nodesBetween(from, to, node => {
nodes.push(node)
})
const node = nodes.reverse().find(nodeItem => nodeItem.type.name === type.name)
if (!node) {
return {}
}
return { ...node.attrs }
}