@typespec/http-client-csharp 1.0.0-alpha.20260326.2 → 1.0.0-alpha.20260326.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/emitter/src/emitter.d.ts +28 -1
  2. package/dist/emitter/src/emitter.d.ts.map +1 -1
  3. package/dist/emitter/src/emitter.js +62 -23
  4. package/dist/emitter/src/emitter.js.map +1 -1
  5. package/dist/emitter/src/index.d.ts +1 -1
  6. package/dist/emitter/src/index.d.ts.map +1 -1
  7. package/dist/emitter/src/index.js +1 -1
  8. package/dist/emitter/src/index.js.map +1 -1
  9. package/dist/emitter/src/lib/client-converter.d.ts +2 -1
  10. package/dist/emitter/src/lib/client-converter.d.ts.map +1 -1
  11. package/dist/emitter/src/lib/client-converter.js +27 -21
  12. package/dist/emitter/src/lib/client-converter.js.map +1 -1
  13. package/dist/emitter/src/lib/client-model-builder.d.ts +14 -2
  14. package/dist/emitter/src/lib/client-model-builder.d.ts.map +1 -1
  15. package/dist/emitter/src/lib/client-model-builder.js +23 -8
  16. package/dist/emitter/src/lib/client-model-builder.js.map +1 -1
  17. package/dist/emitter/src/lib/example-converter.d.ts +2 -1
  18. package/dist/emitter/src/lib/example-converter.d.ts.map +1 -1
  19. package/dist/emitter/src/lib/example-converter.js +16 -11
  20. package/dist/emitter/src/lib/example-converter.js.map +1 -1
  21. package/dist/emitter/src/lib/logger.d.ts +1 -5
  22. package/dist/emitter/src/lib/logger.d.ts.map +1 -1
  23. package/dist/emitter/src/lib/logger.js +2 -19
  24. package/dist/emitter/src/lib/logger.js.map +1 -1
  25. package/dist/emitter/src/lib/namespace-converter.d.ts +2 -1
  26. package/dist/emitter/src/lib/namespace-converter.d.ts.map +1 -1
  27. package/dist/emitter/src/lib/namespace-converter.js +3 -1
  28. package/dist/emitter/src/lib/namespace-converter.js.map +1 -1
  29. package/dist/emitter/src/lib/operation-converter.d.ts +8 -7
  30. package/dist/emitter/src/lib/operation-converter.d.ts.map +1 -1
  31. package/dist/emitter/src/lib/operation-converter.js +139 -115
  32. package/dist/emitter/src/lib/operation-converter.js.map +1 -1
  33. package/dist/emitter/src/lib/service-authentication.d.ts +2 -1
  34. package/dist/emitter/src/lib/service-authentication.d.ts.map +1 -1
  35. package/dist/emitter/src/lib/service-authentication.js +33 -28
  36. package/dist/emitter/src/lib/service-authentication.js.map +1 -1
  37. package/dist/emitter/src/lib/type-converter.d.ts +2 -1
  38. package/dist/emitter/src/lib/type-converter.d.ts.map +1 -1
  39. package/dist/emitter/src/lib/type-converter.js +85 -62
  40. package/dist/emitter/src/lib/type-converter.js.map +1 -1
  41. package/dist/emitter/src/lib/typespec-server.d.ts +2 -1
  42. package/dist/emitter/src/lib/typespec-server.d.ts.map +1 -1
  43. package/dist/emitter/src/lib/typespec-server.js +6 -3
  44. package/dist/emitter/src/lib/typespec-server.js.map +1 -1
  45. package/dist/emitter/src/options.d.ts +2 -7
  46. package/dist/emitter/src/options.d.ts.map +1 -1
  47. package/dist/emitter/src/options.js +0 -6
  48. package/dist/emitter/src/options.js.map +1 -1
  49. package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.StubLibrary.dll +0 -0
  50. package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.StubLibrary.pdb +0 -0
  51. package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.dll +0 -0
  52. package/dist/generator/Microsoft.TypeSpec.Generator.ClientModel.pdb +0 -0
  53. package/dist/generator/Microsoft.TypeSpec.Generator.Input.dll +0 -0
  54. package/dist/generator/Microsoft.TypeSpec.Generator.Input.pdb +0 -0
  55. package/dist/generator/Microsoft.TypeSpec.Generator.dll +0 -0
  56. package/dist/generator/Microsoft.TypeSpec.Generator.pdb +0 -0
  57. package/package.json +1 -1
  58. package/readme.md +0 -6
