@becklyn/contentful-adapter
Version:
[](https://github.com/Becklyn-Studios/contentful-adapter/actions/workflows/ci.yml)
102 lines (101 loc) • 3.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRteValidation = exports.RTE_TYPE_MARKS = exports.RTE_TYPE_TABLE = exports.RTE_TYPE_FULL = exports.RTE_TYPE_STYLED_FONT_AND_LIST = exports.RTE_TYPE_STYLED_FONT = exports.RTE_TYPE_MINIMAL = exports.RTE_TYPE_HEADLINE = void 0;
const rich_text_types_1 = require("@contentful/rich-text-types");
exports.RTE_TYPE_HEADLINE = "headline";
exports.RTE_TYPE_MINIMAL = "minimal";
exports.RTE_TYPE_STYLED_FONT = "styled-font";
exports.RTE_TYPE_STYLED_FONT_AND_LIST = "styled-font-list";
exports.RTE_TYPE_FULL = "full";
exports.RTE_TYPE_TABLE = "table";
exports.RTE_TYPE_MARKS = "marks";
const getRteValidation = (version = exports.RTE_TYPE_MINIMAL) => {
if (version === exports.RTE_TYPE_HEADLINE) {
return [
{
size: {
max: 256,
},
},
{
enabledMarks: [],
},
{
enabledNodeTypes: [],
},
{
nodes: {},
},
];
}
if (version === exports.RTE_TYPE_MARKS) {
return [
{
size: {
max: 256,
},
},
{
enabledMarks: [rich_text_types_1.MARKS.BOLD, rich_text_types_1.MARKS.ITALIC, rich_text_types_1.MARKS.UNDERLINE, rich_text_types_1.MARKS.CODE],
},
{
enabledNodeTypes: [],
},
{
nodes: {},
},
];
}
const enabledMarks = version !== exports.RTE_TYPE_MINIMAL
? [
rich_text_types_1.MARKS.BOLD,
rich_text_types_1.MARKS.ITALIC,
rich_text_types_1.MARKS.UNDERLINE,
rich_text_types_1.MARKS.CODE,
rich_text_types_1.MARKS.SUBSCRIPT,
rich_text_types_1.MARKS.SUPERSCRIPT,
]
: [];
let enabledNodeTypes = version === exports.RTE_TYPE_TABLE
? [rich_text_types_1.BLOCKS.TABLE]
: version !== exports.RTE_TYPE_MINIMAL && version !== exports.RTE_TYPE_STYLED_FONT
? [rich_text_types_1.INLINES.HYPERLINK, rich_text_types_1.INLINES.ENTRY_HYPERLINK, rich_text_types_1.INLINES.ASSET_HYPERLINK, rich_text_types_1.BLOCKS.UL_LIST]
: [rich_text_types_1.INLINES.HYPERLINK, rich_text_types_1.INLINES.ENTRY_HYPERLINK, rich_text_types_1.INLINES.ASSET_HYPERLINK];
if (version === exports.RTE_TYPE_FULL) {
enabledNodeTypes = [
...enabledNodeTypes,
rich_text_types_1.INLINES.EMBEDDED_ENTRY,
rich_text_types_1.BLOCKS.HR,
rich_text_types_1.BLOCKS.EMBEDDED_ENTRY,
rich_text_types_1.BLOCKS.HEADING_2,
rich_text_types_1.BLOCKS.HEADING_3,
rich_text_types_1.BLOCKS.TABLE,
];
}
return [
{ enabledMarks },
{ enabledNodeTypes },
{
nodes: {
[rich_text_types_1.INLINES.ENTRY_HYPERLINK]: [
{
linkContentType: ["internalReference", "externalReference"],
},
],
[rich_text_types_1.BLOCKS.EMBEDDED_ENTRY]: [
{
linkContentType: [
"rteMedia",
"rteMediaSlider",
"rteQuote",
"rteIcon",
"rteHint",
"rteImage",
],
},
],
},
},
];
};
exports.getRteValidation = getRteValidation;