UNPKG

@typespec/openapi3

Version:

TypeSpec library for emitting OpenAPI 3.0 and OpenAPI 3.1 from the TypeSpec REST protocol binding and converting OpenAPI3 to TypeSpec

33 lines 1.88 kB
import { AssetEmitter } from "@typespec/asset-emitter"; import { EmitContext, ModelProperty, Namespace, Program, Scalar } from "@typespec/compiler"; import { MetadataInfo } from "@typespec/http"; import { JsonSchemaModule } from "./json-schema.js"; import { OpenAPI3EmitterOptions, OpenAPIVersion } from "./lib.js"; import { ResolvedOpenAPI3EmitterOptions } from "./openapi.js"; import { OpenAPI3Schema, OpenAPISchema3_1, SupportedOpenAPIDocuments } from "./types.js"; import { VisibilityUsageTracker } from "./visibility-usage.js"; import { XmlModule } from "./xml-module.js"; export type CreateSchemaEmitter = (props: { program: Program; context: EmitContext<OpenAPI3EmitterOptions>; metadataInfo: MetadataInfo; visibilityUsage: VisibilityUsageTracker; options: ResolvedOpenAPI3EmitterOptions; optionalDependencies: { jsonSchemaModule?: JsonSchemaModule; xmlModule?: XmlModule; }; }) => AssetEmitter<OpenAPI3Schema | OpenAPISchema3_1, OpenAPI3EmitterOptions>; export interface OpenApiSpecSpecificProps { applyEncoding(program: Program, typespecType: Scalar | ModelProperty, target: OpenAPI3Schema, options: ResolvedOpenAPI3EmitterOptions): OpenAPI3Schema & OpenAPISchema3_1; createRootDoc: (program: Program, serviceType: Namespace, serviceVersion?: string) => SupportedOpenAPIDocuments; createSchemaEmitter: CreateSchemaEmitter; /** * Returns the binary description for an unencoded binary type * @see https://spec.openapis.org/oas/v3.1.1.html#migrating-binary-descriptions-from-oas-3-0 */ getRawBinarySchema(contentType?: string): OpenAPI3Schema | OpenAPISchema3_1; isRawBinarySchema(schema: OpenAPI3Schema | OpenAPISchema3_1): boolean; } export declare function getOpenApiSpecProps(specVersion: OpenAPIVersion): OpenApiSpecSpecificProps; //# sourceMappingURL=openapi-spec-mappings.d.ts.map