UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

48 lines 1.5 kB
import { toJSON as mediaToJSON } from '../../schema/nodes/media'; var isMediaNode = function (node) { return node.type.name === 'media'; }; var isParagraph = function (node) { return node.type.name === 'paragraph'; }; var toJSON = function (node) { var obj = { type: node.type.name }; if (isMediaNode(node)) { obj.attrs = mediaToJSON(node).attrs; } else if (Object.keys(node.attrs).length) { obj.attrs = node.attrs; } if (node.isText) { obj.text = node.textContent; } else { node.content.forEach(function (child) { obj.content = obj.content || []; obj.content.push(toJSON(child)); }); } if (isParagraph(node)) { // Paragraph shall always has a content obj.content = obj.content || []; } if (node.marks.length) { obj.marks = node.marks.map(function (n) { return n.toJSON(); }); } return obj; }; var JSONSerializer = (function () { function JSONSerializer() { } JSONSerializer.prototype.serializeFragment = function (fragment) { var content = []; fragment.forEach(function (child) { return content.push(toJSON(child)); }); return { version: 1, type: 'doc', content: content, }; }; JSONSerializer.fromSchema = function (schema) { return new JSONSerializer(); }; return JSONSerializer; }()); export default JSONSerializer; //# sourceMappingURL=index.js.map