@typespec/http-client-csharp 1.0.0-alpha.20260421.3 → 1.0.0-alpha.20260422.3

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.
@@ -1,6 +1,13 @@
1
1
  import { CSharpEmitterContext } from "./sdk-context.js";
2
2
  import { CodeModel } from "./type/code-model.js";
3
3
  import { Configuration } from "./type/configuration.js";
4
+ /**
5
+ * Serializes the code model to a JSON string with reference tracking.
6
+ * @param context - The CSharp emitter context
7
+ * @param codeModel - The code model to serialize
8
+ * @beta
9
+ */
10
+ export declare function serializeCodeModel(context: CSharpEmitterContext, codeModel: CodeModel): string;
4
11
  /**
5
12
  * Writes the code model to the output folder. Should only be used by autorest.csharp.
6
13
  * @param context - The CSharp emitter context
@@ -1 +1 @@
1
- {"version":3,"file":"code-model-writer.d.ts","sourceRoot":"","sources":["../../../emitter/src/code-model-writer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,iBAMrB;AA2ED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,cAAc,EAAE,aAAa,EAC7B,YAAY,EAAE,MAAM,iBAMrB"}
1
+ {"version":3,"file":"code-model-writer.d.ts","sourceRoot":"","sources":["../../../emitter/src/code-model-writer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAE9F;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,iBAMrB;AA2ED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,oBAAoB,EAC7B,cAAc,EAAE,aAAa,EAC7B,YAAY,EAAE,MAAM,iBAMrB"}
@@ -3,6 +3,15 @@
3
3
  import { UsageFlags } from "@azure-tools/typespec-client-generator-core";
4
4
  import { resolvePath } from "@typespec/compiler";
5
5
  import { configurationFileName, tspOutputFileName } from "./constants.js";
6
+ /**
7
+ * Serializes the code model to a JSON string with reference tracking.
8
+ * @param context - The CSharp emitter context
9
+ * @param codeModel - The code model to serialize
10
+ * @beta
11
+ */
12
+ export function serializeCodeModel(context, codeModel) {
13
+ return prettierOutput(JSON.stringify(buildJson(context, codeModel), transformJSONProperties, 2));
14
+ }
6
15
  /**
7
16
  * Writes the code model to the output folder. Should only be used by autorest.csharp.
8
17
  * @param context - The CSharp emitter context
@@ -11,7 +20,7 @@ import { configurationFileName, tspOutputFileName } from "./constants.js";
11
20
  * @beta
12
21
  */
13
22
  export async function writeCodeModel(context, codeModel, outputFolder) {
14
- await context.program.host.writeFile(resolvePath(outputFolder, tspOutputFileName), prettierOutput(JSON.stringify(buildJson(context, codeModel), transformJSONProperties, 2)));
23
+ await context.program.host.writeFile(resolvePath(outputFolder, tspOutputFileName), serializeCodeModel(context, codeModel));
15
24
  }
