UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

50 lines 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var media_1 = require("../../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 = media_1.toJSON(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; }()); exports.default = JSONSerializer; //# sourceMappingURL=index.js.map