UNPKG

@mintlify/validation

Version:

Validates mint.json files

35 lines (34 loc) 1.1 kB
import { z } from 'zod'; import { iconSchema } from './reusable/icon.js'; export const contextualOptions = ['copy', 'view', 'chatgpt', 'claude', 'perplexity']; export const contextualHrefPresetValues = ['$page', '$path']; export const DetailedContextualHrefSchema = z.object({ base: z.string(), query: z .array(z.object({ key: z.string(), value: z.string(), })) .optional(), }); export const customContextualOption = z .object({ title: z.string(), description: z.string(), icon: iconSchema.optional(), href: z.union([z.string(), DetailedContextualHrefSchema]), }) .describe('Custom contextual option'); export const contextualSchema = z .object({ options: z .array(z.union([z.enum(contextualOptions), customContextualOption])) .describe('Contextual options') .refine((options) => { const uniqueOptions = new Set(options); return uniqueOptions.size === options.length; }, { message: 'Each contextual option can only appear once', }), }) .describe('Contextual options');