43 lines
995 B
TypeScript
43 lines
995 B
TypeScript
import { z } from "zod"
|
|
|
|
import {
|
|
accountPageSchema,
|
|
campaignOverviewPageSchema,
|
|
campaignPageSchema,
|
|
collectionPageSchema,
|
|
contentPageSchema,
|
|
destinationCityPageSchema,
|
|
destinationCountryPageSchema,
|
|
destinationOverviewPageSchema,
|
|
hotelPageSchema,
|
|
loyaltyPageSchema,
|
|
startPageSchema,
|
|
transformPageLink,
|
|
} from "../pageLinks"
|
|
import { imageContainerSchema } from "./imageContainer"
|
|
import { sysAssetSchema } from "./sysAsset"
|
|
|
|
export const contentEmbedsSchema = z
|
|
.discriminatedUnion("__typename", [
|
|
imageContainerSchema,
|
|
sysAssetSchema,
|
|
accountPageSchema,
|
|
campaignOverviewPageSchema,
|
|
campaignPageSchema,
|
|
collectionPageSchema,
|
|
contentPageSchema,
|
|
destinationCityPageSchema,
|
|
destinationCountryPageSchema,
|
|
destinationOverviewPageSchema,
|
|
hotelPageSchema,
|
|
loyaltyPageSchema,
|
|
startPageSchema,
|
|
])
|
|
.transform((data) => {
|
|
const link = transformPageLink(data)
|
|
if (link) {
|
|
return link
|
|
}
|
|
return data
|
|
})
|