Files
web/server/routers/contentstack/myPages/navigation/output.ts
Erik Tiekstra bf76c6277f Merged in feat/support-for-all-page-links (pull request #1212)
Feat/support for all page links

* feat: added all page link connections to queries

* feat: updated output files


Approved-by: Fredrik Thorsson
Approved-by: Matilda Landström
2025-01-27 11:21:37 +00:00

91 lines
1.8 KiB
TypeScript

import { z } from "zod"
import { Lang } from "@/constants/languages"
import { linkRefsUnionSchema, linkUnionSchema } from "../../schemas/pageLinks"
import { systemSchema } from "../../schemas/system"
const pageConnection = z.object({
edges: z.array(
z.object({
node: linkUnionSchema,
})
),
})
const pageConnectionRefs = z.object({
edges: z.array(
z.object({
node: linkRefsUnionSchema,
})
),
})
export const navigationRefsPayloadSchema = z.object({
all_navigation_my_pages: z.object({
items: z.array(
z.object({
menu_items: z.array(
z.object({
links: z.array(
z.object({
page: pageConnectionRefs,
})
),
})
),
system: systemSchema,
})
),
}),
})
export type GetNavigationMyPagesRefsData = z.infer<
typeof navigationRefsPayloadSchema
>
const menuItems = z.array(
z.object({
display_sign_out_link: z.boolean(),
links: z.array(
z.object({
link_text: z.string().default(""),
page: pageConnection,
})
),
})
)
export type MenuItems = z.infer<typeof menuItems>
export const navigationPayloadSchema = z.object({
all_navigation_my_pages: z.object({
items: z.array(
z.object({
menu_items: menuItems,
title: z.string(),
})
),
}),
})
export type GetNavigationMyPagesData = z.infer<typeof navigationPayloadSchema>
const link = z.object({
lang: z.nativeEnum(Lang),
linkText: z.string(),
uid: z.string(),
url: z.string(),
originalUrl: z.string().optional(),
})
export const getNavigationSchema = z.object({
menuItems: z.array(
z.object({
display_sign_out_link: z.boolean(),
links: z.array(link),
})
),
title: z.string(),
})