@becklyn/contentful-adapter
Version:
[](https://github.com/Becklyn-Studios/contentful-adapter/actions/workflows/ci.yml)
84 lines (83 loc) • 3.08 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBlockTextMigration = void 0;
const block_1 = require("./block");
const rte_1 = require("../rte");
const translations = {
en: {
blockText: {
name: "🧩 Block > Text",
fields: {
overline: "Overline",
headline: "Headline",
text: "Text",
labeledLink: "Button",
},
},
},
de: {
blockText: {
name: "🧩 Block > Text",
fields: {
overline: "Overline",
headline: "Überschrift",
text: "Text",
labeledLink: "Button",
},
},
},
};
const getBlockTextMigration = (language) => {
const t = translations[language];
return {
component: "blockText",
migrations: {
1: migration => {
const blockText = migration.createContentType("blockText", {
name: t.blockText.name,
});
blockText.createField("overline", {
type: "Symbol",
name: t.blockText.fields.overline,
});
blockText.createField("headline", {
type: "Symbol",
name: t.blockText.fields.headline,
required: true,
});
blockText.createField("text", {
type: "RichText",
name: t.blockText.fields.text,
validations: (0, rte_1.getRteValidation)(rte_1.RTE_TYPE_STYLED_FONT_AND_LIST),
});
(0, block_1.migrateBaseBlockFields)(blockText, language);
},
2: migration => {
const blockText = migration.editContentType("blockText");
blockText.deleteField("headline");
blockText.createField("headline", {
type: "RichText",
name: t.blockText.fields.headline,
validations: (0, rte_1.getRteValidation)(rte_1.RTE_TYPE_HEADLINE),
});
blockText.moveField("headline").afterField("name");
},
3: migration => {
const blockText = migration.editContentType("blockText");
blockText.editField("headline").required(true);
blockText.moveField("headline").afterField("overline");
},
4: migration => {
const blockText = migration.editContentType("blockText");
blockText.createField("labeledLink", {
type: "Link",
name: t.blockText.fields.labeledLink,
linkType: "Entry",
validations: [{ linkContentType: ["labeledLink"] }],
});
blockText.moveField("labeledLink").afterField("text");
},
},
};
};
exports.getBlockTextMigration = getBlockTextMigration;