@becklyn/contentful-adapter
Version:
[](https://github.com/Becklyn-Studios/contentful-adapter/actions/workflows/ci.yml)
132 lines (131 loc) • 5.47 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBlockCardsSliderTeaserMigration = exports.VERSION_CARDS_SLIDER_TEASER = void 0;
const block_1 = require("./block");
const rte_1 = require("../rte");
exports.VERSION_CARDS_SLIDER_TEASER = {
en: {
threeEntries: "Three Entries",
fourEntries: "Four Entries",
},
de: {
threeEntries: "Drei Einträge",
fourEntries: "Vier Einträge",
},
};
const translations = {
en: {
blockCardsSliderTeaser: {
name: "🧩 Block > Cards Slider Teaser",
fields: {
overline: "Overline",
headline: "Headline",
labeledLink: "Button",
entries: "Entries",
version: {
name: "Version",
default: exports.VERSION_CARDS_SLIDER_TEASER.en.threeEntries,
in: [
exports.VERSION_CARDS_SLIDER_TEASER.en.threeEntries,
exports.VERSION_CARDS_SLIDER_TEASER.en.fourEntries,
],
},
},
},
},
de: {
blockCardsSliderTeaser: {
name: "🧩 Block > Cards Slider Teaser",
fields: {
overline: "Overline",
headline: "Überschrift",
labeledLink: "Button",
entries: "Einträge",
version: {
name: "Version",
default: exports.VERSION_CARDS_SLIDER_TEASER.de.threeEntries,
in: [
exports.VERSION_CARDS_SLIDER_TEASER.de.threeEntries,
exports.VERSION_CARDS_SLIDER_TEASER.de.fourEntries,
],
},
},
},
},
};
const getBlockCardsSliderTeaserMigration = (language) => {
const t = translations[language];
return {
component: "blockCardsSliderTeaser",
migrations: {
1: migration => {
const blockCardsSliderTeaser = migration.createContentType("blockCardsSliderTeaser", {
name: t.blockCardsSliderTeaser.name,
});
blockCardsSliderTeaser.createField("overline", {
type: "Symbol",
name: t.blockCardsSliderTeaser.fields.overline,
});
blockCardsSliderTeaser.createField("headline", {
type: "Symbol",
name: t.blockCardsSliderTeaser.fields.headline,
required: true,
});
blockCardsSliderTeaser.createField("entries", {
type: "Array",
name: t.blockCardsSliderTeaser.fields.entries,
items: {
type: "Link",
linkType: "Entry",
validations: [{ linkContentType: ["card"] }],
},
required: true,
});
blockCardsSliderTeaser.createField("labeledLink", {
type: "Link",
name: t.blockCardsSliderTeaser.fields.labeledLink,
linkType: "Entry",
validations: [{ linkContentType: ["labeledLink"] }],
});
(0, block_1.migrateBaseBlockFields)(blockCardsSliderTeaser, language);
},
2: migration => {
const blockCardsSliderTeaser = migration.editContentType("blockCardsSliderTeaser");
blockCardsSliderTeaser.deleteField("headline");
blockCardsSliderTeaser.createField("headline", {
type: "RichText",
name: t.blockCardsSliderTeaser.fields.headline,
validations: (0, rte_1.getRteValidation)(rte_1.RTE_TYPE_HEADLINE),
});
blockCardsSliderTeaser.moveField("headline").afterField("name");
},
3: migration => {
const blockCardsSliderTeaser = migration.editContentType("blockCardsSliderTeaser");
blockCardsSliderTeaser.editField("headline").required(true);
blockCardsSliderTeaser.moveField("headline").afterField("overline");
},
4: migration => {
const blockCardsSliderTeaser = migration.editContentType("blockCardsSliderTeaser");
blockCardsSliderTeaser.createField("version", {
type: "Symbol",
name: t.blockCardsSliderTeaser.fields.version.name,
required: true,
defaultValue: {
[language]: t.blockCardsSliderTeaser.fields.version.default,
},
validations: [
{
in: t.blockCardsSliderTeaser.fields.version.in,
},
],
});
blockCardsSliderTeaser.moveField("version").afterField("theme");
},
5: migration => {
const blockCardsSliderTeaser = migration.editContentType("blockCardsSliderTeaser");
blockCardsSliderTeaser.changeFieldControl("version", "builtin", "radio");
},
},
};
};
exports.getBlockCardsSliderTeaserMigration = getBlockCardsSliderTeaserMigration;