@typespec/http-server-csharp 0.58.0-alpha.1 → 0.58.0-alpha.10-dev.0

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 (63) hide show
  1. package/cmd/hscs.js +2 -0
  2. package/dist/src/cli/cli.d.ts +2 -0
  3. package/dist/src/cli/cli.d.ts.map +1 -0
  4. package/dist/src/cli/cli.js +124 -0
  5. package/dist/src/cli/cli.js.map +1 -0
  6. package/dist/src/{attributes.d.ts → lib/attributes.d.ts} +1 -1
  7. package/dist/src/lib/attributes.d.ts.map +1 -0
  8. package/dist/src/{attributes.js → lib/attributes.js} +48 -4
  9. package/dist/src/{attributes.js.map → lib/attributes.js.map} +1 -1
  10. package/dist/src/{boilerplate.d.ts → lib/boilerplate.d.ts} +2 -0
  11. package/dist/src/lib/boilerplate.d.ts.map +1 -0
  12. package/dist/src/{boilerplate.js → lib/boilerplate.js} +101 -36
  13. package/dist/src/lib/boilerplate.js.map +1 -0
  14. package/dist/src/lib/index.d.ts.map +1 -0
  15. package/dist/src/lib/index.js.map +1 -0
  16. package/dist/src/{interfaces.d.ts → lib/interfaces.d.ts} +10 -0
  17. package/dist/src/lib/interfaces.d.ts.map +1 -0
  18. package/dist/src/{interfaces.js → lib/interfaces.js} +7 -3
  19. package/dist/src/lib/interfaces.js.map +1 -0
  20. package/dist/src/{lib.d.ts → lib/lib.d.ts} +25 -1
  21. package/dist/src/lib/lib.d.ts.map +1 -0
  22. package/dist/src/{lib.js → lib/lib.js} +31 -0
  23. package/dist/src/lib/lib.js.map +1 -0
  24. package/dist/src/lib/scaffolding.d.ts +20 -0
  25. package/dist/src/lib/scaffolding.d.ts.map +1 -0
  26. package/dist/src/lib/scaffolding.js +388 -0
  27. package/dist/src/lib/scaffolding.js.map +1 -0
  28. package/dist/src/lib/service.d.ts.map +1 -0
  29. package/dist/src/{service.js → lib/service.js} +584 -125
  30. package/dist/src/lib/service.js.map +1 -0
  31. package/dist/src/lib/testing/index.d.ts.map +1 -0
  32. package/dist/src/{testing → lib/testing}/index.js +1 -0
  33. package/dist/src/lib/testing/index.js.map +1 -0
  34. package/dist/src/lib/type-helpers.d.ts.map +1 -0
  35. package/dist/src/lib/type-helpers.js.map +1 -0
  36. package/dist/src/{utils.d.ts → lib/utils.d.ts} +3 -3
  37. package/dist/src/lib/utils.d.ts.map +1 -0
  38. package/dist/src/{utils.js → lib/utils.js} +67 -50
  39. package/dist/src/lib/utils.js.map +1 -0
  40. package/package.json +32 -23
  41. package/dist/src/attributes.d.ts.map +0 -1
  42. package/dist/src/boilerplate.d.ts.map +0 -1
  43. package/dist/src/boilerplate.js.map +0 -1
  44. package/dist/src/index.d.ts.map +0 -1
  45. package/dist/src/index.js.map +0 -1
  46. package/dist/src/interfaces.d.ts.map +0 -1
  47. package/dist/src/interfaces.js.map +0 -1
  48. package/dist/src/lib.d.ts.map +0 -1
  49. package/dist/src/lib.js.map +0 -1
  50. package/dist/src/service.d.ts.map +0 -1
  51. package/dist/src/service.js.map +0 -1
  52. package/dist/src/testing/index.d.ts.map +0 -1
  53. package/dist/src/testing/index.js.map +0 -1
  54. package/dist/src/type-helpers.d.ts.map +0 -1
  55. package/dist/src/type-helpers.js.map +0 -1
  56. package/dist/src/utils.d.ts.map +0 -1
  57. package/dist/src/utils.js.map +0 -1
  58. /package/dist/src/{index.d.ts → lib/index.d.ts} +0 -0
  59. /package/dist/src/{index.js → lib/index.js} +0 -0
  60. /package/dist/src/{service.d.ts → lib/service.d.ts} +0 -0
  61. /package/dist/src/{testing → lib/testing}/index.d.ts +0 -0
  62. /package/dist/src/{type-helpers.d.ts → lib/type-helpers.d.ts} +0 -0
  63. /package/dist/src/{type-helpers.js → lib/type-helpers.js} +0 -0