16
25
  /**
17
26
  * This function builds a json from code model with refs and ids in it.
@@ -1 +1 @@
1
- {"version":3,"file":"code-model-writer.js","sourceRoot":"","sources":["../../../emitter/src/code-model-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-model-writer.js","sourceRoot":"","sources":["../../../emitter/src/code-model-writer.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+FAA+F;AAE/F,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAK1E;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA6B,EAAE,SAAoB;IACpF,OAAO,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;AACnG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA6B,EAC7B,SAAoB,EACpB,YAAoB;IAEpB,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAClC,WAAW,CAAC,YAAY,EAAE,iBAAiB,CAAC,EAC5C,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CACvC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,OAA6B,EAAE,SAAoB;IACpE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAe,CAAC;IAC1C,MAAM,KAAK,GAAU,EAAE,CAAC;IAExB,OAAO,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAErC,SAAS,WAAW,CAAC,GAAQ,EAAE,KAAY;QACzC,yDAAyD;QACzD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC;QACD,mDAAmD;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,cAAc;YACd,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,oBAAoB;YACpB,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,iFAAiF;gBACjF,8CAA8C;gBAC9C,IAAI,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,EAAE,EAAE,CAAC;oBACP,kCAAkC;oBAClC,OAAO;wBACL,IAAI,EAAE,EAAE;qBACT,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,4CAA4C;oBAC5C,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACtC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACxB,OAAO,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,+BAA+B;gBAC/B,OAAO,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS,YAAY,CAAC,GAAQ,EAAE,EAAsB,EAAE,KAAY;QAClE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,uDAAuD;YACvD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE,IAAI,CAAC,CAAC;YAClF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAQ,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,QAAQ,IAAI,GAAG,EAAE,CAAC;YAC3B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,SAAS,CAAC,sBAAsB;YAClC,CAAC;YACD,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;QAED,KAAK,CAAC,GAAG,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS,aAAa,CAAC,GAAQ;QAC7B,4FAA4F;QAC5F,4HAA4H;QAC5H,OAAO,2BAA2B,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA6B,EAC7B,cAA6B,EAC7B,YAAoB;IAEpB,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAClC,WAAW,CAAC,YAAY,EAAE,qBAAqB,CAAC,EAChD,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CACxD,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAY,GAAW,EAAE,KAAU;IACjE,+BAA+B;IAC/B,IAAI,GAAG,KAAK,OAAO,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,6BAA6B;IAC7B,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,OAAO,MAAM,GAAG,IAAI,CAAC;AACvB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { GenerateOptions } from "./emit-generate.js";
2
+ import { CSharpEmitterContext } from "./sdk-context.js";
3
+ export declare function generate(sdkContext: CSharpEmitterContext, codeModelJson: string, configJson: string, options: GenerateOptions): Promise<void>;
4
+ //# sourceMappingURL=emit-generate.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-generate.browser.d.ts","sourceRoot":"","sources":["../../../emitter/src/emit-generate.browser.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAKxD,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,oBAAoB,EAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
@@ -0,0 +1,40 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved.
2
+ // Licensed under the MIT License. See License.txt in the project root for license information.
3
+ // Browser implementation: sends code model to a playground server for generation.
4
+ import { resolvePath } from "@typespec/compiler";
5
+ const SERVER_URL = "https://csharp-playground-server.azurewebsites.net";
6
+ const MAX_RESPONSE_SIZE = 10 * 1024 * 1024; // 10 MB
7
+ export async function generate(sdkContext, codeModelJson, configJson, options) {
8
+ const response = await fetch(`${SERVER_URL}/generate`, {
9
+ method: "POST",
10
+ headers: { "Content-Type": "application/json" },
11
+ body: JSON.stringify({
12
+ codeModel: codeModelJson,
13
+ configuration: configJson,
14
+ generatorName: options.generatorName,
15
+ }),
16
+ });
17
+ if (!response.ok) {
18
+ const errorText = await response.text();
19
+ throw new Error(`Playground server error (${response.status}): ${errorText}`);
20
+ }
21
+ const contentType = response.headers.get("content-type");
22
+ if (!contentType?.includes("application/json")) {
23
+ throw new Error(`Unexpected response content-type: ${contentType}`);
24
+ }
25
+ const contentLength = response.headers.get("content-length");
26
+ if (contentLength && parseInt(contentLength, 10) > MAX_RESPONSE_SIZE) {
27
+ throw new Error(`Response too large: ${contentLength} bytes exceeds ${MAX_RESPONSE_SIZE} byte limit`);
28
+ }
29
+ const result = await response.json();
30
+ if (!result || !Array.isArray(result.files)) {
31
+ throw new Error("Invalid response: expected { files: [...] }");
32
+ }
33
+ for (const file of result.files) {
34
+ if (typeof file.path !== "string" || typeof file.content !== "string") {
35
+ throw new Error(`Invalid file entry: expected { path: string, content: string }`);
36
+ }
37
+ await sdkContext.program.host.writeFile(resolvePath(options.outputFolder, file.path), file.content);
38
+ }
39
+ }
40
+ //# sourceMappingURL=emit-generate.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-generate.browser.js","sourceRoot":"","sources":["../../../emitter/src/emit-generate.browser.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,+FAA+F;AAE/F,kFAAkF;AAElF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,MAAM,UAAU,GAAG,oDAAoD,CAAC;AACxE,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,QAAQ;AAEpD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,UAAgC,EAChC,aAAqB,EACrB,UAAkB,EAClB,OAAwB;IAExB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,UAAU,WAAW,EAAE;QACrD,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,aAAa;YACxB,aAAa,EAAE,UAAU;YACzB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzD,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,qCAAqC,WAAW,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC7D,IAAI,aAAa,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CACb,uBAAuB,aAAa,kBAAkB,iBAAiB,aAAa,CACrF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAErC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CACrC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,EAC5C,IAAI,CAAC,OAAO,CACb,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { CSharpEmitterContext } from "./sdk-context.js";
2
+ export interface GenerateOptions {
3
+ outputFolder: string;
4
+ packageName: string;
5
+ generatorName: string;
6
+ newProject: boolean;
7
+ debug: boolean;
8
+ saveInputs: boolean;
9
+ emitterExtensionPath?: string;
10
+ }
11
+ export declare function generate(sdkContext: CSharpEmitterContext, codeModelJson: string, configJson: string, options: GenerateOptions): Promise<void>;
12
+ //# sourceMappingURL=emit-generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-generate.d.ts","sourceRoot":"","sources":["../../../emitter/src/emit-generate.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA6BD,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,oBAAoB,EAChC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAyDf"}
@@ -0,0 +1,132 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved.
2
+ // Licensed under the MIT License. See License.txt in the project root for license information.
3
+ // Node.js implementation: runs the .NET generator locally via subprocess.
4
+ import { createDiagnosticCollector, getDirectoryPath, joinPaths, NoTarget, resolvePath, } from "@typespec/compiler";
5
+ import fs from "fs";
6
+ import { dirname } from "path";
7
+ import { fileURLToPath } from "url";
8
+ import { _minSupportedDotNetSdkVersion, configurationFileName, tspOutputFileName, } from "./constants.js";
9
+ import { createDiagnostic } from "./lib/lib.js";
10
+ import { execAsync, execCSharpGenerator } from "./lib/utils.js";
11
+ function findProjectRoot(path) {
12
+ let current = path;
13
+ while (true) {
14
+ const pkgPath = joinPaths(current, "package.json");
15
+ try {
16
+ if (fs.statSync(pkgPath)?.isFile()) {
17
+ return current;
18
+ }
19
+ }
20
+ catch {
21
+ // file doesn't exist
22
+ }
23
+ const parent = getDirectoryPath(current);
24
+ if (parent === current) {
25
+ return undefined;
26
+ }
27
+ current = parent;
28
+ }
29
+ }
30
+ function checkFile(pkgPath) {
31
+ try {
32
+ return fs.statSync(pkgPath);
33
+ }
34
+ catch {
35
+ return undefined;
36
+ }
37
+ }
38
+ export async function generate(sdkContext, codeModelJson, configJson, options) {
39
+ const diagnostics = createDiagnosticCollector();
40
+ const generatedFolder = resolvePath(options.outputFolder, "src", "Generated");
41
+ if (!fs.existsSync(generatedFolder)) {
42
+ fs.mkdirSync(generatedFolder, { recursive: true });
43
+ }
44
+ // Write code model and configuration to disk for the generator
45
+ await sdkContext.program.host.writeFile(resolvePath(options.outputFolder, tspOutputFileName), codeModelJson);
46
+ await sdkContext.program.host.writeFile(resolvePath(options.outputFolder, configurationFileName), configJson);
47
+ const csProjFile = resolvePath(options.outputFolder, "src", `${options.packageName}.csproj`);
48
+ const emitterPath = options.emitterExtensionPath ?? import.meta.url;
49
+ const projectRoot = findProjectRoot(dirname(fileURLToPath(emitterPath)));
50
+ const generatorPath = resolvePath(projectRoot + "/dist/generator/Microsoft.TypeSpec.Generator.dll");
51
+ try {
52
+ const result = await execCSharpGenerator(sdkContext, {
53
+ generatorPath: generatorPath,
54
+ outputFolder: options.outputFolder,
55
+ generatorName: options.generatorName,
56
+ newProject: options.newProject || !checkFile(csProjFile),
57
+ debug: options.debug,
58
+ });
59
+ if (result.exitCode !== 0) {
60
+ const isValid = diagnostics.pipe(await _validateDotNetSdk(sdkContext, _minSupportedDotNetSdkVersion));
61
+ if (isValid) {
62
+ throw new Error(`Failed to generate the library. Exit code: ${result.exitCode}.\nStackTrace: \n${result.stderr}`);
63
+ }
64
+ }
65
+ }
66
+ catch (error) {
67
+ const isValid = diagnostics.pipe(await _validateDotNetSdk(sdkContext, _minSupportedDotNetSdkVersion));
68
+ if (isValid)
69
+ throw new Error(error, { cause: error });
70
+ }
71
+ if (!options.saveInputs) {
72
+ sdkContext.program.host.rm(resolvePath(options.outputFolder, tspOutputFileName));
73
+ sdkContext.program.host.rm(resolvePath(options.outputFolder, configurationFileName));
74
+ }
75
+ sdkContext.program.reportDiagnostics(diagnostics.diagnostics);
76
+ }
77
+ /** @internal */
78
+ export async function _validateDotNetSdk(sdkContext, minMajorVersion) {
79
+ const diagnostics = createDiagnosticCollector();
80
+ try {
81
+ const result = await execAsync("dotnet", ["--version"], { stdio: "pipe" });
82
+ return diagnostics.wrap(diagnostics.pipe(validateDotNetSdkVersionCore(result.stdout, minMajorVersion)));
83
+ }
84
+ catch (error) {
85
+ if (error && "code" in error && error["code"] === "ENOENT") {
86
+ diagnostics.add(createDiagnostic({
87
+ code: "invalid-dotnet-sdk-dependency",
88
+ messageId: "missing",
89
+ format: {
90
+ dotnetMajorVersion: `${minMajorVersion}`,
91
+ downloadUrl: "https://dotnet.microsoft.com/",
92
+ },
93
+ target: NoTarget,
94
+ }));
95
+ }
96
+ return diagnostics.wrap(false);
97
+ }
98
+ }
99
+ function validateDotNetSdkVersionCore(version, minMajorVersion) {
100
+ const diagnostics = createDiagnosticCollector();
101
+ if (version) {
102
+ const dotIndex = version.indexOf(".");
103
+ const firstPart = dotIndex === -1 ? version : version.substring(0, dotIndex);
104
+ const major = Number(firstPart);
105
+ if (isNaN(major)) {
106
+ return diagnostics.wrap(false);
107
+ }
108
+ if (major < minMajorVersion) {
109
+ diagnostics.add(createDiagnostic({
110
+ code: "invalid-dotnet-sdk-dependency",
111
+ messageId: "invalidVersion",
112
+ format: {
113
+ installedVersion: version,
114
+ dotnetMajorVersion: `${minMajorVersion}`,
115
+ downloadUrl: "https://dotnet.microsoft.com/",
116
+ },
117
+ target: NoTarget,
118
+ }));
119
+ return diagnostics.wrap(false);
120
+ }
121
+ return diagnostics.wrap(true);
122
+ }
123
+ else {
124
+ diagnostics.add(createDiagnostic({
125
+ code: "general-error",
126
+ format: { message: "Cannot get the installed .NET SDK version." },
127
+ target: NoTarget,
128
+ }));
129
+ return diagnostics.wrap(false);
130
+ }
131
+ }
132
+ //# sourceMappingURL=emit-generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emit-generate.js","sourceRoot":"","sources":["../../../emitter/src/emit-generate.ts"],"names":[],"mappings":"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"}
@@ -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,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,CAiHxC;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
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../emitter/src/emitter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAA6B,UAAU,EAAE,WAAW,EAAW,MAAM,oBAAoB,CAAC;AAOjG,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;AAExD;;;;;;;;;;;;;;;;;;;;;;;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,CAyDxC;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,38 +1,15 @@
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 { createDiagnosticCollector, getDirectoryPath, joinPaths, NoTarget, resolvePath, } from "@typespec/compiler";
5
- import fs, { statSync } from "fs";
6
- import { dirname, resolve } from "path";
7
- import { fileURLToPath } from "url";
8
- import { writeCodeModel, writeConfiguration } from "./code-model-writer.js";
9
- import { _minSupportedDotNetSdkVersion, configurationFileName, tspOutputFileName, } from "./constants.js";
4
+ import { createDiagnosticCollector } from "@typespec/compiler";
5
+ import { resolve } from "path";
6
+ import { serializeCodeModel } from "./code-model-writer.js";
7
+ import { generate } from "./emit-generate.js";
10
8
  import { createModel } from "./lib/client-model-builder.js";