@@ -1,7 +1,34 @@
1
1
  import { SdkContext } from "@azure-tools/typespec-client-generator-core";
2
- import { EmitContext } from "@typespec/compiler";
2
+ import { Diagnostic, EmitContext } from "@typespec/compiler";
3
3
  import { CSharpEmitterOptions } from "./options.js";
4
+ import { CSharpEmitterContext } from "./sdk-context.js";
5
+ import { CodeModel } from "./type/code-model.js";
4
6
  import { Configuration } from "./type/configuration.js";
7
+ /**
8
+ * Creates a code model by executing the full emission logic.
9
+ * This function can be called by downstream emitters to generate a code model and collect diagnostics.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { emitCodeModel } from "@typespec/http-client-csharp";
14
+ *
15
+ * export async function $onEmit(context: EmitContext<MyEmitterOptions>) {
16
+ * const updateCodeModel = (model: CodeModel, context: CSharpEmitterContext) => {
17
+ * // Customize the code model here
18
+ * return model;
19
+ * };
20
+ * const [, diagnostics] = await emitCodeModel(context, updateCodeModel);
21
+ * // Process diagnostics as needed
22
+ * context.program.reportDiagnostics(diagnostics);
23
+ * }
24
+ * ```
25
+ *
26
+ * @param context - The emit context
27
+ * @param updateCodeModel - Optional callback to modify the code model before emission
28
+ * @returns A tuple containing void and any diagnostics that were generated during the emission
29
+ * @beta
30
+ */
31
+ export declare function emitCodeModel(context: EmitContext<CSharpEmitterOptions>, updateCodeModel?: (model: CodeModel, context: CSharpEmitterContext) => CodeModel): Promise<[void, readonly Diagnostic[]]>;
5
32
  /**
6
33
  * The entry point for the emitter. This function is called by the typespec compiler.
7
34
  * @param context - The emit context
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../emitter/src/emitter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EACL,WAAW,EAMZ,MAAM,oBAAoB,CAAC;AAc5B,OAAO,EAAE,oBAAoB,EAAkB,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAsBxD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAiFvE;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GACrB,aAAa,CA2Bf"}
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../emitter/src/emitter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAEL,UAAU,EACV,WAAW,EAMZ,MAAM,oBAAoB,CAAC;AAe5B,OAAO,EAAE,oBAAoB,EAAkB,MAAM,cAAc,CAAC;AACpE,OAAO,EAA8B,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAsBxD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,EAC1C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,oBAAoB,KAAK,SAAS,GAC/E,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC,CA4FxC;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAGvE;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GACrB,aAAa,CA0Bf"}
@@ -1,13 +1,14 @@
1
1
  // Copyright (c) Microsoft Corporation. All rights reserved.
2
2
  // Licensed under the MIT License. See License.txt in the project root for license information.
3
3
  import { createSdkContext } from "@azure-tools/typespec-client-generator-core";
4
- import { getDirectoryPath, joinPaths, NoTarget, resolvePath, } from "@typespec/compiler";
4
+ import { createDiagnosticCollector, getDirectoryPath, joinPaths, NoTarget, resolvePath, } from "@typespec/compiler";
5
5
  import fs, { statSync } from "fs";
6
6
  import { dirname } from "path";
7
7
  import { fileURLToPath } from "url";
8
8
  import { writeCodeModel, writeConfiguration } from "./code-model-writer.js";
9
9
  import { _minSupportedDotNetSdkVersion, configurationFileName, tspOutputFileName, } from "./constants.js";
10
10
  import { createModel } from "./lib/client-model-builder.js";
11
+ import { createDiagnostic } from "./lib/lib.js";
11
12
  import { LoggerLevel } from "./lib/logger-level.js";
12
13
  import { Logger } from "./lib/logger.js";
13
14
  import { execAsync, execCSharpGenerator } from "./lib/utils.js";
@@ -33,11 +34,31 @@ function findProjectRoot(path) {
33
34
  }
34
35
  }
35
36
  /**
36
- * The entry point for the emitter. This function is called by the typespec compiler.
37
+ * Creates a code model by executing the full emission logic.
38
+ * This function can be called by downstream emitters to generate a code model and collect diagnostics.
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * import { emitCodeModel } from "@typespec/http-client-csharp";
43
+ *
44
+ * export async function $onEmit(context: EmitContext<MyEmitterOptions>) {
45
+ * const updateCodeModel = (model: CodeModel, context: CSharpEmitterContext) => {
46
+ * // Customize the code model here
47
+ * return model;
48
+ * };
49
+ * const [, diagnostics] = await emitCodeModel(context, updateCodeModel);
50
+ * // Process diagnostics as needed
51
+ * context.program.reportDiagnostics(diagnostics);
52
+ * }
53
+ * ```
54
+ *
37
55
  * @param context - The emit context
56
+ * @param updateCodeModel - Optional callback to modify the code model before emission
57
+ * @returns A tuple containing void and any diagnostics that were generated during the emission
38
58
  * @beta
39
59
  */