package/cmd/hscs.js ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import "../dist/src/cli/cli.js";
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":""}
@@ -0,0 +1,124 @@
1
+ /* eslint-disable no-console */
2
+ import { resolvePath, typespecVersion } from "@typespec/compiler";
3
+ import { spawn } from "cross-spawn";
4
+ import pc from "picocolors";
5
+ import yargs from "yargs";
6
+ import { hideBin } from "yargs/helpers";
7
+ async function main() {
8
+ console.log(`TypeSpec Http Server Emitter for C-Sharp v${typespecVersion}\n`);
9
+ await yargs(hideBin(process.argv))
10
+ .scriptName("hscs")
11
+ .help()
12
+ .strict()
13
+ .parserConfiguration({
14
+ "greedy-arrays": false,
15
+ "boolean-negation": false,
16
+ })
17
+ .command("scaffold [--use-swaggerui] <project-directory> <path-to-spec>", "Generate a complete project with mock implementation at the given project-directory for the given spec. This required dotnet 9: https://dotnet.microsoft.com/download.", (cmd) => {
18
+ return cmd
19
+ .option("use-swaggerui", {
20
+ description: "Include generated OpenAPI and a SwaggerUI endpoint in the service project. THIS OPTION REQUIRES '@typespec/openapi3' as a dependency of your typespec project.",
21
+ type: "boolean",
22
+ default: false,
23
+ })
24
+ .positional("project-directory", {
25
+ description: "Path to the directory where the project will be created.",
26
+ type: "string",
27
+ demandOption: true,
28
+ })
29
+ .positional("path-to-spec", {
30
+ description: "The path to the spec to generate a project for",
31
+ type: "string",
32
+ demandOption: true,
33
+ });
34
+ }, async (args) => {
35
+ const projectDir = resolvePath(process.cwd(), args["project-directory"]);
36
+ const pathToSpec = resolvePath(process.cwd(), args["path-to-spec"]);
37
+ const useSwagger = args["use-swaggerui"];
38
+ console.log(pc.bold("Generating new Project"));
39
+ let result = await runScriptAsync("dotnet", ["new", "web", "-o", projectDir, "--force"]);
40
+ if (result !== 0) {
41
+ console.log(pc.bold("Dotnet version 9 cli is required for scaffolding. Download here: https://dotnet.microsoft.com/download "));
42
+ return;
43
+ }
44
+ if (useSwagger) {
45
+ console.log(pc.bold("Adding OpenApi generation support"));
46
+ console.log(pc.green(`> dotnet add ${projectDir} package SwashBuckle.AspNetCore`));
47
+ result = await runScriptAsync("dotnet", [
48
+ "add",
49
+ projectDir,
50
+ "package",
51
+ "SwashBuckle.AspNetCore",
52
+ ]);
53
+ }
54
+ console.log(pc.bold("Compiling spec with mock implementations"));
55
+ const generatedTargetDir = resolvePath(process.cwd(), projectDir, "generated");
56
+ const generatedOpenApiDir = resolvePath(process.cwd(), projectDir, "openapi");
57
+ const compileArgs = [
58
+ "tsp",
59
+ "compile",
60
+ pathToSpec,
61
+ "--emit",
62
+ "@typespec/http-server-csharp",
63
+ "--option",
64
+ `@typespec/http-server-csharp.emitter-output-dir=${generatedTargetDir}`,
65
+ "--option",
66
+ "@typespec/http-server-csharp.emit-mocks=all",
67
+ ];
68
+ const swaggerArgs = [
69
+ "--emit",
70
+ "@typespec/openapi3",
71
+ "--option",
72
+ `@typespec/openapi3.emitter-output-dir=${generatedOpenApiDir}`,
73
+ "--option",
74
+ "@typespec/http-server-csharp.use-swaggerui=true",
75
+ ];
76
+ if (useSwagger)
77
+ compileArgs.push(...swaggerArgs);
78
+ result = await runScriptAsync("npx", compileArgs);
79
+ if (result === 0) {
80
+ console.log(pc.bold(`Your project was successfully created at "${projectDir}"`));
81
+ console.log(`You can build and start the project using 'dotnet run --project ${projectDir}'`);
82
+ }
83
+ else {
84
+ console.log(pc.bold("There were one or more errors"));
85
+ if (useSwagger) {
86
+ console.log("You must have @typespec/openapi3 as a dependency in your typespec project for use of SwaggerUI. ");
87
+ }
88
+ }
89
+ })
90
+ .version(typespecVersion)
91
+ .demandCommand(1, "You must use one of the supported commands.").argv;
92
+ }
93
+ function internalError(error) {
94
+ // NOTE: An expected error, like one thrown for bad input, shouldn't reach
95
+ // here, but be handled somewhere else. If we reach here, it should be
96
+ // considered a bug and therefore we should not suppress the stack trace as
97
+ // that risks losing it in the case of a bug that does not repro easily.
98
+ console.log(error);
99
+ }
100
+ function runScriptAsync(cmd, args) {
101
+ let resolver;
102
+ let rejecter;
103
+ const promise = new Promise((resolve, reject) => {
104
+ resolver = resolve;
105
+ rejecter = reject;
106
+ });
107
+ console.log(pc.green(`> ${cmd} ${args.join(" ")}`));
108
+ const proc = spawn(cmd, args);
109
+ proc.stdout?.on("data", (data) => console.log(pc.dim(data)));
110
+ proc.stderr?.on("data", (data) => {
111
+ console.error(data);
112
+ rejecter(data);
113
+ });
114
+ proc.on("close", (_, __) => {
115
+ resolver(proc.exitCode || 0);
116
+ });
117
+ return promise;
118
+ }
119
+ process.on("unhandledRejection", (error) => {
120
+ console.error("Unhandled promise rejection!");
121
+ internalError(error);
122
+ });
123
+ main().catch(internalError);
124
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare function getFormatValue(program: Program, type: Scalar | ModelPro
9
9
  * @param type The type to check
10
10
  * @returns The attributes associated with the type, or none
11
11
  */
12
- export declare function getEncodedNameAttribute(program: Program, type: ModelProperty): Attribute | undefined;
12
+ export declare function getEncodedNameAttribute(program: Program, type: ModelProperty, cSharpName?: string): Attribute | undefined;
13
13
  /**
14
14
  * Return the encoding attributes for model properties
15
15
  * @param program The program being processed
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../src/lib/attributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,OAAO,EACP,MAAM,EACN,IAAI,EAUL,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,SAAS,EASV,MAAM,iBAAiB,CAAC;AAIzB,eAAO,MAAM,aAAa,EAAE,MAA2B,CAAC;AAExD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,GAAG,aAAa,GAC3B,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAEjG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,EACnB,UAAU,CAAC,EAAE,MAAM,GAClB,SAAS,GAAG,SAAS,CAuDvB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,CA0BxF;AAoDD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,GAAG,MAAM,GAC3B,SAAS,GAAG,SAAS,CAgEvB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,GAAG,MAAM,GAC3B,SAAS,GAAG,SAAS,CA8CvB;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,GAAG,MAAM,GAC3B,SAAS,GAAG,SAAS,CAgFvB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAyCvE;AAYD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAqC5F"}
@@ -1,4 +1,5 @@
1
1
  import { getEncode, getFormat, getMaxItems, getMaxValue, getMaxValueExclusive, getMinItems, getMinValue, getMinValueExclusive, resolveEncodedName, } from "@typespec/compiler";
2
+ import { camelCase } from "change-case";
2
3
  import { Attribute, AttributeType, BooleanValue, CSharpType, HelperNamespace, NumericValue, Parameter, RawValue, StringValue, } from "./interfaces.js";
3
4
  import { getStringConstraint, isArrayType } from "./type-helpers.js";
4
5
  import { getCSharpIdentifier, getCSharpTypeForScalar } from "./utils.js";
@@ -16,7 +17,7 @@ export function getFormatValue(program, type) {
16
17
  * @param type The type to check
17
18
  * @returns The attributes associated with the type, or none
18
19
  */
19
- export function getEncodedNameAttribute(program, type) {
20
+ export function getEncodedNameAttribute(program, type, cSharpName) {
20
21
  const encodedName = resolveEncodedName(program, type, "application/json");
21
22
  if (encodedName !== type.name) {
22
23
  const attr = new Attribute(new AttributeType({
@@ -36,6 +37,24 @@ export function getEncodedNameAttribute(program, type) {
36
37
  }));
37
38
  return attr;
38
39
  }
40
+ if (cSharpName && type.name !== camelCase(cSharpName)) {
41
+ const attr = new Attribute(new AttributeType({
42
+ name: "JsonPropertyName",
43
+ namespace: JsonNamespace,
44
+ }), []);
45
+ attr.parameters.push(new Parameter({
46
+ name: "name",
47
+ value: new StringValue(type.name),
48
+ optional: false,
49
+ type: new CSharpType({
50
+ name: "string",
51
+ namespace: "System",
52
+ isBuiltIn: true,
53
+ isValueType: true,
54
+ }),
55
+ }));
56
+ return attr;
57
+ }
39
58
  return undefined;
40
59
  }
41
60
  /**
@@ -289,10 +308,35 @@ export function getNumericConstraintAttribute(program, type) {
289
308
  export function getSafeIntAttribute(type) {
290
309
  if (type.name.toLowerCase() !== "safeint")
291
310
  return undefined;
292
- return new Attribute(new AttributeType({
293
- name: "SafeInt",
311
+ const attr = new Attribute(new AttributeType({
312
+ name: `NumericConstraint<long>`,
294
313
  namespace: HelperNamespace,
295
314
  }), []);
315
+ attr.parameters.push(new Parameter({
316
+ name: "MinValue",
317
+ value: new NumericValue(-9007199254740991),
318
+ optional: true,
319
+ type: new CSharpType({
320
+ name: "long",
321
+ namespace: "System",
322
+ isBuiltIn: true,
323
+ isValueType: true,
324
+ isNullable: false,
325
+ }),
326
+ }));
327
+ attr.parameters.push(new Parameter({
328
+ name: "MaxValue",
329
+ value: new NumericValue(9007199254740991),
330
+ optional: true,
331
+ type: new CSharpType({
332
+ name: "long",
333
+ namespace: "System",
334
+ isBuiltIn: true,
335
+ isValueType: true,
336
+ isNullable: false,
337
+ }),
338
+ }));
339
+ return attr;
296
340
  }
297
341
  function getEnumAttribute(type, cSharpName) {
298
342
  return new Attribute(new AttributeType({
@@ -312,7 +356,7 @@ export function getAttributes(program, type, cSharpName) {
312
356
  const arrayAttr = getArrayConstraintAttribute(program, type);
313
357
  const stringAttr = getStringConstraintAttribute(program, type);
314
358
  const numberAttr = getNumericConstraintAttribute(program, type);
315
- const name = getEncodedNameAttribute(program, type);
359
+ const name = getEncodedNameAttribute(program, type, cSharpName);
316
360
  if (arrayAttr)
317
361
  result.add(arrayAttr);
318
362
  if (stringAttr)
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/attributes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../../src/lib/attributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,SAAS,EACT,aAAa,EACb,YAAY,EACZ,UAAU,EACV,eAAe,EACf,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,CAAC,MAAM,aAAa,GAAW,kBAAkB,CAAC;AAExD,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,IAA4B;IAE5B,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,IAA4B;IAC3E,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAgB,EAChB,IAAmB,EACnB,UAAmB;IAEnB,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAC1E,IAAI,WAAW,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAc,IAAI,SAAS,CACnC,IAAI,aAAa,CAAC;YAChB,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,aAAa;SACzB,CAAC,EACF,EAAE,CACH,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI,WAAW,CAAC,WAAW,CAAC;YACnC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;SACH,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,GAAc,IAAI,SAAS,CACnC,IAAI,aAAa,CAAC;YAChB,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE,aAAa;SACzB,CAAC,EACF,EAAE,CACH,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YACjC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;SACH,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,IAAmB;IACzE,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,QAAQ,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjC,KAAK,iBAAiB;gBACpB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBAC3E,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBACpE,MAAM;YACR;gBACE,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACxC,QAAQ,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;wBACjD,KAAK,WAAW;4BACd,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAC,CAAC;4BAC7D,MAAM;wBACR,KAAK,eAAe;4BAClB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,kCAAkC,CAAC,CAAC,CAAC;4BAC3E,MAAM;oBACV,CAAC;gBACH,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAMD,SAAS,aAAa,CAAC,OAAgB,EAAE,QAAuB;IAC9D,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC/B,IAAI,QAAQ,GACV,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACjF,OAAO,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC3C,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAgB,EAChB,MAA8B;IAE9B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACpG,CAAC;AACD,SAAS,6BAA6B;IACpC,OAAO,IAAI,UAAU,CAAC;QACpB,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,kBAAkB;QAC7B,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB,CAAC,aAAqB;IACtD,OAAO,IAAI,SAAS,CAAC,6BAA6B,EAAE,EAAE;QACpD,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,WAAW,EAAE;YACnB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI,QAAQ,CAAC,UAAU,aAAa,GAAG,CAAC;SAChD,CAAC;KACH,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAAgB,EAChB,IAA4B;IAE5B,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAuB,UAAU,CAAC,SAAS,CAAC;IAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAClG,MAAM,IAAI,GAAc,IAAI,SAAS,CACnC,IAAI,aAAa,CAAC;QAChB,IAAI,EAAE,kBAAkB;QACxB,SAAS,EAAE,eAAe;KAC3B,CAAC,EACF,EAAE,CACH,CAAC;IAEF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI,YAAY,CAAC,SAAS,CAAC;YAClC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI,YAAY,CAAC,SAAS,CAAC;YAClC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,IAAI,WAAW,CAAC,OAAO,CAAC;YAC/B,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAgB,EAChB,IAA4B;IAE5B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,QAAQ,GAAuB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACvE,MAAM,IAAI,GAAc,IAAI,SAAS,CACnC,IAAI,aAAa,CAAC;QAChB,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE,eAAe;KAC3B,CAAC,EACF,EAAE,CACH,CAAC;IAEF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI,YAAY,CAAC,QAAQ,CAAC;YACjC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI,YAAY,CAAC,QAAQ,CAAC;YACjC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAC3C,OAAgB,EAChB,IAA4B;IAE5B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5E,MAAM,QAAQ,GAAuB,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,iBAAiB,GAAuB,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9D,IACE,QAAQ,KAAK,SAAS;QACtB,QAAQ,KAAK,SAAS;QACtB,iBAAiB,KAAK,SAAS;QAC/B,iBAAiB,KAAK,SAAS;QAE/B,OAAO,SAAS,CAAC;IACnB,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,IAAI,GAAc,IAAI,SAAS,CACnC,IAAI,aAAa,CAAC;QAChB,IAAI,EAAE,qBAAqB,UAAU,CAAC,gBAAgB,EAAE,GAAG;QAC3D,SAAS,EAAE,eAAe;KAC3B,CAAC,EACF,EAAE,CACH,CAAC;IAEF,MAAM,SAAS,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI,YAAY,CAAC,SAAS,CAAC;YAClC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,UAAU;SACjB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,IAAI,YAAY,CAAC,SAAS,CAAC;YAClC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,UAAU;SACjB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;YAC7B,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;YACZ,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;YAC7B,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI,UAAU,CAAC;gBACnB,IAAI,EAAE,MAAM;gBACZ,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC;SACH,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC5D,MAAM,IAAI,GAAc,IAAI,SAAS,CACnC,IAAI,aAAa,CAAC;QAChB,IAAI,EAAE,yBAAyB;QAC/B,SAAS,EAAE,eAAe;KAC3B,CAAC,EACF,EAAE,CACH,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;QACZ,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,IAAI,YAAY,CAAC,CAAC,gBAAgB,CAAC;QAC1C,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI,UAAU,CAAC;YACnB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC;KACH,CAAC,CACH,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAClB,IAAI,SAAS,CAAC;QACZ,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,IAAI,YAAY,CAAC,gBAAgB,CAAC;QACzC,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI,UAAU,CAAC;YACnB,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC;KACH,CAAC,CACH,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAU,EAAE,UAAmB;IACvD,OAAO,IAAI,SAAS,CAClB,IAAI,aAAa,CAAC;QAChB,IAAI,EAAE,uBAAuB,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACtG,SAAS,EAAE,kBAAkB;KAC9B,CAAC,EACF,EAAE,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,IAAU,EAAE,UAAmB;IAC7E,MAAM,MAAM,GAAmB,IAAI,GAAG,EAAa,CAAC;IACpD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;YAC/C,MAAM;QACR,KAAK,OAAO;YACV,MAAM;QACR,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,SAAS,GAAG,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,4BAA4B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,6BAA6B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChE,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YAChE,IAAI,SAAS;gBAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,UAAU;gBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,UAAU;gBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,IAAI;gBAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChE,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;gBACzC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;YACD,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACzD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;gBAC3C,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC5B,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ;YACX,CAAC;gBACC,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,OAAO;oBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAED,MAAM;IACV,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { AssetEmitter } from "@typespec/compiler/emitter-framework";
2
2
  import { LibrarySourceFile } from "./interfaces.js";
3
+ export declare const GeneratedFileHeader = "// Generated by @typespec/http-server-csharp\n// <auto-generated />";
4
+ export declare const GeneratedFileHeaderWithNullable: string;
3
5
  export declare function getSerializationSourceFiles(emitter: AssetEmitter<string, Record<string, never>>): LibrarySourceFile[];
4
6
  //# sourceMappingURL=boilerplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boilerplate.d.ts","sourceRoot":"","sources":["../../../src/lib/boilerplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,eAAO,MAAM,mBAAmB,wEACV,CAAC;AACvB,eAAO,MAAM,+BAA+B,EAAE,MAE3B,CAAC;AAEpB,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GACnD,iBAAiB,EAAE,CA4DrB"}
@@ -1,4 +1,9 @@
1
1
  import { LibrarySourceFile } from "./interfaces.js";
2
+ export const GeneratedFileHeader = `// Generated by @typespec/http-server-csharp
3
+ // <auto-generated />`;
4
+ export const GeneratedFileHeaderWithNullable = `// Generated by @typespec/http-server-csharp
5
+ // <auto-generated />
6
+ #nullable enable`;
2
7
  export function getSerializationSourceFiles(emitter) {
3
8
  const sourceFiles = [];
4
9
  sourceFiles.push(new LibrarySourceFile({
@@ -37,14 +42,19 @@ export function getSerializationSourceFiles(emitter) {
37
42
  filename: "NumericArrayConstraintAttribute.cs",
38
43
  emitter: emitter,
39
44
  getContents: getNumericArrayConstraintConverter,
45
+ }), new LibrarySourceFile({
46
+ filename: "IJsonSerializationProvider.cs",
47
+ emitter: emitter,
48
+ getContents: getJsonProviderInterface,
49
+ }), new LibrarySourceFile({
50
+ filename: "JsonSerializationProvider.cs",
51
+ emitter: emitter,
52
+ getContents: getJsonProvider,
40
53
  }));
41
54
  return sourceFiles;
42
55
  }
43
56
  function getNumericConstraintConverter() {
44
- return `// Copyright (c) Microsoft Corporation. All rights reserved.
45
- // Licensed under the MIT License.
46
- // <auto-generated />
47
- #nullable enable
57
+ return `${GeneratedFileHeaderWithNullable}
48
58
 
49
59
  using System.Numerics;
50
60
  using System.Text.Json;
@@ -144,10 +154,7 @@ function getNumericConstraintConverter() {
144
154
  }`;
145
155
  }
146
156
  function getStringConstraintConverter() {
147
- return `// Copyright (c) Microsoft Corporation. All rights reserved.
148
- // Licensed under the MIT License.
149
- // <auto-generated />
150
- #nullable enable
157
+ return `${GeneratedFileHeaderWithNullable}
151
158
 
152
159
  using System.Text.Json;
153
160
  using System.Text.Json.Serialization;
@@ -268,10 +275,7 @@ function getStringConstraintConverter() {
268
275
  }`;
269
276
  }
270
277
  function getArrayConstraintConverter() {
271
- return `// Copyright (c) Microsoft Corporation. All rights reserved.
272
- // Licensed under the MIT License.
273
- // <auto-generated />
274
- #nullable enable
278
+ return `${GeneratedFileHeaderWithNullable}
275
279
 
276
280
  using System.Text.Json;
277
281
  using System.Text.Json.Serialization;
@@ -383,10 +387,7 @@ function getArrayConstraintConverter() {
383
387
  }`;
384
388
  }
385
389
  function getNumericArrayConstraintConverter() {
386
- return `// Copyright (c) Microsoft Corporation. All rights reserved.
387
- // Licensed under the MIT License.
388
- // <auto-generated />
389
- #nullable enable
390
+ return `${GeneratedFileHeaderWithNullable}
390
391
 
391
392
  using System.Numerics;
392
393
  using System.Text.Json;
@@ -420,10 +421,7 @@ public class NumericArrayConstraintAttribute<T> : ArrayConstraintAttribute<T> wh
420
421
  }`;
421
422
  }
422
423
  function getStringArrayConstraintConverter() {
423
- return `// Copyright (c) Microsoft Corporation. All rights reserved.
424
- // Licensed under the MIT License.
425
- // <auto-generated />
426
- #nullable enable
424
+ return `${GeneratedFileHeaderWithNullable}
427
425
 
428
426
  using System.Text.Json;
429
427
  using System.Text.Json.Serialization;
@@ -454,10 +452,7 @@ public class StringArrayConstraintAttribute : ArrayConstraintAttribute<string>
454
452
  }`;
455
453
  }
456
454
  function getTimeSpanDurationConverter() {
457
- return `// Copyright (c) Microsoft Corporation. All rights reserved.
458
- // Licensed under the MIT License.
459
- // <auto-generated />
460
- #nullable enable
455
+ return `${GeneratedFileHeaderWithNullable}
461
456
 
462
457
  using System.Text.Json;
463
458
  using System.Text.Json.Serialization;
@@ -489,10 +484,7 @@ function getTimeSpanDurationConverter() {
489
484
  `;
490
485
  }
491
486
  function getBase64UrlConverter() {
492
- return `// Copyright (c) Microsoft Corporation. All rights reserved.
493
- // Licensed under the MIT License.
494
- // <auto-generated />
495
- #nullable enable
487
+ return `${GeneratedFileHeaderWithNullable}
496
488
 
497
489
  using System.Text.Json;
498
490
  using System.Text.Json.Serialization;
@@ -536,10 +528,7 @@ function getBase64UrlConverter() {
536
528
  `;
537
529
  }
538
530
  function getUnixEpochDateTimeConverter() {
539
- return `// Copyright (c) Microsoft Corporation. All rights reserved.
540
- // Licensed under the MIT License.
541
- // <auto-generated />
542
- #nullable enable
531
+ return `${GeneratedFileHeaderWithNullable}
543
532
 
544
533
  using System.Text.Json;
545
534
  using System.Text.Json.Serialization;
@@ -569,10 +558,7 @@ function getUnixEpochDateTimeConverter() {
569
558
  `;
570
559
  }
571
560
  function getUnixEpochDateTimeOffsetConverter() {
572
- return `// Copyright (c) Microsoft Corporation. All rights reserved.
573
- // Licensed under the MIT License.
574
- // <auto-generated />
575
- #nullable enable
561
+ return `${GeneratedFileHeaderWithNullable}
576
562
 
577
563
  using System.Text.Json;
578
564
  using System.Text.Json.Serialization;
@@ -602,4 +588,83 @@ function getUnixEpochDateTimeOffsetConverter() {
602
588
  }
603
589
  `;
604
590
  }
591
+ function getJsonProviderInterface() {
592
+ return `${GeneratedFileHeaderWithNullable}
593
+
594
+ using System.Text.Json;
595
+ using System.Text.Json.Serialization;
596
+
597
+ namespace TypeSpec.Helpers
598
+ {
599
+ /// <summary>
600
+ /// Interface for Json serialization, suitable for providing a service in ASP.Net dependency injection
601
+ /// </summary>
602
+ public interface IJsonSerializationProvider
603
+ {
604
+ /// <summary>
605
+ /// Serialize an object to a JSON string
606
+ /// </summary>
607
+ /// <typeparam name="T">The type of the object</typeparam>
608
+ /// <param name="value">The object to serialize</param>
609
+ /// <returns>A string representing the serialized object</returns>
610
+ string Serialize<T>(T value);
611
+
612
+ /// <summary>
613
+ /// Create an object from a json string
614
+ /// </summary>
615
+ /// <typeparam name="T">The type of the object represented in the string</typeparam>
616
+ /// <param name="value">The strign to deserialize</param>
617
+ /// <returns>The deserialized object, or null</returns>
618
+ T? Deserialize<T>(string value);
619
+ }
620
+ }
621
+ `;
622
+ }
623
+ function getJsonProvider() {
624
+ return `${GeneratedFileHeaderWithNullable}
625
+
626
+ using System.Text.Json;
627
+ using System.Text.Json.Serialization;
628
+
629
+ namespace TypeSpec.Helpers
630
+ {
631
+ /// <summary>
632
+ /// Standard implementation of IJsonSerializationProvider
633
+ /// </summary>
634
+ public class JsonSerializationProvider : IJsonSerializationProvider
635
+ {
636
+ /// <summary>
637
+ /// The options to use for serialization
638
+ /// </summary>
639
+ public virtual JsonSerializerOptions Options { get; } = new JsonSerializerOptions
640
+ {
641
+ PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
642
+ DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
643
+ };
644
+
645
+ /// <summary>
646
+ /// Create an object from a json string
647
+ /// </summary>
648
+ /// <typeparam name="T">The type of the object represented in the string</typeparam>
649
+ /// <param name="value">The strign to deserialize</param>
650
+ /// <returns>The deserialized object, or null</returns>
651
+ public virtual T? Deserialize<T>(string value)
652
+ {
653
+ return JsonSerializer.Deserialize<T>(value, Options);
654
+ }
655
+
656
+ /// <summary>
657
+ /// Serialize an object to a JSON string
658
+ /// </summary>
659
+ /// <typeparam name="T">The type of the object</typeparam>
660
+ /// <param name="value">The object to serialize</param>
661
+ /// <returns>A string representing the serialized object</returns>
662
+ public virtual string Serialize<T>(T value)
663
+ {
664
+ return JsonSerializer.Serialize(value, Options);
665
+ }
666
+ }
667
+ }
668
+ `;
669
+ }
605
670
  //# sourceMappingURL=boilerplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boilerplate.js","sourceRoot":"","sources":["../../../src/lib/boilerplate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,4BAA4B,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG,yBAAyB,CAAC;AAEnD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
@@ -1,20 +1,28 @@
1
1
  import { Model } from "@typespec/compiler";
2
2
  import { AssetEmitter, Context, EmittedSourceFile, EmitterOutput, Scope, SourceFile } from "@typespec/compiler/emitter-framework";
3
+ import { HttpStatusCodeRange } from "@typespec/http";
3
4
  export declare const HelperNamespace: string;
4
5
  export interface CSharpTypeMetadata {
5
6
  name: string;
6
7
  namespace?: string;
7
8
  }
9
+ export interface ResponseInfo {
10
+ statusCode: number | HttpStatusCodeRange | "*";
11
+ csharpStatusCode: string;
12
+ resultType: CSharpType;
13
+ }
8
14
  export declare class CSharpType implements CSharpTypeMetadata {
9
15
  name: string;
10
16
  namespace: string;
11
17
  isBuiltIn: boolean;
12
18
  isValueType: boolean;
19
+ isNullable: boolean;
13
20
  constructor(input: {
14
21
  name: string;
15
22
  namespace: string;
16
23
  isBuiltIn?: boolean;
17
24
  isValueType?: boolean;
25
+ isNullable?: boolean;
18
26
  });
19
27
  isNamespaceInScope(scope?: Scope<string>, visited?: Set<Scope<string>>): boolean;
20
28
  getTypeReference(scope?: Scope<string>): string;
@@ -121,9 +129,11 @@ export declare class LibrarySourceFile {
121
129
  filename: string;
122
130
  getContents: () => string;
123
131
  emitter: AssetEmitter<string, Record<string, never>>;
132
+ path?: string;
124
133
  });
125
134
  filename: string;
126
135
  source: SourceFile<string>;
127
136
  emitted: EmittedSourceFile;
137
+ path: string;
128
138
  }
129
139
  //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/lib/interfaces.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,13 @@ export class CSharpType {
4
4
  namespace;
5
5
  isBuiltIn;
6
6
  isValueType;
7
+ isNullable;
7
8
  constructor(input) {
8
9
  this.name = input.name;
9
10
  this.namespace = input.namespace;
10
11
  this.isBuiltIn = input.isBuiltIn !== undefined ? input.isBuiltIn : input.namespace === "System";
11
12
  this.isValueType = input.isValueType !== undefined ? input.isValueType : false;
13
+ this.isNullable = input.isNullable !== undefined ? input.isNullable : false;
12
14
  }
13
15
  isNamespaceInScope(scope, visited) {
14
16
  if (this.isBuiltIn)
@@ -75,7 +77,7 @@ export class NumericValue extends CSharpValue {
75
77
  this.value = value;
76
78
  }
77
79
  emitValue(scope) {
78
- return `${this.value}` ?? "0";
80
+ return `${this.value ?? 0}`;
79
81
  }
80
82
  }
81
83
  export class BooleanValue extends CSharpValue {
@@ -85,7 +87,7 @@ export class BooleanValue extends CSharpValue {
85
87
  this.value = value;
86
88
  }
87
89
  emitValue(scope) {
88
- return `${this.value}` ?? false;
90
+ return `${this.value}`;
89
91
  }
90
92
  }
91
93
  export class NullValue extends CSharpValue {
@@ -208,8 +210,9 @@ export var NameCasingType;
208
210
  })(NameCasingType || (NameCasingType = {}));
209
211
  export class LibrarySourceFile {
210
212
  constructor(params) {
213
+ this.path = params.path !== undefined ? params.path : "lib/";
211
214
  this.filename = params.filename;
212
- this.source = params.emitter.createSourceFile(`lib/${this.filename}`);
215
+ this.source = params.emitter.createSourceFile(`${this.path}/${this.filename}`);
213
216
  this.emitted = {
214
217
  path: this.source.path,
215
218
  contents: params.getContents(),
@@ -218,5 +221,6 @@ export class LibrarySourceFile {
218
221
  filename;
219
222
  source;
220
223
  emitted;
224
+ path;
221
225
  }
222
226
  //# sourceMappingURL=interfaces.js.map