@prismicio/types-internal
Version:
Prismic types for Custom Types and Prismic Data
58 lines (57 loc) • 2.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WidgetLegacy = exports.isWidgetContent = exports.WidgetContent = void 0;
const tslib_1 = require("tslib");
const t = (0, tslib_1.__importStar)(require("io-ts"));
const GroupContent_1 = require("./GroupContent");
const nestable_1 = require("./nestable");
const slices_1 = require("./slices");
const UIDContent_1 = require("./UIDContent");
exports.WidgetContent = t.union([
GroupContent_1.GroupContent,
nestable_1.NestableContent,
UIDContent_1.UIDContent,
slices_1.SlicesContent,
]);
const isWidgetContent = (u) => (0, GroupContent_1.isGroupContent)(u) ||
(0, nestable_1.isNestableContent)(u) ||
(0, UIDContent_1.isUIDContent)(u) ||
(0, slices_1.isSlicesContent)(u);
exports.isWidgetContent = isWidgetContent;
const WidgetLegacy = (ctx) => {
return {
decode(value) {
if (!ctx.fieldType)
return;
const codec = (() => {
switch (ctx.fieldType) {
case "UID":
return (0, UIDContent_1.UIDLegacy)(ctx);
case "Group":
return (0, GroupContent_1.GroupLegacy)(ctx);
case "Choice":
case "Slices":
return (0, slices_1.SlicesLegacy)(ctx);
default:
return (0, nestable_1.NestableLegacy)(ctx);
}
})();
if (!codec)
return;
return codec.decode(value);
},
encode(value) {
switch (value.__TYPE__) {
case UIDContent_1.UIDContentType:
return (0, UIDContent_1.UIDLegacy)(ctx).encode(value);
case GroupContent_1.GroupContentType:
return (0, GroupContent_1.GroupLegacy)(ctx).encode(value);
case slices_1.SlicesContentType:
return (0, slices_1.SlicesLegacy)(ctx).encode(value);
default:
return (0, nestable_1.NestableLegacy)(ctx).encode(value);
}
},
};
};
exports.WidgetLegacy = WidgetLegacy;