40
- export async function $onEmit(context) {
60
+ export async function emitCodeModel(context, updateCodeModel) {
61
+ const diagnostics = createDiagnosticCollector();
41
62
  const program = context.program;
42
63
  const options = resolveOptions(context);
43
64
  const outputFolder = context.emitterOutputDir;
@@ -46,17 +67,20 @@ export async function $onEmit(context) {
46
67
  if (!program.compilerOptions.noEmit && !program.hasError()) {
47
68
  // Write out the dotnet model to the output path
48
69
  const sdkContext = createCSharpEmitterContext(await createSdkContext(context, "@typespec/http-client-csharp", options["sdk-context-options"]), logger);
49
- program.reportDiagnostics(sdkContext.diagnostics);
50
- let root = createModel(sdkContext);
70
+ for (const diag of sdkContext.diagnostics) {
71
+ diagnostics.add(diag);
72
+ }
73
+ const root = diagnostics.pipe(createModel(sdkContext));
51
74
  if (root) {
52
- root = options["update-code-model"](root, sdkContext);
75
+ // Apply optional code model update callback
76
+ const updatedRoot = updateCodeModel ? updateCodeModel(root, sdkContext) : root;
53
77
  const generatedFolder = resolvePath(outputFolder, "src", "Generated");
54
78
  if (!fs.existsSync(generatedFolder)) {
55
79
  fs.mkdirSync(generatedFolder, { recursive: true });
56
80
  }
57
81
  // emit tspCodeModel.json
58
- await writeCodeModel(sdkContext, root, outputFolder);
59
- const namespace = root.name;
82
+ await writeCodeModel(sdkContext, updatedRoot, outputFolder);
83
+ const namespace = updatedRoot.name;
60
84
  const configurations = createConfiguration(options, namespace, sdkContext);
61
85
  //emit configuration.json
62
86
  await writeConfiguration(sdkContext, configurations, outputFolder);
@@ -74,7 +98,7 @@ export async function $onEmit(context) {
74
98
  debug: options.debug ?? false,
75
99
  });
76
100
  if (result.exitCode !== 0) {
77
- const isValid = await _validateDotNetSdk(sdkContext, _minSupportedDotNetSdkVersion);
101
+ const isValid = diagnostics.pipe(await _validateDotNetSdk(sdkContext, _minSupportedDotNetSdkVersion));
78
102
  // if the dotnet sdk is valid, the error is not dependency issue, log it as normal
79
103
  if (isValid) {
80
104
  throw new Error(`Failed to generate the library. Exit code: ${result.exitCode}.\nStackTrace: \n${result.stderr}`);
@@ -82,7 +106,7 @@ export async function $onEmit(context) {
82
106
  }
83
107
  }
84
108
  catch (error) {
85
- const isValid = await _validateDotNetSdk(sdkContext, _minSupportedDotNetSdkVersion);
109
+ const isValid = diagnostics.pipe(await _validateDotNetSdk(sdkContext, _minSupportedDotNetSdkVersion));
86
110
  // if the dotnet sdk is valid, the error is not dependency issue, log it as normal
87
111
  if (isValid)
88
112
  throw new Error(error, { cause: error });
@@ -94,11 +118,20 @@ export async function $onEmit(context) {
94
118
  }
95
119
  }
96
120
  }
121
+ return diagnostics.wrap(undefined);
122
+ }
123
+ /**
124
+ * The entry point for the emitter. This function is called by the typespec compiler.
125
+ * @param context - The emit context
126
+ * @beta
127
+ */
128
+ export async function $onEmit(context) {
129
+ const [, diagnostics] = await emitCodeModel(context);
130
+ context.program.reportDiagnostics(diagnostics);
97
131
  }
98
132
  export function createConfiguration(options, namespace, sdkContext) {
99
133
  const skipKeys = [
100
134
  "new-project",
101
- "update-code-model",
102
135
  "sdk-context-options",
103
136
  "save-inputs",
104
137
  "generator-name",
@@ -124,17 +157,18 @@ export function createConfiguration(options, namespace, sdkContext) {
124
157
  * Report diagnostic if dotnet sdk is not installed or its version does not meet prerequisite
125
158
  * @param sdkContext - The SDK context
126
159
  * @param minVersionRequisite - The minimum required major version
127
- * @param logger - The logger
160
+ * @returns A tuple containing whether the SDK is valid and any diagnostics
128
161
  * @internal
129
162
  */
130
163
  export async function _validateDotNetSdk(sdkContext, minMajorVersion) {
164
+ const diagnostics = createDiagnosticCollector();
131
165
  try {
132
166
  const result = await execAsync("dotnet", ["--version"], { stdio: "pipe" });
133
- return validateDotNetSdkVersionCore(sdkContext, result.stdout, minMajorVersion);
167
+ return diagnostics.wrap(diagnostics.pipe(validateDotNetSdkVersionCore(sdkContext, result.stdout, minMajorVersion)));
134
168
  }
135
169
  catch (error) {
136
170
  if (error && "code" in error && error["code"] === "ENOENT") {
137
- sdkContext.logger.reportDiagnostic({
171
+ diagnostics.add(createDiagnostic({
138
172
  code: "invalid-dotnet-sdk-dependency",
139
173
  messageId: "missing",
140
174
  format: {
@@ -142,21 +176,22 @@ export async function _validateDotNetSdk(sdkContext, minMajorVersion) {
142
176
  downloadUrl: "https://dotnet.microsoft.com/",
143
177
  },
144
178
  target: NoTarget,
145
- });
179
+ }));
146
180
  }
147
- return false;
181
+ return diagnostics.wrap(false);
148
182
  }
149
183
  }
150
184
  function validateDotNetSdkVersionCore(sdkContext, version, minMajorVersion) {
185
+ const diagnostics = createDiagnosticCollector();
151
186
  if (version) {
152
187
  const dotIndex = version.indexOf(".");
153
188
  const firstPart = dotIndex === -1 ? version : version.substring(0, dotIndex);
154
189
  const major = Number(firstPart);
155
190
  if (isNaN(major)) {
156
- return false;
191
+ return diagnostics.wrap(false);
157
192
  }
158
193
  if (major < minMajorVersion) {
159
- sdkContext.logger.reportDiagnostic({
194
+ diagnostics.add(createDiagnostic({
160
195
  code: "invalid-dotnet-sdk-dependency",
161
196
  messageId: "invalidVersion",
162
197
  format: {
@@ -165,14 +200,18 @@ function validateDotNetSdkVersionCore(sdkContext, version, minMajorVersion) {
165
200
  downloadUrl: "https://dotnet.microsoft.com/",
166
201
  },
167
202
  target: NoTarget,
168
- });
169
- return false;
203
+ }));
204
+ return diagnostics.wrap(false);
170
205
  }
171
- return true;
206
+ return diagnostics.wrap(true);
172
207
  }
173
208
  else {
174
- sdkContext.logger.error("Cannot get the installed .NET SDK version.");
175
- return false;
209
+ diagnostics.add(createDiagnostic({
210
+ code: "general-error",
211
+ format: { message: "Cannot get the installed .NET SDK version." },
212
+ target: NoTarget,
213
+ }));
214
+ return diagnostics.wrap(false);
176
215
  }
177
216
  }
178
217
  function checkFile(pkgPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../emitter/src/emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../emitter/src/emitter.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export { writeCodeModel } from "./code-model-writer.js";
2
2
  export { configurationFileName, tspOutputFileName } from "./constants.js";
3
- export { $onEmit } from "./emitter.js";
3
+ export { $onEmit, emitCodeModel } from "./emitter.js";
4
4
  export { createModel } from "./lib/client-model-builder.js";
5
5
  export { $lib, createDiagnostic, getTracer, reportDiagnostic } from "./lib/lib.js";
6
6
  export { LoggerLevel } from "./lib/logger-level.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../emitter/src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKnE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../emitter/src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKnE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC"}
@@ -2,7 +2,7 @@
2
2
  // Licensed under the MIT License. See License.txt in the project root for license information.
3
3
  export { writeCodeModel } from "./code-model-writer.js";
4
4
  export { configurationFileName, tspOutputFileName } from "./constants.js";
5
- export { $onEmit } from "./emitter.js";
5
+ export { $onEmit, emitCodeModel } from "./emitter.js";
6
6
  // we export `createModel` only for autorest.csharp because it uses the emitter to generate the code model file but not calling the dll here
7
7
  // we could remove this export when in the future we deprecate autorest.csharp
8
8
  export { createModel } from "./lib/client-model-builder.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../emitter/src/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+FAA+F;AAE/F,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,4IAA4I;AAC5I,8EAA8E;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAEL,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,2JAA2J;AAC3J,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAwB,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAIpF,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../emitter/src/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+FAA+F;AAE/F,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,4IAA4I;AAC5I,8EAA8E;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAEL,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,2JAA2J;AAC3J,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAwB,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAIpF,gBAAgB;AAChB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { SdkClientType as SdkClientTypeOfT, SdkHttpOperation } from "@azure-tools/typespec-client-generator-core";
2
+ import { Diagnostic } from "@typespec/compiler";
2
3
  import { CSharpEmitterContext } from "../sdk-context.js";
3
4
  import { InputClient } from "../type/input-type.js";
4
5
  type SdkClientType = SdkClientTypeOfT<SdkHttpOperation>;
5
- export declare function fromSdkClients(sdkContext: CSharpEmitterContext, clients: SdkClientType[], rootApiVersions: string[]): InputClient[];
6
+ export declare function fromSdkClients(sdkContext: CSharpEmitterContext, clients: SdkClientType[], rootApiVersions: string[]): [InputClient[], readonly Diagnostic[]];
6
7
  export {};
7
8
  //# sourceMappingURL=client-converter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-converter.d.ts","sourceRoot":"","sources":["../../../../emitter/src/lib/client-converter.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,IAAI,gBAAgB,EAIjC,gBAAgB,EAEjB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EACL,WAAW,EAIZ,MAAM,uBAAuB,CAAC;AAU/B,KAAK,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AAExD,wBAAgB,cAAc,CAC5B,UAAU,EAAE,oBAAoB,EAChC,OAAO,EAAE,aAAa,EAAE,EACxB,eAAe,EAAE,MAAM,EAAE,GACxB,WAAW,EAAE,CAQf"}
1
+ {"version":3,"file":"client-converter.d.ts","sourceRoot":"","sources":["../../../../emitter/src/lib/client-converter.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,aAAa,IAAI,gBAAgB,EAIjC,gBAAgB,EAEjB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAA6B,UAAU,EAAY,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EACL,WAAW,EAIZ,MAAM,uBAAuB,CAAC;AAW/B,KAAK,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AAExD,wBAAgB,cAAc,CAC5B,UAAU,EAAE,oBAAoB,EAChC,OAAO,EAAE,aAAa,EAAE,EACxB,eAAe,EAAE,MAAM,EAAE,GACxB,CAAC,WAAW,EAAE,EAAE,SAAS,UAAU,EAAE,CAAC,CASxC"}
@@ -1,27 +1,30 @@
1
1
  // Copyright (c) Microsoft Corporation. All rights reserved.
2
2
  // Licensed under the MIT License. See License.txt in the project root for license information.
3
- import { NoTarget } from "@typespec/compiler";
3
+ import { createDiagnosticCollector, NoTarget } from "@typespec/compiler";
4
4
  import { InputParameterScope } from "../type/input-parameter-scope.js";
5
+ import { createDiagnostic } from "./lib.js";
5
6
  import { fromMethodParameter, fromSdkServiceMethod, getMethodParameterSegments, getParameterDefaultValue, } from "./operation-converter.js";
6
7
  import { fromSdkType } from "./type-converter.js";
7
8
  import { isMultiServiceClient, isReadOnly } from "./utils.js";
8
9
  export function fromSdkClients(sdkContext, clients, rootApiVersions) {
10
+ const diagnostics = createDiagnosticCollector();
9
11
  const inputClients = [];
10
12
  for (const client of clients) {
11
- const inputClient = fromSdkClient(sdkContext, client, rootApiVersions);
13
+ const inputClient = diagnostics.pipe(fromSdkClient(sdkContext, client, rootApiVersions));
12
14
  inputClients.push(inputClient);
13
15
  }
14
- return inputClients;
16
+ return diagnostics.wrap(inputClients);
15
17
  }
16
18
  function fromSdkClient(sdkContext, client, rootApiVersions) {
19
+ const diagnostics = createDiagnosticCollector();
17
20
  let inputClient = sdkContext.__typeCache.clients.get(client);
18
21
  if (inputClient) {
19
- return inputClient;
22
+ return diagnostics.wrap(inputClient);
20
23
  }
21
24
  const endpointParameter = client.clientInitialization.parameters.find((p) => p.kind === "endpoint");
22
25
  const uri = getMethodUri(endpointParameter);
23
26
  // Convert all clientInitialization parameters
24
- const clientParameters = fromSdkClientInitializationParameters(sdkContext, client.clientInitialization.parameters, client.namespace);
27
+ const clientParameters = diagnostics.pipe(fromSdkClientInitializationParameters(sdkContext, client.clientInitialization.parameters, client.namespace));
25
28
  const isMultiService = isMultiServiceClient(client);
26
29
  const clientName = !client.parent && isMultiService && !client.name.toLowerCase().endsWith("client")
27
30
  ? `${client.name}Client`
@@ -33,7 +36,7 @@ function fromSdkClient(sdkContext, client, rootApiVersions) {
33
36
  doc: client.doc,
34
37
  summary: client.summary,
35
38
  methods: client.methods
36
- .map((m) => fromSdkServiceMethod(sdkContext, m, uri, rootApiVersions, client.namespace))
39
+ .map((m) => diagnostics.pipe(fromSdkServiceMethod(sdkContext, m, uri, rootApiVersions, client.namespace)))
37
40
  .filter((m) => m !== undefined),
38
41
  parameters: clientParameters,
39
42
  initializedBy: client.clientInitialization.initializedBy,
@@ -47,52 +50,55 @@ function fromSdkClient(sdkContext, client, rootApiVersions) {
47
50
  sdkContext.__typeCache.updateSdkClientReferences(client, inputClient);
48
51
  // fill parent
49
52
  if (client.parent) {
50
- inputClient.parent = fromSdkClient(sdkContext, client.parent, rootApiVersions);
53
+ inputClient.parent = diagnostics.pipe(fromSdkClient(sdkContext, client.parent, rootApiVersions));
51
54
  }
52
55
  // fill children
53
56
  if (client.children) {
54
- inputClient.children = client.children.map((c) => fromSdkClient(sdkContext, c, rootApiVersions));
57
+ inputClient.children = client.children.map((c) => diagnostics.pipe(fromSdkClient(sdkContext, c, rootApiVersions)));
55
58
  }
56
- return inputClient;
59
+ return diagnostics.wrap(inputClient);
57
60
  function fromSdkClientInitializationParameters(sdkContext, parameters, namespace) {
61
+ const diagnostics = createDiagnosticCollector();
58
62
  const inputParameters = [];
59
63
  for (const param of parameters) {
60
64
  if (param.kind === "endpoint") {
61
65
  // Convert endpoint parameters
62
- const endpointParams = fromSdkEndpointParameter(param);
66
+ const endpointParams = diagnostics.pipe(fromSdkEndpointParameter(param));
63
67
  inputParameters.push(...endpointParams);
64
68
  }
65
69
  else if (param.kind === "method") {
66
70
  // Convert method parameters
67
- const methodParam = fromMethodParameter(sdkContext, param, namespace);
71
+ const methodParam = diagnostics.pipe(fromMethodParameter(sdkContext, param, namespace));
68
72
  inputParameters.push(methodParam);
69
73
  }
70
74
  // Note: credential parameters are handled separately in service-authentication.ts
71
75
  // and are not included in the client parameters list
72
76
  }
73
- return inputParameters;
77
+ return diagnostics.wrap(inputParameters);
74
78
  }
75
79
  function fromSdkEndpointParameter(p) {
80
+ const diagnostics = createDiagnosticCollector();
76
81
  if (p.type.kind === "union") {
77
- return fromSdkEndpointType(p.type.variantTypes[0]);
82
+ return diagnostics.wrap(diagnostics.pipe(fromSdkEndpointType(p.type.variantTypes[0])));
78
83
  }
79
84
  else {
80
- return fromSdkEndpointType(p.type);
85
+ return diagnostics.wrap(diagnostics.pipe(fromSdkEndpointType(p.type)));
81
86
  }
82
87
  }
83
88
  function fromSdkEndpointType(type) {
89
+ const diagnostics = createDiagnosticCollector();
84
90
  // TODO: support free-style endpoint url with multiple parameters
85
91
  const endpointExpr = type.serverUrl
86
92
  .replace("https://", "")
87
93
  .replace("http://", "")
88
94
  .split("/")[0];
89
95
  if (!/^\{\w+\}$/.test(endpointExpr)) {
90
- sdkContext.logger.reportDiagnostic({
96
+ diagnostics.add(createDiagnostic({
91
97
  code: "unsupported-endpoint-url",
92
98
  format: { endpoint: type.serverUrl },
93
99
  target: NoTarget,
94
- });
95
- return [];
100
+ }));
101
+ return diagnostics.wrap([]);
96
102
  }
97
103
  const endpointVariableName = endpointExpr.substring(1, endpointExpr.length - 1);
98
104
  const parameters = [];
@@ -104,7 +110,7 @@ function fromSdkClient(sdkContext, client, rootApiVersions) {
104
110
  name: "endpoint",
105
111
  crossLanguageDefinitionId: parameter.type.kind === "string" ? "TypeSpec.string" : "TypeSpec.url",
106
112
  }
107
- : fromSdkType(sdkContext, parameter.type); // TODO: consolidate with converter.fromSdkEndpointType
113
+ : diagnostics.pipe(fromSdkType(sdkContext, parameter.type)); // TODO: consolidate with converter.fromSdkEndpointType
108
114
  parameters.push({
109
115
  kind: "endpoint",
110
116
  name: parameter.name,
@@ -116,15 +122,15 @@ function fromSdkClient(sdkContext, client, rootApiVersions) {
116
122
  optional: parameter.optional,
117
123
  scope: InputParameterScope.Client,
118
124
  isEndpoint: isEndpoint,
119
- defaultValue: getParameterDefaultValue(sdkContext, parameter.clientDefaultValue, parameterType),
125
+ defaultValue: diagnostics.pipe(getParameterDefaultValue(sdkContext, parameter.clientDefaultValue, parameterType)),
120
126
  serverUrlTemplate: type.serverUrl,
121
127
  skipUrlEncoding: false,
122
128
  readOnly: isReadOnly(parameter),
123
129
  crossLanguageDefinitionId: parameter.crossLanguageDefinitionId,
124
- methodParameterSegments: getMethodParameterSegments(sdkContext, parameter),
130
+ methodParameterSegments: diagnostics.pipe(getMethodParameterSegments(sdkContext, parameter)),
125
131
  });
126
132
  }
127
- return parameters;
133
+ return diagnostics.wrap(parameters);
128
134
  }
129
135
  }
130
136
  function getMethodUri(p) {
@@ -1 +1 @@
1
- {"version":3,"file":"client-converter.js","sourceRoot":"","sources":["../../../../emitter/src/lib/client-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-converter.js","sourceRoot":"","sources":["../../../../emitter/src/lib/client-converter.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,22 @@
1
+ import { Diagnostic } from "@typespec/compiler";
1
2
  import { CSharpEmitterContext } from "../sdk-context.js";
2
3
  import { CodeModel } from "../type/code-model.js";
3
4
  /**
4
5
  * Creates the code model from the SDK context.
6
+ * This function follows TypeSpec best practices by returning diagnostics alongside the result.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createModel } from "@typespec/http-client-csharp";
11
+ *
12
+ * const sdkContext = createCSharpEmitterContext(context, logger);
13
+ * const [codeModel, diagnostics] = createModel(sdkContext);
14
+ * // Process the code model and handle diagnostics
15
+ * ```
16
+ *
5
17
  * @param sdkContext - The SDK context
6
- * @returns The code model
18
+ * @returns A tuple containing the code model and any diagnostics that were generated
7
19
  * @beta
8
20
  */
9
- export declare function createModel(sdkContext: CSharpEmitterContext): CodeModel;
21
+ export declare function createModel(sdkContext: CSharpEmitterContext): [CodeModel, readonly Diagnostic[]];
10
22
  //# sourceMappingURL=client-model-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-model-builder.d.ts","sourceRoot":"","sources":["../../../../emitter/src/lib/client-model-builder.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQlD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,CAmCvE"}
1
+ {"version":3,"file":"client-model-builder.d.ts","sourceRoot":"","sources":["../../../../emitter/src/lib/client-model-builder.ts"],"names":[],"mappings":"AAQA,OAAO,EAA6B,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQlD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,oBAAoB,GAAG,CAAC,SAAS,EAAE,SAAS,UAAU,EAAE,CAAC,CAoChG"}
@@ -1,5 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation. All rights reserved.
2
2
  // Licensed under the MIT License. See License.txt in the project root for license information.
3
+ import { createDiagnosticCollector } from "@typespec/compiler";
3
4
  import { fromSdkClients } from "./client-converter.js";
4
5
  import { fromSdkNamespaces } from "./namespace-converter.js";
5
6
  import { processServiceAuthentication } from "./service-authentication.js";
@@ -7,16 +8,28 @@ import { fromSdkType } from "./type-converter.js";
7
8
  import { firstLetterToUpperCase, getClientNamespaceString } from "./utils.js";
8
9
  /**
9
10
  * Creates the code model from the SDK context.
11
+ * This function follows TypeSpec best practices by returning diagnostics alongside the result.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { createModel } from "@typespec/http-client-csharp";
16
+ *
17
+ * const sdkContext = createCSharpEmitterContext(context, logger);
18
+ * const [codeModel, diagnostics] = createModel(sdkContext);
19
+ * // Process the code model and handle diagnostics
20
+ * ```
21
+ *
10
22
  * @param sdkContext - The SDK context
11
- * @returns The code model
23
+ * @returns A tuple containing the code model and any diagnostics that were generated
12
24
  * @beta
13
25
  */
14
26
  export function createModel(sdkContext) {
27
+ const diagnostics = createDiagnosticCollector();
15
28
  const sdkPackage = sdkContext.sdkPackage;
16
29
  // TO-DO: Consider exposing the namespace hierarchy in the code model https://github.com/microsoft/typespec/issues/8332
17
- fromSdkNamespaces(sdkContext, sdkPackage.namespaces);
30
+ diagnostics.pipe(fromSdkNamespaces(sdkContext, sdkPackage.namespaces));
18
31
  // TO-DO: Consider using the TCGC model + enum cache once https://github.com/Azure/typespec-azure/issues/3180 is resolved
19
- navigateModels(sdkContext);
32
+ diagnostics.pipe(navigateModels(sdkContext));
20
33
  const types = Array.from(sdkContext.__typeCache.types.values());
21
34
  const [models, enums] = [
22
35
  types.filter((type) => type.kind === "model"),
@@ -24,7 +37,7 @@ export function createModel(sdkContext) {
24
37
  ];
25
38
  const rootClients = sdkPackage.clients;
26
39
  const rootApiVersions = parseApiVersions(sdkPackage.enums, rootClients);
27
- const inputClients = fromSdkClients(sdkContext, rootClients, rootApiVersions);
40
+ const inputClients = diagnostics.pipe(fromSdkClients(sdkContext, rootClients, rootApiVersions));
28
41
  // TODO -- TCGC now does not have constants field in its sdkPackage, they might add it in the future.
29
42
  const constants = Array.from(sdkContext.__typeCache.constants.values());
30
43
  // Fix naming conflicts for constants, enums, and models
@@ -36,9 +49,9 @@ export function createModel(sdkContext) {
36
49
  constants: constants,
37
50
  models: models,
38
51
  clients: inputClients,
39
- auth: processServiceAuthentication(sdkContext, sdkPackage),
52
+ auth: diagnostics.pipe(processServiceAuthentication(sdkContext, sdkPackage)),
40
53
  };
41
- return clientModel;
54
+ return diagnostics.wrap(clientModel);
42
55
  }
43
56
  /**
44
57
  * Parses and returns the correct API versions for the library.
@@ -117,11 +130,13 @@ function fixNamingConflicts(models, constants) {
117
130
  }
118
131
  }
119
132
  function navigateModels(sdkContext) {
133
+ const diagnostics = createDiagnosticCollector();
120
134
  for (const m of sdkContext.sdkPackage.models) {
121
- fromSdkType(sdkContext, m);
135
+ diagnostics.pipe(fromSdkType(sdkContext, m));
122
136
  }
123
137
  for (const e of sdkContext.sdkPackage.enums) {
124
- fromSdkType(sdkContext, e);
138
+ diagnostics.pipe(fromSdkType(sdkContext, e));
125
139
  }
140
+ return diagnostics.wrap(undefined);
126
141
  }
127
142
  //# sourceMappingURL=client-model-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-model-builder.js","sourceRoot":"","sources":["../../../../emitter/src/lib/client-model-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-model-builder.js","sourceRoot":"","sources":["../../../../emitter/src/lib/client-model-builder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { SdkHttpOperationExample } from "@azure-tools/typespec-client-generator-core";
2
+ import { Diagnostic } from "@typespec/compiler";
2
3
  import { CSharpEmitterContext } from "../sdk-context.js";
3
4
  import { InputHttpOperationExample } from "../type/input-examples.js";
4
- export declare function fromSdkHttpExamples(sdkContext: CSharpEmitterContext, examples: SdkHttpOperationExample[]): InputHttpOperationExample[];
5
+ export declare function fromSdkHttpExamples(sdkContext: CSharpEmitterContext, examples: SdkHttpOperationExample[]): [InputHttpOperationExample[], readonly Diagnostic[]];
5
6
  //# sourceMappingURL=example-converter.d.ts.map