UNPKG

@typespec/http-server-csharp

Version:

TypeSpec service code generator for c-sharp

114 lines 7.59 kB
import { AssetEmitter, Declaration, EmitterOutput, Scope } from "@typespec/asset-emitter"; import { IntrinsicScalarName, IntrinsicType, Model, ModelProperty, NumericLiteral, Program, Scalar, Type, Union, Value } 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 const RecordType: CSharpType; export declare function getCSharpType(program: Program, type: Type, namespace?: string): { type: CSharpType; value?: CSharpValue; } | undefined; export declare function resolveReferenceFromScopes(targetDeclaration: Declaration<string>, declarationScopes: Scope<string>[], referenceScopes: Scope<string>[]): string | 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, checkReserved?: boolean): 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, isNamespace?: boolean): boolean; export declare function replaceCSharpReservedWord(identifier: string, context?: NameCasingType): string; 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>; getResponse(program: Program, operation: HttpOperation): CSharpType; getParameters(program: Program, operation: HttpOperation): CSharpOperationParameter[]; getDefaultValue(program: Program, tsType: Type, defaultValue: Value | undefined): string | number | undefined; getTypeInfo(program: Program, tsType: Type, modelProperty?: ModelProperty): 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 isStringEnumType(program: Program, union: Union): boolean; 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; export declare function isByteType(type: Type): boolean; export declare function getImports(scope?: Scope<string>, visited?: Set<Scope<string>>): string[]; //# sourceMappingURL=utils.d.ts.map