@mintlify/validation
Version:
Validates mint.json files
42 lines (41 loc) • 1.4 kB
JavaScript
import { apiParamFieldOptions, requestExampleLanguages } from '@mintlify/models';
import { z } from 'zod';
import { openapiStringSchema } from './openapiString.js';
export const openApiSchema = z
.union([openapiStringSchema, z.array(openapiStringSchema)])
.describe('A string or an array of strings of absolute or relative urls pointing to your OpenAPI files');
export const apiSchema = z
.object({
baseUrl: z.union([z.string().url(), z.array(z.string().url())]).optional(),
auth: z
.object({
method: z.enum(['bearer', 'basic', 'key', 'cobo']).optional(),
name: z.string().optional(),
inputPrefix: z.string().optional(), // deprecated
})
.strict()
.optional(),
playground: z
.object({
mode: z.enum(['show', 'simple', 'hide']).optional().default('show'),
disableProxy: z.boolean().optional(),
})
.optional(),
request: z
.object({
example: z
.object({
showOptionalParams: z.boolean().optional(),
languages: z.array(z.union([z.enum(requestExampleLanguages), z.string()])).optional(),
})
.optional(),
})
.optional(),
maintainOrder: z.boolean().optional(),
paramFields: z
.object({
expanded: z.enum(apiParamFieldOptions).optional(),
})
.optional(),
})
.strict();