Cygni_backend/node_modules/@tsoa/cli/dist/swagger/specGenerator3.d.ts

181 lines
6.2 KiB
TypeScript

import { Swagger, Tsoa } from '@tsoa/runtime';
import { ExtendedSpecConfig } from '../cli';
import { SpecGenerator } from './specGenerator';
/**
* TODO:
* Handle formData parameters
* Handle requestBodies of type other than json
* Handle requestBodies as reusable objects
* Handle headers, examples, responses, etc.
* Cleaner interface between SpecGenerator2 and SpecGenerator3
* Also accept OpenAPI 3.0.0 metadata, like components/securitySchemes instead of securityDefinitions
*/
export declare class SpecGenerator3 extends SpecGenerator {
protected readonly metadata: Tsoa.Metadata;
protected readonly config: ExtendedSpecConfig;
constructor(metadata: Tsoa.Metadata, config: ExtendedSpecConfig);
GetSpec(): Swagger.Spec3;
private buildInfo;
private buildComponents;
private translateSecurityDefinitions;
private hasOAuthFlow;
private hasOAuthFlows;
private buildServers;
private buildSchema;
private buildPaths;
private buildMethod;
protected buildOperation(controllerName: string, method: Tsoa.Method, defaultProduces?: string[]): Swagger.Operation3;
private buildRequestBodyWithFormData;
private buildRequestBody;
private buildMediaType;
private buildQueriesParameter;
private buildParameter;
protected buildProperties(source: Tsoa.Property[]): {
[propertyName: string]: Swagger.Schema3;
};
protected getSwaggerTypeForReferenceType(referenceType: Tsoa.ReferenceType): Swagger.BaseSchema;
protected getSwaggerTypeForPrimitiveType(dataType: Tsoa.PrimitiveTypeLiteral): Swagger.Schema;
private isNull;
private groupEnums;
protected removeDuplicateSwaggerTypes(types: Array<Swagger.Schema | Swagger.BaseSchema>): Array<Swagger.Schema | Swagger.BaseSchema>;
protected getSwaggerTypeForUnionType(type: Tsoa.UnionType, title?: string): {
allOf: (Swagger.Schema | Swagger.BaseSchema)[];
nullable: true;
} | {
nullable: true;
type?: Swagger.DataType;
format?: Swagger.DataFormat;
additionalProperties?: boolean | Swagger.BaseSchema;
properties?: {
[propertyName: string]: Swagger.Schema3;
};
discriminator?: string;
readOnly?: boolean;
xml?: Swagger.XML;
externalDocs?: Swagger.ExternalDocs;
example?: unknown;
required?: string[];
$ref?: string;
title?: string;
description?: string;
default?: string | boolean | number | unknown;
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<boolean | string | number | null>;
'x-enum-varnames'?: string[];
items?: Swagger.BaseSchema;
allOf?: undefined;
} | {
nullable: true;
type?: string;
format?: Swagger.DataFormat;
$ref?: string;
title?: string;
description?: string;
default?: string | boolean | number | unknown;
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<boolean | string | number | null>;
'x-enum-varnames'?: string[];
items?: Swagger.BaseSchema;
allOf?: undefined;
} | {
anyOf: (Swagger.Schema | Swagger.BaseSchema)[];
nullable: true;
title?: string | undefined;
allOf?: undefined;
} | {
type?: Swagger.DataType;
format?: Swagger.DataFormat;
additionalProperties?: boolean | Swagger.BaseSchema;
properties?: {
[propertyName: string]: Swagger.Schema3;
};
discriminator?: string;
readOnly?: boolean;
xml?: Swagger.XML;
externalDocs?: Swagger.ExternalDocs;
example?: unknown;
required?: string[];
$ref?: string;
title?: string;
description?: string;
default?: string | boolean | number | unknown;
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<boolean | string | number | null>;
'x-enum-varnames'?: string[];
items?: Swagger.BaseSchema;
allOf?: undefined;
nullable?: undefined;
} | {
type?: string;
format?: Swagger.DataFormat;
$ref?: string;
title?: string;
description?: string;
default?: string | boolean | number | unknown;
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<boolean | string | number | null>;
'x-enum-varnames'?: string[];
items?: Swagger.BaseSchema;
allOf?: undefined;
nullable?: undefined;
} | {
anyOf: (Swagger.Schema | Swagger.BaseSchema)[];
title?: string | undefined;
allOf?: undefined;
nullable?: undefined;
};
protected getSwaggerTypeForIntersectionType(type: Tsoa.IntersectionType, title?: string): {
title?: string | undefined;
allOf: (Swagger.Schema | Swagger.BaseSchema)[];
};
protected getSwaggerTypeForEnumType(enumType: Tsoa.EnumType, title?: string): Swagger.Schema3;
}