UNPKG

@prismicio/types-internal

Version:
168 lines (167 loc) 8.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NestableLegacy = exports.isNestableContent = exports.NestableContentDefaultValue = exports.NestableContent = void 0; const tslib_1 = require("tslib"); const Either_1 = require("fp-ts/lib/Either"); const t = (0, tslib_1.__importStar)(require("io-ts")); const EmptyContent_1 = require("../EmptyContent"); const BooleanContent_1 = require("./BooleanContent"); const EmbedContent_1 = require("./EmbedContent"); const FieldContent_1 = require("./FieldContent"); const common_1 = require("./FieldContent/common"); const GeoPointContent_1 = require("./GeoPointContent"); const ImageContent_1 = require("./ImageContent"); const IntegrationFieldContent_1 = require("./IntegrationFieldContent"); const LinkContent_1 = require("./LinkContent"); const RepeatableContent_1 = require("./RepeatableContent"); const RichTextContent_1 = require("./RichTextContent"); const SeparatorContent_1 = require("./SeparatorContent"); const TableContent_1 = require("./TableContent"); exports.NestableContent = t.union([ EmptyContent_1.EmptyContent, BooleanContent_1.BooleanContent, EmbedContent_1.EmbedContent, FieldContent_1.TextContent, FieldContent_1.TimestampContent, FieldContent_1.SelectContent, FieldContent_1.RangeContent, FieldContent_1.NumberContent, FieldContent_1.DateContent, FieldContent_1.ColorContent, GeoPointContent_1.GeoPointContent, ImageContent_1.ImageContent, IntegrationFieldContent_1.IntegrationFieldContent, LinkContent_1.LinkContent, RichTextContent_1.RichTextContent, SeparatorContent_1.SeparatorContent, TableContent_1.TableContent, RepeatableContent_1.RepeatableContent, ]); const NestableContentDefaultValue = (widgetDef) => { switch (widgetDef.type) { case "Boolean": return (0, BooleanContent_1.BooleanContentDefaultValue)(widgetDef); case "Select": return (0, FieldContent_1.SelectContentDefaultValue)(widgetDef); default: return undefined; } }; exports.NestableContentDefaultValue = NestableContentDefaultValue; const isNestableContent = (u) => (0, FieldContent_1.isTextContent)(u) || (0, FieldContent_1.isColorContent)(u) || (0, FieldContent_1.isDateContent)(u) || (0, FieldContent_1.isTimestampContent)(u) || (0, FieldContent_1.isNumberContent)(u) || (0, FieldContent_1.isRangeContent)(u) || (0, FieldContent_1.isSelectContent)(u) || (0, GeoPointContent_1.isGeoPointContent)(u) || (0, RichTextContent_1.isRichTextContent)(u) || (0, BooleanContent_1.isBooleanContent)(u) || (0, EmbedContent_1.isEmbedContent)(u) || (0, ImageContent_1.isImageContent)(u) || (0, IntegrationFieldContent_1.isIntegrationFieldContent)(u) || (0, LinkContent_1.isLinkContent)(u) || (0, SeparatorContent_1.isSeparatorContent)(u) || (0, TableContent_1.isTableContent)(u) || (0, EmptyContent_1.isEmptyContent)(u) || (0, RepeatableContent_1.isRepeatableContent)(u); exports.isNestableContent = isNestableContent; const NestableLegacy = (ctx) => { return { decode(value) { if (!ctx.fieldType) return; const nullValue = (0, EmptyContent_1.EmptyLegacy)(ctx.fieldType).decode(value); if ((0, Either_1.isRight)(nullValue)) return nullValue; const codec = (() => { switch (ctx.fieldType) { case "Text": return (0, FieldContent_1.TextLegacy)(ctx); case "Color": return (0, FieldContent_1.ColorLegacy)(ctx); case "Date": return (0, FieldContent_1.DateLegacy)(ctx); case "Timestamp": return (0, FieldContent_1.TimestampLegacy)(ctx); case "Number": return (0, FieldContent_1.NumberLegacy)(ctx); case "Range": return (0, FieldContent_1.RangeLegacy)(ctx); case "Select": return (0, FieldContent_1.SelectLegacy)(ctx); case "GeoPoint": return (0, GeoPointContent_1.GeoPointLegacy)(ctx); case "StructuredText": return (0, RichTextContent_1.RichTextLegacy)(ctx); case "Boolean": return (0, BooleanContent_1.BooleanLegacy)(ctx); case "Embed": return (0, EmbedContent_1.EmbedLegacy)(ctx); case "Image": return (0, ImageContent_1.ImageLegacy)(ctx); case "IntegrationFields": return (0, IntegrationFieldContent_1.IntegrationFieldLegacy)(ctx); case "Link": return (0, LinkContent_1.LinkContentLegacy)(ctx); case "Separator": return (0, SeparatorContent_1.SeparatorLegacy)(ctx); case "Table": return (0, TableContent_1.TableLegacy)(ctx); case "Repeatable.Link": return (0, RepeatableContent_1.RepeatableLegacy)(ctx, "Link"); default: return; } })(); if (!codec) return; return codec.decode(value); }, encode(value) { switch (value.__TYPE__) { case common_1.FieldContentType: { if (value.type === "Text") return (0, FieldContent_1.TextLegacy)(ctx).encode(value); if (value.type === "Color") return (0, FieldContent_1.ColorLegacy)(ctx).encode(value); if (value.type === "Range") return (0, FieldContent_1.RangeLegacy)(ctx).encode(value); if (value.type === "Date") return (0, FieldContent_1.DateLegacy)(ctx).encode(value); if (value.type === "Number") return (0, FieldContent_1.NumberLegacy)(ctx).encode(value); if (value.type === "Timestamp") return (0, FieldContent_1.TimestampLegacy)(ctx).encode(value); if (value.type === "Select") return (0, FieldContent_1.SelectLegacy)(ctx).encode(value); return; } case GeoPointContent_1.GeoPointContentType: return (0, GeoPointContent_1.GeoPointLegacy)(ctx).encode(value); case RichTextContent_1.RichTextContentType: return (0, RichTextContent_1.RichTextLegacy)(ctx).encode(value); case EmbedContent_1.EmbedContentType: return (0, EmbedContent_1.EmbedLegacy)(ctx).encode(value); case BooleanContent_1.BooleanContentType: return (0, BooleanContent_1.BooleanLegacy)(ctx).encode(value); case ImageContent_1.ImageContentType: return (0, ImageContent_1.ImageLegacy)(ctx).encode(value); case IntegrationFieldContent_1.IntegrationFieldContentType: return (0, IntegrationFieldContent_1.IntegrationFieldLegacy)(ctx).encode(value); case LinkContent_1.LinkContentType: return (0, LinkContent_1.LinkContentLegacy)(ctx).encode(value); case SeparatorContent_1.SeparatorContentType: return (0, SeparatorContent_1.SeparatorLegacy)(ctx).encode(value); case TableContent_1.TableContentType: return (0, TableContent_1.TableLegacy)(ctx).encode(value); case "RepeatableContent": return (0, RepeatableContent_1.RepeatableLegacy)(ctx, value.type).encode(value); default: return; } }, }; }; exports.NestableLegacy = NestableLegacy;