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)

160 lines (159 loc) 6.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBlockTextImageMigration = exports.VERSION_BLOCK_TEXT_IMAGE = void 0; const block_1 = require("./block"); const rte_1 = require("../rte"); exports.VERSION_BLOCK_TEXT_IMAGE = { en: { imageLeft: "Image left", imageRight: "Image right", }, de: { imageLeft: "Bild links", imageRight: "Bild rechts", }, }; const translations = { en: { blockTextImage: { name: "🧩 Block > Text Image", fields: { overline: "Overline", headline: "Headline", text: "Text", image: "Image", labeledLink: "Button", secondaryLabeledLink: "Secondary Button", version: { name: "Version", default: exports.VERSION_BLOCK_TEXT_IMAGE.en.imageLeft, in: [ exports.VERSION_BLOCK_TEXT_IMAGE.en.imageLeft, exports.VERSION_BLOCK_TEXT_IMAGE.en.imageRight, ], }, isSeoHeadline: "Is SEO headline?", }, }, }, de: { blockTextImage: { name: "🧩 Block > Text Bild", fields: { overline: "Overline", headline: "Überschrift", text: "Text", image: "Bild", labeledLink: "Button", secondaryLabeledLink: "Zweitrangiger Button", version: { name: "Version", default: exports.VERSION_BLOCK_TEXT_IMAGE.de.imageLeft, in: [ exports.VERSION_BLOCK_TEXT_IMAGE.de.imageLeft, exports.VERSION_BLOCK_TEXT_IMAGE.de.imageRight, ], }, isSeoHeadline: "Ist SEO Überschrift?", }, }, }, }; const getBlockTextImageMigration = (language) => { const t = translations[language]; return { component: "blockTextImage", migrations: { 1: migration => { const t = translations[language]; const blockTextImage = migration.createContentType("blockTextImage", { name: t.blockTextImage.name, }); blockTextImage.createField("overline", { type: "Symbol", name: t.blockTextImage.fields.overline, }); blockTextImage.createField("headline", { type: "Symbol", name: t.blockTextImage.fields.headline, required: true, }); blockTextImage.createField("text", { type: "RichText", name: t.blockTextImage.fields.text, validations: (0, rte_1.getRteValidation)(rte_1.RTE_TYPE_STYLED_FONT_AND_LIST), }); blockTextImage.createField("image", { type: "Link", name: t.blockTextImage.fields.image, linkType: "Asset", validations: [{ linkMimetypeGroup: ["image"] }], required: true, }); blockTextImage.createField("labeledLink", { type: "Link", name: t.blockTextImage.fields.labeledLink, linkType: "Entry", validations: [{ linkContentType: ["labeledLink"] }], }); blockTextImage.createField("version", { type: "Symbol", name: t.blockTextImage.fields.version.name, required: true, defaultValue: { [language]: t.blockTextImage.fields.version.default, }, validations: [ { in: t.blockTextImage.fields.version.in, }, ], }); blockTextImage.changeFieldControl("version", "builtin", "radio"); (0, block_1.migrateBaseBlockFields)(blockTextImage, language); }, 2: migration => { const blockTextImage = migration.editContentType("blockTextImage"); blockTextImage.deleteField("headline"); blockTextImage.createField("headline", { type: "RichText", name: t.blockTextImage.fields.headline, validations: (0, rte_1.getRteValidation)(rte_1.RTE_TYPE_HEADLINE), }); blockTextImage.moveField("headline").afterField("name"); }, 3: migration => { const blockTextImage = migration.editContentType("blockTextImage"); blockTextImage.editField("headline").required(true); blockTextImage.moveField("headline").afterField("overline"); }, 4: migration => { const blockTextImage = migration.editContentType("blockTextImage"); blockTextImage.createField("secondaryLabeledLink", { type: "Link", name: t.blockTextImage.fields.secondaryLabeledLink, linkType: "Entry", validations: [{ linkContentType: ["labeledLink"] }], }); blockTextImage.moveField("secondaryLabeledLink").afterField("labeledLink"); }, 5: migration => { const blockTextImage = migration.editContentType("blockTextImage"); blockTextImage.createField("isSeoHeadline", { type: "Boolean", name: t.blockTextImage.fields.isSeoHeadline, }); blockTextImage.moveField("isSeoHeadline").beforeField("headline"); }, 6: migration => { const blockTextImage = migration.editContentType("blockTextImage"); blockTextImage.editField("text", { type: "RichText", name: t.blockTextImage.fields.text, validations: (0, rte_1.getRteValidation)(rte_1.RTE_TYPE_FULL), }); }, }, }; }; exports.getBlockTextImageMigration = getBlockTextImageMigration;