@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
TypeScript
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