@becklyn/contentful-adapter
Version:
[](https://github.com/Becklyn-Studios/contentful-adapter/actions/workflows/ci.yml)
156 lines (155 loc) • 7.13 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBlockThreeColumnsFeaturesMigration = void 0;
const block_1 = require("./block");
const rte_1 = require("../rte");
const translations = {
en: {
blockThreeColumnsFeatures: {
name: "🧩 Block > Features Three Columns",
fields: {
headline: "Headline",
labeledLink: "Button",
entries: "Entries",
},
},
blockThreeColumnsFeaturesEntry: {
name: "🧩 Block > Features Three Columns > Entry",
fields: {
name: "Internal Name",
icon: "Icon",
headline: "Headline",
text: "Text",
backIcon: "Icon (Back)",
backHeadline: "Headline (Back)",
backText: "Text (Back)",
},
},
},
de: {
blockThreeColumnsFeatures: {
name: "🧩 Block > Features Drei Spalten",
fields: {
headline: "Überschrift",
labeledLink: "Button",
entries: "Einträge",
},
},
blockThreeColumnsFeaturesEntry: {
name: "🧩 Block > Features Drei Spalten > Eintrag",
fields: {
name: "Interner Name",
icon: "Icon",
headline: "Überschrift",
text: "Text",
backIcon: "Icon (Rückseite)",
backHeadline: "Überschrift (Rückseite)",
backText: "Text (Rückseite)",
},
},
},
};
const getBlockThreeColumnsFeaturesMigration = (language) => {
const t = translations[language];
return {
component: "blockThreeColumnsFeatures",
migrations: {
1: migration => {
const blockThreeColumnsFeaturesEntry = migration.createContentType("blockThreeColumnsFeaturesEntry", {
name: t.blockThreeColumnsFeaturesEntry.name,
});
blockThreeColumnsFeaturesEntry.createField("name", {
type: "Symbol",
name: t.blockThreeColumnsFeaturesEntry.fields.name,
required: true,
});
blockThreeColumnsFeaturesEntry.createField("headline", {
type: "Symbol",
name: t.blockThreeColumnsFeaturesEntry.fields.headline,
required: true,
});
blockThreeColumnsFeaturesEntry.createField("icon", {
type: "Link",
name: t.blockThreeColumnsFeaturesEntry.fields.icon,
linkType: "Asset",
validations: [{ linkMimetypeGroup: ["image"] }],
});
blockThreeColumnsFeaturesEntry.createField("text", {
type: "RichText",
name: t.blockThreeColumnsFeaturesEntry.fields.text,
validations: (0, rte_1.getRteValidation)(),
});
blockThreeColumnsFeaturesEntry.displayField("name");
const blockThreeColumnsFeatures = migration.createContentType("blockThreeColumnsFeatures", {
name: t.blockThreeColumnsFeatures.name,
});
blockThreeColumnsFeatures.createField("headline", {
type: "Symbol",
name: t.blockThreeColumnsFeatures.fields.headline,
});
blockThreeColumnsFeatures.createField("labeledLink", {
type: "Link",
name: t.blockThreeColumnsFeatures.fields.labeledLink,
linkType: "Entry",
validations: [{ linkContentType: ["labeledLink"] }],
});
blockThreeColumnsFeatures.createField("entries", {
type: "Array",
name: t.blockThreeColumnsFeatures.fields.entries,
items: {
type: "Link",
linkType: "Entry",
validations: [{ linkContentType: ["blockThreeColumnsFeaturesEntry"] }],
},
required: true,
validations: [{ size: { max: 3 } }],
});
(0, block_1.migrateBaseBlockFields)(blockThreeColumnsFeatures, language);
},
2: migration => {
const blockThreeColumnsFeatures = migration.editContentType("blockThreeColumnsFeatures");
blockThreeColumnsFeatures.deleteField("headline");
blockThreeColumnsFeatures.createField("headline", {
type: "RichText",
name: t.blockThreeColumnsFeatures.fields.headline,
validations: (0, rte_1.getRteValidation)(rte_1.RTE_TYPE_HEADLINE),
});
blockThreeColumnsFeatures.moveField("headline").afterField("name");
blockThreeColumnsFeatures.editField("entries").validations([{ size: { max: 9 } }]);
},
3: migration => {
const blockThreeColumnsFeatures = migration.editContentType("blockThreeColumnsFeatures");
blockThreeColumnsFeatures.editField("entries").validations([{ size: { max: 12 } }]);
},
4: migration => {
const blockThreeColumnsFeaturesEntry = migration.editContentType("blockThreeColumnsFeaturesEntry");
blockThreeColumnsFeaturesEntry.createField("backIcon", {
type: "Link",
name: t.blockThreeColumnsFeaturesEntry.fields.backIcon,
linkType: "Asset",
validations: [{ linkMimetypeGroup: ["image"] }],
});
blockThreeColumnsFeaturesEntry.createField("backHeadline", {
type: "RichText",
name: t.blockThreeColumnsFeaturesEntry.fields.backHeadline,
validations: (0, rte_1.getRteValidation)(rte_1.RTE_TYPE_HEADLINE),
});
blockThreeColumnsFeaturesEntry.createField("backText", {
type: "RichText",
name: t.blockThreeColumnsFeaturesEntry.fields.backText,
validations: (0, rte_1.getRteValidation)(),
});
},
5: migration => {
const blockThreeColumnsFeaturesEntry = migration.editContentType("blockThreeColumnsFeaturesEntry");
blockThreeColumnsFeaturesEntry.deleteField("backHeadline");
blockThreeColumnsFeaturesEntry.createField("backHeadline", {
type: "Symbol",
name: t.blockThreeColumnsFeaturesEntry.fields.backHeadline,
});
blockThreeColumnsFeaturesEntry.moveField("backHeadline").beforeField("backText");
},
},
};
};
exports.getBlockThreeColumnsFeaturesMigration = getBlockThreeColumnsFeaturesMigration;