contentful-rich-text-html-parser
Version:
Convert any HTML to the Contentful Rich Text format
47 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.processConvertedNodesFromTopLevel = void 0;
var rich_text_types_1 = require("@contentful/rich-text-types");
var utils_js_1 = require("./utils.js");
var processConvertedNodesFromTopLevel = function (node, options) {
if ((0, utils_js_1.isNodeTypeBlock)(node)) {
if ((0, utils_js_1.isNodeTypeTopLevelBlock)(node)) {
return node;
}
// Block types that can not be at the top level are: BLOCKS.DOCUMENT | BLOCKS.LIST_ITEM | BLOCKS.TABLE_ROW | BLOCKS.TABLE_CELL | BLOCKS.TABLE_HEADER_CELL
if (node.nodeType === rich_text_types_1.BLOCKS.DOCUMENT) {
return null;
}
// TODO: Handle top level list items and table elements
return node;
}
if ((0, utils_js_1.isNodeTypeInline)(node)) {
if (options.postProcessing.handleTopLevelInlines === "remove") {
return null;
}
if (options.postProcessing.handleTopLevelInlines === "wrap-paragraph") {
return {
nodeType: rich_text_types_1.BLOCKS.PARAGRAPH,
data: {},
content: [node],
};
}
return node;
}
if ((0, utils_js_1.isNodeTypeText)(node)) {
if (options.postProcessing.handleTopLevelText === "remove") {
return null;
}
if (options.postProcessing.handleTopLevelText === "wrap-paragraph") {
return {
nodeType: rich_text_types_1.BLOCKS.PARAGRAPH,
data: {},
content: [node],
};
}
return node;
}
return null;
};
exports.processConvertedNodesFromTopLevel = processConvertedNodesFromTopLevel;
//# sourceMappingURL=processConvertedNodesFromTopLevel.js.map