UNPKG

@becklyn/contentful-adapter

Version:

[![CI](https://github.com/Becklyn-Studios/contentful-adapter/actions/workflows/ci.yml/badge.svg)](https://github.com/Becklyn-Studios/contentful-adapter/actions/workflows/ci.yml)

135 lines (134 loc) 5.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBlockCardsTeaserMigration = exports.VERSION_CARDS_TEASER = void 0; const block_1 = require("./block"); const rte_1 = require("../rte"); exports.VERSION_CARDS_TEASER = { en: { default: "Default", multiLine: "Multi Line", }, de: { default: "Standard", multiLine: "Mehrzeilig", }, }; const translations = { en: { blockCardsTeaser: { name: "🧩 Block > Cards Teaser", fields: { overline: "Overline", headline: "Headline", text: "Text", labeledLink: "Button", entries: "Entries", version: { name: "Version", default: exports.VERSION_CARDS_TEASER.en.default, in: [exports.VERSION_CARDS_TEASER.en.default, exports.VERSION_CARDS_TEASER.en.multiLine], }, }, }, }, de: { blockCardsTeaser: { name: "🧩 Block > Cards Teaser", fields: { overline: "Overline", headline: "Überschrift", text: "Text", labeledLink: "Button", entries: "Einträge", version: { name: "Version", default: exports.VERSION_CARDS_TEASER.de.default, in: [exports.VERSION_CARDS_TEASER.de.default, exports.VERSION_CARDS_TEASER.de.multiLine], }, }, }, }, }; const getBlockCardsTeaserMigration = (language) => { const t = translations[language]; return { component: "blockCardsTeaser", migrations: { 1: migration => { const blockCardsTeaser = migration.createContentType("blockCardsTeaser", { name: t.blockCardsTeaser.name, }); blockCardsTeaser.createField("overline", { type: "Symbol", name: t.blockCardsTeaser.fields.overline, }); blockCardsTeaser.createField("headline", { type: "Symbol", name: t.blockCardsTeaser.fields.headline, required: true, }); blockCardsTeaser.createField("text", { type: "RichText", name: t.blockCardsTeaser.fields.text, validations: (0, rte_1.getRteValidation)(), }); blockCardsTeaser.createField("entries", { type: "Array", name: t.blockCardsTeaser.fields.entries, items: { type: "Link", linkType: "Entry", validations: [{ linkContentType: ["card"] }], }, required: true, validations: [{ size: { min: 2, max: 3 } }], }); blockCardsTeaser.createField("labeledLink", { type: "Link", name: t.blockCardsTeaser.fields.labeledLink, linkType: "Entry", validations: [{ linkContentType: ["labeledLink"] }], }); (0, block_1.migrateBaseBlockFields)(blockCardsTeaser, language); }, 2: migration => { const blockCardsTeaser = migration.editContentType("blockCardsTeaser"); blockCardsTeaser.deleteField("headline"); blockCardsTeaser.createField("headline", { type: "RichText", name: t.blockCardsTeaser.fields.headline, validations: (0, rte_1.getRteValidation)(rte_1.RTE_TYPE_HEADLINE), }); blockCardsTeaser.moveField("headline").afterField("name"); }, 3: migration => { const blockCardsTeaser = migration.editContentType("blockCardsTeaser"); blockCardsTeaser.editField("headline").required(true); blockCardsTeaser.moveField("headline").afterField("overline"); }, 4: migration => { const blockCardsTeaser = migration.editContentType("blockCardsTeaser"); blockCardsTeaser.editField("entries").validations([{ size: { min: 2 } }]); }, 5: migration => { const blockCardsTeaser = migration.editContentType("blockCardsTeaser"); blockCardsTeaser.createField("version", { type: "Symbol", name: t.blockCardsTeaser.fields.version.name, required: true, defaultValue: { [language]: t.blockCardsTeaser.fields.version.default, }, validations: [ { in: t.blockCardsTeaser.fields.version.in, }, ], }); blockCardsTeaser.changeFieldControl("version", "builtin", "radio"); blockCardsTeaser.moveField("version").afterField("theme"); }, }, }; }; exports.getBlockCardsTeaserMigration = getBlockCardsTeaserMigration;