UNPKG

@typespec/http-server-csharp

Version:

TypeSpec service code generator for c-sharp

106 lines 6.73 kB
import { AssetEmitter, EmitterOutput } from "@typespec/asset-emitter"; import { IntrinsicScalarName, IntrinsicType, Model, ModelProperty, NumericLiteral, Program, Scalar, Type, Union } from "@typespec/compiler"; import { HttpOperation, HttpOperationParameter, HttpOperationResponse, HttpStatusCodesEntry } from "@typespec/http"; import { HttpRequestParameterKind } from "@typespec/http/experimental/typekit"; import { Attribute, CSharpOperationParameter, CSharpType, CSharpValue, NameCasingType } from "./interfaces.js"; import { CSharpServiceEmitterOptions } from "./lib.js"; export declare function getCSharpTypeForScalar(program: Program, scalar: Scalar): CSharpType; export declare const UnknownType: CSharpType; export declare function getCSharpType(program: Program, type: Type, namespace?: string): { type: CSharpType; value?: CSharpValue; } | undefined; export declare function coalesceTypes(program: Program, types: Type[], namespace?: string): { type: CSharpType; value?: CSharpValue; }; export declare function getKnownType(program: Program, type: Type): CSharpType | undefined; export declare function getCSharpTypeForIntrinsic(program: Program, type: IntrinsicType): { type: CSharpType; value?: CSharpValue; } | undefined; export type ExtendedIntrinsicScalarName = IntrinsicScalarName | "unixTimestamp32"; export declare function getCSharpTypeForStdScalars(program: Program, scalar: Scalar & { name: ExtendedIntrinsicScalarName; }): CSharpType; export declare function isValueType(program: Program, type: Type): boolean; export declare function formatComment(text: string, lineLength?: number, lineEnd?: string): string; export declare function getCSharpIdentifier(name: string, context?: NameCasingType): string; export declare function ensureCSharpIdentifier(program: Program, target: Type, name: string, context?: NameCasingType): string; export declare function getModelAttributes(program: Program, entity: Type, cSharpName?: string): Attribute[]; export declare function getModelDeclarationName(program: Program, model: Model, defaultSuffix: string): string; export declare function getModelInstantiationName(program: Program, model: Model, name: string): string; export declare class ModelInfo { visited: Model[]; getAllProperties(program: Program, model: Model): ModelProperty[] | undefined; filterAllProperties(program: Program, model: Model, filter: (p: ModelProperty) => boolean): ModelProperty | undefined; } export declare function getPropertySource(program: Program, property: ModelProperty): Model | undefined; export declare function getSourceModel(program: Program, model: Model): Model | undefined; export declare class HttpMetadata { resolveLogicalResponseType(program: Program, response: HttpOperationResponse): Type; } export declare function getOperationAttributes(program: Program, entity: Type): Attribute[]; export declare function transformInvalidIdentifier(name: string): string; export declare function getOperationVerbDecorator(operation: HttpOperation): string; export declare function hasNonMetadataProperties(program: Program, model: Model): boolean; export declare function ensureCleanDirectory(program: Program, targetPath: string): Promise<void>; export declare function isValidCSharpIdentifier(identifier: string): boolean; export declare function getValidChar(target: string, position: number): string; export declare function getCSharpStatusCode(entry: HttpStatusCodesEntry): string | undefined; export declare function isEmptyResponseModel(program: Program, model: Type): boolean; export declare function isContentTypeHeader(program: Program, parameter: ModelProperty): boolean; export declare function isValidParameter(program: Program, parameter: ModelProperty): boolean; /** Determine whether the given parameter is http metadata */ export declare function isHttpMetadata(program: Program, property: ModelProperty): boolean; export declare function getBusinessLogicCallParameters(parameters: CSharpOperationParameter[]): EmitterOutput<string>; export declare function getBusinessLogicDeclParameters(parameters: CSharpOperationParameter[]): EmitterOutput<string>; export declare function getHttpDeclParameters(parameters: CSharpOperationParameter[]): EmitterOutput<string>; export declare function getBusinessLogicCallParameter(param: CSharpOperationParameter): EmitterOutput<string>; export declare function getBusinessLogicSignatureParameter(param: CSharpOperationParameter): EmitterOutput<string>; export declare function getHttpSignatureParameter(param: CSharpOperationParameter): EmitterOutput<string>; export declare function getHttpParameterDecorator(parameter: CSharpOperationParameter): EmitterOutput<string>; export declare function getParameterKind(parameter: HttpOperationParameter): HttpRequestParameterKind; export declare function canHaveDefault(program: Program, type: Type): boolean; export interface EmittedTypeInfo { typeReference: EmitterOutput<string>; nullableType: boolean; defaultValue?: string | boolean; } export declare class CSharpOperationHelpers { #private; constructor(inEmitter: AssetEmitter<string, CSharpServiceEmitterOptions>); emitter: AssetEmitter<string, CSharpServiceEmitterOptions>; getParameters(program: Program, operation: HttpOperation): CSharpOperationParameter[]; getTypeInfo(program: Program, tsType: Type): EmittedTypeInfo; getUnionInfo(program: Program, union: Union): EmittedTypeInfo; } export declare function getExplicitBodyParameters(program: Program, httpOperation: HttpOperation): CSharpOperationParameter[] | undefined; export declare function findNumericType(type: NumericLiteral): [string, string]; export declare function coalesceUnionTypes(program: Program, union: Union): CSharpType; export declare function getNonNullableTsType(union: Union): { type: Type; nullable: boolean; } | undefined; export declare function coalesceTsTypes(program: Program, types: Type[]): [CSharpType, boolean]; export declare function isRecord(type: Type): boolean; export declare function getFreePort(minPort: number, maxPort: number, tries?: number): Promise<number>; export interface OpenApiConfig { emitted: boolean; outputDir?: string; fileName?: any; options?: Record<string, unknown> & { "emitter-output-dir"?: string; }; } export declare function getOpenApiConfig(program: Program): Promise<OpenApiConfig>; export declare function getStatusCode(program: Program, model: Model): { name: string; value: string; requiresConstructorArgument: boolean; } | { value: string | number; name?: undefined; requiresConstructorArgument?: undefined; } | undefined; //# sourceMappingURL=utils.d.ts.map