51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
import type { FastifySchema } from "fastify";
|
|
|
|
export type SwaggerValueType =
|
|
| string
|
|
| number
|
|
| boolean
|
|
| null
|
|
| SwaggerValueType[]
|
|
| { [key: string]: SwaggerValueType };
|
|
|
|
type SwaggerMediaType = "object" | "string" | "integer" | "boolean" | "array" | "number";
|
|
type SwaggerMediaFormat =
|
|
| "binary"
|
|
| "base64"
|
|
| "uuid"
|
|
| "email"
|
|
| "date"
|
|
| "date-time"
|
|
| "password"
|
|
| "byte"
|
|
| "uri"
|
|
| "hostname"
|
|
| "ipv4"
|
|
| "ipv6";
|
|
|
|
export type SwaggerMessage = {
|
|
type?: SwaggerMediaType;
|
|
description?: string;
|
|
format?: SwaggerMediaFormat;
|
|
pattern?: string;
|
|
nullable?: boolean;
|
|
uniqueItems?: boolean;
|
|
writeOnly?: boolean;
|
|
readOnly?: boolean;
|
|
items?: SwaggerMessage;
|
|
additionalProperties?: SwaggerMessage | boolean;
|
|
properties?: Record<string, SwaggerMessage | Record<string, SwaggerValueType>>;
|
|
examples?: SwaggerValueType[];
|
|
example?: SwaggerValueType;
|
|
required?: string[];
|
|
oneOf?: SwaggerMessage[];
|
|
allOf?: SwaggerMessage[];
|
|
};
|
|
|
|
export type SwaggerSchema = FastifySchema & {
|
|
params?: SwaggerMessage;
|
|
body?: SwaggerMessage;
|
|
querystring?: SwaggerMessage;
|
|
response?: Record<number, SwaggerMessage>;
|
|
};
|