UNPKG

@trapi/swagger

Version:

Generate Swagger files from a decorator APIs.

35 lines 2.61 kB
import type { BaseType, EnumType, Extension, IntersectionType, Metadata, NestedObjectLiteralType, Parameter, ParameterSource, RefAliasType, RefEnumType, RefObjectType, ReferenceType, ResolverProperty, UnionType, Validators, VariableType } from '@trapi/metadata'; import type { Options, OptionsInput } from '../config'; import type { DocumentFormat } from '../constants'; import type { DocumentFormatData } from '../type'; import type { BaseSchema, Info, SchemaV2, SchemaV3, SpecV2, SpecV3 } from '../schema'; export declare abstract class AbstractSpecGenerator<Spec extends SpecV2 | SpecV3, Schema extends SchemaV3 | SchemaV2> { protected spec: Spec | undefined; protected readonly metadata: Metadata; protected readonly config: Options; constructor(metadata: Metadata, config: OptionsInput); save(): Promise<Record<`${DocumentFormat}`, DocumentFormatData>>; abstract build(): Promise<Spec>; protected buildInfo(): Info; protected getSchemaForType(type: BaseType): Schema | BaseSchema<Schema>; protected abstract getSchemaForIntersectionType(type: IntersectionType): Schema; protected abstract getSchemaForEnumType(enumType: EnumType): Schema; private getSchemaForPrimitiveType; private getSchemaForArrayType; getSchemaForObjectLiteralType(objectLiteral: NestedObjectLiteralType): BaseSchema<Schema>; protected abstract getSchemaForReferenceType(referenceType: ReferenceType): Schema; protected abstract getSchemaForUnionType(type: UnionType): Schema; protected abstract buildSchemaForRefAlias(referenceType: RefAliasType): Schema; protected abstract buildSchemaForRefEnum(referenceType: RefEnumType): Schema; protected abstract buildSchemaForRefObject(referenceType: RefObjectType): Schema; protected buildSchemasForReferenceTypes(extendFn?: (output: Schema, input: ReferenceType) => void): Record<string, Schema>; protected isUndefinedProperty(input: ResolverProperty): boolean; protected abstract buildProperties(properties: ResolverProperty[]): Record<string, Schema>; protected determineTypesUsedInEnum(anEnum: Array<string | number | boolean | null>): VariableType[]; protected decideEnumType(input: Array<string | number | boolean>): 'string' | 'number' | 'boolean'; protected getOperationId(name: string): string; protected groupParameters(items: Parameter[]): Partial<Record<ParameterSource, Parameter[]>>; protected transformExtensions(input?: Extension[]): Record<string, any>; protected transformValidators(input?: Validators): Record<string, any>; } //# sourceMappingURL=abstract.d.ts.map