feat: add editor.getAttributes, deprecate editor.getNodeAttributes and editor.getMarkAttributes
This commit is contained in:
27
packages/core/src/helpers/getAttributes.ts
Normal file
27
packages/core/src/helpers/getAttributes.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import { MarkType, NodeType } from 'prosemirror-model'
|
||||
import { EditorState } from 'prosemirror-state'
|
||||
import getSchemaTypeNameByName from './getSchemaTypeNameByName'
|
||||
import getNodeAttributes from './getNodeAttributes'
|
||||
import getMarkAttributes from './getMarkAttributes'
|
||||
|
||||
export default function getAttributes(
|
||||
state: EditorState,
|
||||
typeOrName: string | NodeType | MarkType,
|
||||
): Record<string, any> {
|
||||
const schemaType = getSchemaTypeNameByName(
|
||||
typeof typeOrName === 'string'
|
||||
? typeOrName
|
||||
: typeOrName.name,
|
||||
state.schema,
|
||||
)
|
||||
|
||||
if (schemaType === 'node') {
|
||||
return getNodeAttributes(state, typeOrName as NodeType)
|
||||
}
|
||||
|
||||
if (schemaType === 'mark') {
|
||||
return getMarkAttributes(state, typeOrName as MarkType)
|
||||
}
|
||||
|
||||
return {}
|
||||
}
|
||||
Reference in New Issue
Block a user