11
- import { createDiagnostic } from "./lib/lib.js";
12
9
  import { LoggerLevel } from "./lib/logger-level.js";
13
10
  import { Logger } from "./lib/logger.js";
14
- import { execAsync, execCSharpGenerator } from "./lib/utils.js";
15
11
  import { resolveOptions } from "./options.js";
16
12
  import { createCSharpEmitterContext } from "./sdk-context.js";
17
- /**
18
- * Look for the project root by looking up until a `package.json` is found.
19
- * @param path Path to start looking
20
- */
21
- function findProjectRoot(path) {
22
- let current = path;
23
- while (true) {
24
- const pkgPath = joinPaths(current, "package.json");
25
- const stats = checkFile(pkgPath);
26
- if (stats?.isFile()) {
27
- return current;
28
- }
29
- const parent = getDirectoryPath(current);
30
- if (parent === current) {
31
- return undefined;
32
- }
33
- current = parent;
34
- }
35
- }
36
13
  /**
37
14
  * Creates a code model by executing the full emission logic.
38
15
  * This function can be called by downstream emitters to generate a code model and collect diagnostics.
@@ -78,61 +55,23 @@ export async function emitCodeModel(context, updateCodeModel) {
78
55
  if (root) {
79
56
  // Apply optional code model update callback
80
57
  const updatedRoot = updateCodeModel ? updateCodeModel(root, sdkContext) : root;
81
- const generatedFolder = resolvePath(outputFolder, "src", "Generated");
82
- if (!fs.existsSync(generatedFolder)) {
83
- fs.mkdirSync(generatedFolder, { recursive: true });
84
- }
85
- // emit tspCodeModel.json
86
- await writeCodeModel(sdkContext, updatedRoot, outputFolder);
87
58
  const namespace = updatedRoot.name;
88
59
  const configurations = createConfiguration(options, namespace, sdkContext);
89
- //emit configuration.json
90
- await writeConfiguration(sdkContext, configurations, outputFolder);
91
- const csProjFile = resolvePath(outputFolder, "src", `${configurations["package-name"]}.csproj`);
92
- logger.info(`Checking if ${csProjFile} exists`);
93
- const emitterPath = options["emitter-extension-path"] ?? import.meta.url;
94
- const projectRoot = findProjectRoot(dirname(fileURLToPath(emitterPath)));
95
- const generatorPath = resolvePath(projectRoot + "/dist/generator/Microsoft.TypeSpec.Generator.dll");
96
- try {
97
- const result = await execCSharpGenerator(sdkContext, {
98
- generatorPath: generatorPath,
99
- outputFolder: outputFolder,
100
- generatorName: options["generator-name"],
101
- newProject: options["new-project"] || !checkFile(csProjFile),
102
- debug: options.debug ?? false,
103
- });
104
- if (result.exitCode !== 0) {
105
- const isValid = diagnostics.pipe(await _validateDotNetSdk(sdkContext, _minSupportedDotNetSdkVersion));
106
- // if the dotnet sdk is valid, the error is not dependency issue, log it as normal
107
- if (isValid) {
108
- diagnostics.add(createDiagnostic({
109
- code: "general-error",
110
- format: {
111
- message: `Failed to generate the library. Exit code: ${result.exitCode}.\n${result.stderr}`,
112
- },
113
- target: NoTarget,
114
- }));
115
- }
116
- }
117
- }
118
- catch (error) {
119
- const isValid = diagnostics.pipe(await _validateDotNetSdk(sdkContext, _minSupportedDotNetSdkVersion));
120
- // if the dotnet sdk is valid, the error is not dependency issue, log it as normal
121
- if (isValid) {
122
- diagnostics.add(createDiagnostic({
123
- code: "general-error",
124
- format: {
125
- message: `Failed to generate the library. Error: ${error.message ?? error}`,
126
- },
127
- target: NoTarget,
128
- }));
129
- }
130
- }
131
- if (!options["save-inputs"]) {
132
- // delete
133
- context.program.host.rm(resolvePath(outputFolder, tspOutputFileName));
134
- context.program.host.rm(resolvePath(outputFolder, configurationFileName));
135
- }
60
+ // Serialize code model and configuration
61
+ const codeModelJson = serializeCodeModel(sdkContext, updatedRoot);
62
+ const configJson = JSON.stringify(configurations, null, 2) + "\n";
63
+ // Generate C# code via platform-specific implementation.
64
+ // In Node.js this runs the .NET generator locally.
65
+ // In the browser this sends the code model to a playground server.
66
+ await generate(sdkContext, codeModelJson, configJson, {
67
+ outputFolder,
68
+ packageName: configurations["package-name"] ?? "",
69
+ generatorName: options["generator-name"],
70
+ newProject: options["new-project"],
71
+ debug: options.debug ?? false,
72
+ saveInputs: options["save-inputs"] ?? false,
73
+ emitterExtensionPath: options["emitter-extension-path"],
74
+ });
136
75
  }
137
76
  }
138
77
  return diagnostics.wrap(undefined);
@@ -170,73 +109,4 @@ export function createConfiguration(options, namespace, sdkContext) {
170
109
  license: sdkContext.sdkPackage.licenseInfo,
171
110
  };
172
111
  }
173
- /** check the dotnet sdk installation.
174
- * Report diagnostic if dotnet sdk is not installed or its version does not meet prerequisite
175
- * @param sdkContext - The SDK context
176
- * @param minVersionRequisite - The minimum required major version
177
- * @returns A tuple containing whether the SDK is valid and any diagnostics
178
- * @internal
179
- */
180
- export async function _validateDotNetSdk(sdkContext, minMajorVersion) {
181
- const diagnostics = createDiagnosticCollector();
182
- try {
183
- const result = await execAsync("dotnet", ["--version"], { stdio: "pipe" });
184
- return diagnostics.wrap(diagnostics.pipe(validateDotNetSdkVersionCore(sdkContext, result.stdout, minMajorVersion)));
185
- }
186
- catch (error) {
187
- if (error && "code" in error && error["code"] === "ENOENT") {
188
- diagnostics.add(createDiagnostic({
189
- code: "invalid-dotnet-sdk-dependency",
190
- messageId: "missing",
191
- format: {
192
- dotnetMajorVersion: `${minMajorVersion}`,
193
- downloadUrl: "https://dotnet.microsoft.com/",
194
- },
195
- target: NoTarget,
196
- }));
197
- }
198
- return diagnostics.wrap(false);
199
- }
200
- }
201
- function validateDotNetSdkVersionCore(sdkContext, version, minMajorVersion) {
202
- const diagnostics = createDiagnosticCollector();
203
- if (version) {
204
- const dotIndex = version.indexOf(".");
205
- const firstPart = dotIndex === -1 ? version : version.substring(0, dotIndex);
206
- const major = Number(firstPart);
207
- if (isNaN(major)) {
208
- return diagnostics.wrap(false);
209
- }
210
- if (major < minMajorVersion) {
211
- diagnostics.add(createDiagnostic({
212
- code: "invalid-dotnet-sdk-dependency",
213
- messageId: "invalidVersion",
214
- format: {
215
- installedVersion: version,
216
- dotnetMajorVersion: `${minMajorVersion}`,
217
- downloadUrl: "https://dotnet.microsoft.com/",
218
- },
219
- target: NoTarget,
220
- }));
221
- return diagnostics.wrap(false);
222
- }
223
- return diagnostics.wrap(true);
224
- }
225
- else {
226
- diagnostics.add(createDiagnostic({
227
- code: "general-error",
228
- format: { message: "Cannot get the installed .NET SDK version." },
229
- target: NoTarget,
230
- }));
231
- return diagnostics.wrap(false);
232
- }
233
- }
234
- function checkFile(pkgPath) {
235
- try {
236
- return statSync(pkgPath);
237
- }
238
- catch (error) {
239
- return undefined;
240
- }
241
- }
242
112
  //# sourceMappingURL=emitter.js.map
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typespec/http-client-csharp",
3
- "version": "1.0.0-alpha.20260421.3",
3
+ "version": "1.0.0-alpha.20260422.3",
4
4
  "author": "Microsoft Corporation",
5
5
  "description": "TypeSpec library for emitting Http Client libraries for C#.",
6
6
  "homepage": "https://typespec.io",
@@ -25,11 +25,16 @@
25
25
  "default": "./dist/emitter/src/index.js"
26
26
  }
27
27
  },
28
+ "browser": {
29
+ "./dist/emitter/src/emit-generate.js": "./dist/emitter/src/emit-generate.browser.js",
30
+ "./emitter/src/emit-generate.ts": "./emitter/src/emit-generate.browser.ts"
31
+ },
28
32
  "scripts": {
29
33
  "clean": "rimraf ./dist ./emitter/temp && dotnet clean ./generator",
30
34
  "build:emitter": "tsc -p ./emitter/tsconfig.build.json",
31
35
  "build:generator": "dotnet build ./generator",
32
36
  "build": "npm run build:emitter && npm run build:generator && npm run extract-api",
37
+ "dev:playground": "npm run build:emitter && cd ../../website && npm run dev",
33
38
  "gen-extern-signature": "tspd --enable-experimental gen-extern-signature .",
34
39
  "watch": "tsc -p ./emitter/tsconfig.build.json --watch",
35
40
  "lint-typespec-library": "tsp compile . --warn-as-error --import @typespec/library-linter --no-emit",