UNPKG

@atlaskit/adf-schema

Version:

Shared package that contains the ADF-schema (json) and ProseMirror node/mark specs

31 lines (28 loc) 1.26 kB
/* eslint-disable @atlaskit/editor/no-re-export -- VOLTC-139 tracks removal of these deprecated compatibility re-export shims. */ import { Schema } from '@atlaskit/editor-prosemirror/model'; import { addItems } from './add-items'; import { markGroupDeclarationsNames } from './mark-group-declarations-names'; import { marksInOrder } from './marks-in-order'; import { nodesInOrder } from './nodes-in-order'; import { sanitizeNodes } from './sanitizeNodes'; /** * Creates a schema preserving order of marks and nodes. */ export function createSchema(config) { const { customNodeSpecs, customMarkSpecs } = config; const nodesConfig = Object.keys(customNodeSpecs || {}).concat(config.nodes); const marksConfig = Object.keys(customMarkSpecs || {}).concat(config.marks || []).concat(markGroupDeclarationsNames); let nodes = addItems(nodesInOrder, nodesConfig, customNodeSpecs); const marks = addItems(marksInOrder, marksConfig, customMarkSpecs); nodes = sanitizeNodes(nodes, marks); return new Schema({ nodes, marks }); } export const allowCustomPanel = true; // eslint-disable-next-line @atlaskit/volt-strict-mode/no-re-exports -- Public compatibility re-export. export { getNodesAndMarksMap } from './get-nodes-and-marks-map';