@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
48 lines • 1.5 kB
JavaScript
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