UNPKG

@trapi/swagger

Version:

Generate Swagger files from a decorator APIs.

139 lines 3.42 kB
import type { CollectionFormat } from '@trapi/metadata'; import type { DataFormatName, DataTypeName } from './constants'; import type { ParameterSourceV2 } from './v2'; export interface BaseSpec { info: Info; tags?: Tag[]; externalDocs?: ExternalDocs; } export type Info = { title: string; version: string; description?: string; termsOfService?: string; contact?: Contact; license?: License; }; type Contact = { name?: string; email?: string; url?: string; }; type License = { name: string; url?: string; }; type ExternalDocs = { url: string; description?: string; }; type Tag = { name: string; description?: string; externalDocs?: ExternalDocs; }; export interface BaseResponse { description: string; } export interface BaseOperation<P, R> { responses: { [name: string]: R; }; summary?: string; description?: string; externalDocs?: ExternalDocs; operationId?: string; consumes?: string[]; parameters?: P[]; schemes?: string[]; deprecated?: boolean; security?: Record<string, string[]>[]; tags?: string[]; } export interface Example { value: unknown | unknown[]; summary?: string; description?: string; } export interface BaseSchema<T> { type?: `${DataTypeName}`; format?: `${DataFormatName}`; title?: string; description?: string; default?: string | boolean | number | any; multipleOf?: number; maximum?: number; exclusiveMaximum?: number; minimum?: number; exclusiveMinimum?: number; maxLength?: number; minLength?: number; pattern?: string; maxItems?: number; minItems?: number; uniqueItems?: boolean; maxProperties?: number; minProperties?: number; enum?: Array<string | number | boolean>; 'x-enum-varnames'?: string[]; items?: T | BaseSchema<T> | any; additionalProperties?: boolean | { [ref: string]: string; } | T; properties?: { [propertyName: string]: T; }; discriminator?: string; readOnly?: boolean; xml?: XML; externalDocs?: ExternalDocs; example?: { [exampleName: string]: Example; } | unknown; required?: string[]; $ref?: string; } interface XML { type?: string; namespace?: string; prefix?: string; attribute?: string; wrapped?: boolean; } export interface BaseParameter { name: string; in: `${ParameterSourceV2}`; required?: boolean; description?: string; } export interface BodyParameter extends BaseParameter { in: `${ParameterSourceV2.BODY}`; } export interface QueryParameter extends BaseParameter { in: `${ParameterSourceV2.QUERY}`; allowEmptyValue?: boolean; collectionFormat?: `${CollectionFormat}`; } export interface PathParameter extends BaseParameter { in: `${ParameterSourceV2.PATH}`; } export interface HeaderParameter extends BaseParameter { in: `${ParameterSourceV2.HEADER}`; } export interface FormDataParameter extends BaseParameter { in: `${ParameterSourceV2.FORM_DATA}`; collectionFormat?: `${CollectionFormat}`; } export interface Path<Operation, Parameter> { $ref?: string; get?: Operation; put?: Operation; post?: Operation; delete?: Operation; options?: Operation; head?: Operation; patch?: Operation; parameters?: Parameter[]; } export {}; //# sourceMappingURL=type.d.ts.map