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

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 (46) hide show
  1. package/README.md +69 -6
  2. package/dist/src/cli/cli.js +92 -43
  3. package/dist/src/cli/cli.js.map +1 -1
  4. package/dist/src/lib/attributes.d.ts.map +1 -1
  5. package/dist/src/lib/attributes.js +65 -31
  6. package/dist/src/lib/attributes.js.map +1 -1
  7. package/dist/src/lib/boilerplate.d.ts +1 -1
  8. package/dist/src/lib/boilerplate.d.ts.map +1 -1
  9. package/dist/src/lib/boilerplate.js +153 -31
  10. package/dist/src/lib/boilerplate.js.map +1 -1
  11. package/dist/src/lib/doc.d.ts +5 -0
  12. package/dist/src/lib/doc.d.ts.map +1 -0
  13. package/dist/src/lib/doc.js +237 -0
  14. package/dist/src/lib/doc.js.map +1 -0
  15. package/dist/src/lib/interfaces.d.ts +48 -4
  16. package/dist/src/lib/interfaces.d.ts.map +1 -1
  17. package/dist/src/lib/interfaces.js +89 -28
  18. package/dist/src/lib/interfaces.js.map +1 -1
  19. package/dist/src/lib/lib.d.ts +32 -3
  20. package/dist/src/lib/lib.d.ts.map +1 -1
  21. package/dist/src/lib/lib.js +57 -2
  22. package/dist/src/lib/lib.js.map +1 -1
  23. package/dist/src/lib/project.d.ts +5 -0
  24. package/dist/src/lib/project.d.ts.map +1 -0
  25. package/dist/src/lib/project.js +101 -0
  26. package/dist/src/lib/project.js.map +1 -0
  27. package/dist/src/lib/scaffolding.d.ts +7 -5
  28. package/dist/src/lib/scaffolding.d.ts.map +1 -1
  29. package/dist/src/lib/scaffolding.js +113 -40
  30. package/dist/src/lib/scaffolding.js.map +1 -1
  31. package/dist/src/lib/service.d.ts.map +1 -1
  32. package/dist/src/lib/service.js +496 -587
  33. package/dist/src/lib/service.js.map +1 -1
  34. package/dist/src/lib/type-helpers.d.ts +5 -1
  35. package/dist/src/lib/type-helpers.d.ts.map +1 -1
  36. package/dist/src/lib/type-helpers.js +32 -3
  37. package/dist/src/lib/type-helpers.js.map +1 -1
  38. package/dist/src/lib/utils.d.ts +79 -7
  39. package/dist/src/lib/utils.d.ts.map +1 -1
  40. package/dist/src/lib/utils.js +971 -36
  41. package/dist/src/lib/utils.js.map +1 -1
  42. package/package.json +39 -26
  43. package/dist/src/lib/testing/index.d.ts +0 -3
  44. package/dist/src/lib/testing/index.d.ts.map +0 -1
  45. package/dist/src/lib/testing/index.js +0 -7
  46. package/dist/src/lib/testing/index.js.map +0 -1
@@ -1,33 +1,43 @@
1
- import { code } from "@typespec/compiler/emitter-framework";
1
+ import { code } from "@typespec/asset-emitter";
2
2
  import { GeneratedFileHeaderWithNullable } from "./boilerplate.js";
3
- import { LibrarySourceFile } from "./interfaces.js";
4
- export function getScaffoldingHelpers(emitter, useSwagger, openApiPath) {
5
- const sourceFiles = [];
6
- sourceFiles.push(new LibrarySourceFile({
7
- filename: "IInitializer.cs",
8
- emitter: emitter,
9
- getContents: getInitializerInterface,
10
- }), new LibrarySourceFile({
11
- filename: "Initializer.cs",
12
- emitter: emitter,
13
- getContents: getInitializerImplementation,
14
- }), new LibrarySourceFile({
15
- filename: "Program.cs",
16
- emitter: emitter,
17
- getContents: () => getProjectStartup(useSwagger, openApiPath),
18
- path: "../",
19
- }));
3
+ import { CSharpCollectionType, LibrarySourceFile } from "./interfaces.js";
4
+ export function getScaffoldingHelpers(emitter, useSwagger, openApiPath, hasMockRegistration) {
5
+ const sourceFiles = [
6
+ new LibrarySourceFile({
7
+ filename: "Program.cs",
8
+ emitter: emitter,
9
+ getContents: () => getProjectStartup(useSwagger, openApiPath, hasMockRegistration),
10
+ path: ".",
11
+ conditional: true,
12
+ }),
13
+ ];
14
+ if (hasMockRegistration) {
15
+ sourceFiles.push(new LibrarySourceFile({
16
+ filename: "IInitializer.cs",
17
+ emitter: emitter,
18
+ getContents: getInitializerInterface,
19
+ path: "mocks",
20
+ conditional: true,
21
+ }), new LibrarySourceFile({
22
+ filename: "Initializer.cs",
23
+ emitter: emitter,
24
+ getContents: getInitializerImplementation,
25
+ path: "mocks",
26
+ conditional: true,
27
+ }));
28
+ }
20
29
  return sourceFiles;
21
30
  }
22
- export function getBusinessLogicImplementations(emitter, registrations) {
31
+ export function getBusinessLogicImplementations(emitter, registrations, useSwagger, openApiPath) {
23
32
  const sourceFiles = [];
24
33
  const mocks = [];
25
- for (const [name, impl] of registrations) {
34
+ for (const [_, impl] of registrations) {
26
35
  sourceFiles.push(new LibrarySourceFile({
27
36
  filename: `${impl.className}.cs`,
28
37
  emitter: emitter,
29
- getContents: () => getBusinessLogicImplementation(name, impl),
30
- path: "../mocks/",
38
+ getContents: () => getBusinessLogicImplementation(impl),
39
+ path: "mocks",
40
+ conditional: true,
31
41
  }));
32
42
  mocks.push(impl);
33
43
  }
@@ -36,32 +46,55 @@ export function getBusinessLogicImplementations(emitter, registrations) {
36
46
  filename: "MockRegistration.cs",
37
47
  emitter: emitter,
38
48
  getContents: () => getMockRegistration(mocks),
39
- path: "../mocks/",
49
+ path: "mocks",
50
+ conditional: true,
40
51
  }));
41
52
  }
42
53
  return sourceFiles;
43
54
  }
44
- function getBusinessLogicImplementation(iface, mock) {
55
+ function getReturnStatement(returnType, instantiated) {
56
+ if (returnType.name === "JsonObject") {
57
+ return `return Task.FromResult(new JsonObject());`;
58
+ }
59
+ if (returnType.name === "JsonNode") {
60
+ return `return Task.FromResult(new JsonObject() as JsonNode);`;
61
+ }
62
+ if (returnType.isValueType && returnType.isNullable) {
63
+ return `return Task.FromResult(_initializer.Initialize(typeof(${instantiated})) as ${instantiated} ?? default);`;
64
+ }
65
+ if (returnType.isValueType) {
66
+ return `return Task.FromResult<${instantiated}>(default);`;
67
+ }
68
+ if (returnType.isCollection) {
69
+ if (returnType instanceof CSharpCollectionType) {
70
+ return `return Task.FromResult<${instantiated}>(${returnType.getImplementationType()});`;
71
+ }
72
+ return `return Task.FromResult<${instantiated}>([]);`;
73
+ }
74
+ if (returnType.name === "string") {
75
+ return `return Task.FromResult("");`;
76
+ }
77
+ else if (returnType.isClass) {
78
+ return `return Task.FromResult(_initializer.Initialize<${instantiated}>());`;
79
+ }
80
+ else {
81
+ return `throw new NotImplementedException();`;
82
+ }
83
+ }
84
+ function getBusinessLogicImplementation(mock) {
45
85
  const methods = [];
46
86
  for (const method of mock.methods) {
47
87
  const methodCode = method.instantiatedReturnType !== undefined
48
- ? `return Task.FromResult(_initializer.Initialize<${method.instantiatedReturnType}>());`
88
+ ? getReturnStatement(method.returnType, method.instantiatedReturnType)
49
89
  : "return Task.CompletedTask;";
50
- methods.push(` public ${method.returnType} ${method.methodName}( ${method.methodParams})
90
+ methods.push(` public ${method.returnTypeName} ${method.methodName}( ${method.methodParams})
51
91
  {
52
92
  ${methodCode}
53
93
  }`);
54
94
  }
55
95
  return `${GeneratedFileHeaderWithNullable}
56
96
 
57
- using System;
58
- using System.Net;
59
- using System.Text.Json;
60
- using System.Text.Json.Serialization;
61
- using System.Threading.Tasks;
62
- using Microsoft.AspNetCore.Mvc;${mock.methods.some((m) => m.methodParams.includes("MultipartReader")) ? `\nusing Microsoft.AspNetCore.WebUtilities;` : ""}
63
- using ${mock.namespace}.Models;
64
- using TypeSpec.Helpers;
97
+ ${mock.usings.flatMap((u) => `using ${u};`).join("\n")}
65
98
 
66
99
  namespace ${mock.namespace}
67
100
  {
@@ -71,16 +104,28 @@ namespace ${mock.namespace}
71
104
  /// Or replace it with another implementation, and register that implementation
72
105
  /// in the dependency injection container
73
106
  /// </summary>
74
- /// <param name="initializer">The initializer class, registered with dependency injection</param>
75
107
  public class ${mock.className} : ${mock.interfaceName}
76
108
  {
77
- public ${mock.className}(IInitializer initializer)
109
+ /// <summary>
110
+ /// The controller constructor, using the dependency injection container to satisfy the paramters.
111
+ /// </summary>
112
+ /// <param name="initializer">The initializer class, registered with dependency injection</param>
113
+ /// <param name="accessor">The accessor for the HttpContext, allows your implementation to
114
+ /// get properties of the incoming request and to set properties of the outgoing response.</param>"
115
+ public ${mock.className}(IInitializer initializer, IHttpContextAccessor accessor)
78
116
  {
79
117
  _initializer = initializer;
118
+ HttpContextAccessor = accessor;
80
119
  }
81
120
 
82
121
  private IInitializer _initializer;
83
122
 
123
+ /// <summary>
124
+ /// Use this property in your implementation to access properties of the incoming HttpRequest
125
+ /// and to set properties of the outgoing HttpResponse
126
+ /// </summary>
127
+ public IHttpContextAccessor HttpContextAccessor { get; }
128
+
84
129
  ${methods.join("\n\n")}
85
130
  }
86
131
  }
@@ -102,7 +147,14 @@ ${mocks
102
147
  })
103
148
  .flatMap((e) => `using ${e};`)
104
149
  .join("\n")}
105
- using ${mocks[0].namespace};
150
+ ${mocks
151
+ .filter((m) => {
152
+ const result = !cache.has(m.namespace);
153
+ cache.set(m.namespace, m.namespace);
154
+ return result;
155
+ })
156
+ .flatMap((t) => `using ${t.namespace};`)
157
+ .join("\n")}
106
158
 
107
159
  namespace TypeSpec.Helpers
108
160
  {
@@ -113,6 +165,7 @@ namespace TypeSpec.Helpers
113
165
  {
114
166
  public static void Register(WebApplicationBuilder builder)
115
167
  {
168
+ builder.Services.AddHttpContextAccessor();
116
169
  builder.Services.AddScoped<IJsonSerializationProvider, JsonSerializationProvider>();
117
170
  // Used for mock implementation only. Remove once business logic interfaces are implemented.
118
171
  builder.Services.AddSingleton<IDictionary<Type, object?>>(new Dictionary<Type, object?>());
@@ -129,7 +182,7 @@ ${mocks.flatMap((m) => ` builder.Services.AddScoped<${m.interfaceName
129
182
  }
130
183
  }`;
131
184
  }
132
- function getProjectStartup(useSwagger, openApiPath) {
185
+ function getProjectStartup(useSwagger, openApiPath, hasMocks) {
133
186
  return `${GeneratedFileHeaderWithNullable}
134
187
 
135
188
  using TypeSpec.Helpers;
@@ -137,10 +190,13 @@ using TypeSpec.Helpers;
137
190
  var builder = WebApplication.CreateBuilder(args);
138
191
 
139
192
  // Add services to the container.
140
- builder.Services.AddControllersWithViews();
193
+ builder.Services.AddControllersWithViews(options =>
194
+ {
195
+ options.Filters.Add<HttpServiceExceptionFilter>();
196
+ });
141
197
  builder.Services.AddEndpointsApiExplorer();
142
198
  ${useSwagger ? "builder.Services.AddSwaggerGen();" : ""}
143
- MockRegistration.Register(builder);
199
+ ${hasMocks ? "MockRegistration.Register(builder);" : ""}
144
200
 
145
201
  var app = builder.Build();
146
202
 
@@ -337,6 +393,19 @@ namespace TypeSpec.Helpers
337
393
  if (element == null) return null;
338
394
  return CacheAndReturn(type, Array.CreateInstance(element, 0));
339
395
  }
396
+ if (type.IsGenericType)
397
+ {
398
+ var elementType = type.GetGenericArguments()[0];
399
+ if (elementType == null) return null;
400
+
401
+ if (type.GetGenericTypeDefinition() == typeof(IEnumerable<>)){
402
+ return CacheAndReturn(type, Activator.CreateInstance(typeof(List<>).MakeGenericType(elementType)));
403
+ }
404
+ if (type.GetGenericTypeDefinition() == typeof(ISet<>))
405
+ {
406
+ return CacheAndReturn(type, Activator.CreateInstance(typeof(HashSet<>).MakeGenericType(elementType)));
407
+ }
408
+ }
340
409
  if (type.IsClass)
341
410
  {
342
411
  return InitializeClass(type);
@@ -346,6 +415,10 @@ namespace TypeSpec.Helpers
346
415
  {
347
416
  return Initialize(genericType);
348
417
  }
418
+ if (type.IsEnum)
419
+ {
420
+ return CacheAndReturn(type, Enum.GetValues(type).GetValue(0));
421
+ }
349
422
  return new object();
350
423
  }
351
424
 
@@ -1 +1 @@
1
- {"version":3,"file":"scaffolding.js","sourceRoot":"","sources":["../../../src/lib/scaffolding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAoBpD,MAAM,UAAU,qBAAqB,CACnC,OAAoD,EACpD,UAAmB,EACnB,WAAmB;IAEnB,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,WAAW,CAAC,IAAI,CACd,IAAI,iBAAiB,CAAC;QACpB,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,uBAAuB;KACrC,CAAC,EACF,IAAI,iBAAiB,CAAC;QACpB,QAAQ,EAAE,gBAAgB;QAC1B,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,4BAA4B;KAC1C,CAAC,EACF,IAAI,iBAAiB,CAAC;QACpB,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC;QAC7D,IAAI,EAAE,KAAK;KACZ,CAAC,CACH,CAAC;IACF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,OAAoD,EACpD,aAAyC;IAEzC,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAkC,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;QACzC,WAAW,CAAC,IAAI,CACd,IAAI,iBAAiB,CAAC;YACpB,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,KAAK;YAChC,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,GAAG,EAAE,CAAC,8BAA8B,CAAC,IAAI,EAAE,IAAI,CAAC;YAC7D,IAAI,EAAE,WAAW;SAClB,CAAC,CACH,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,WAAW,CAAC,IAAI,CACd,IAAI,iBAAiB,CAAC;YACpB,QAAQ,EAAE,qBAAqB;YAC/B,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC;YAC7C,IAAI,EAAE,WAAW;SAClB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAa,EAAE,IAAiC;IACtF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,MAAM,UAAU,GACd,MAAM,CAAC,sBAAsB,KAAK,SAAS;YACzC,CAAC,CAAC,kDAAkD,MAAM,CAAC,sBAAsB,OAAO;YACxF,CAAC,CAAC,4BAA4B,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,YAAY;;cAEnF,UAAU;UACd,CAAC,CAAC;IACV,CAAC;IACD,OAAO,GAAG,+BAA+B;;;;;;;iCAOV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,EAAE;QACjJ,IAAI,CAAC,SAAS;;;YAGV,IAAI,CAAC,SAAS;;;;;;;;;mBASP,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,aAAa;;iBAExC,IAAI,CAAC,SAAS;;;;;;;EAO7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;;;GAGnB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAoC;IAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,KAAK,GAAwB,IAAI,GAAG,EAAkB,CAAC;IAC7D,OAAO,GAAG,+BAA+B;;;EAGzC,KAAK;SACJ,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACZ,MAAM,MAAM,GAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;SACD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC;QACL,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;;;;;;;;;;;;;;;;EAgBxB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0CAA0C,CAAC,CAAC,aAAa,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;EAShH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAmB,EAAE,WAAmB;IACjE,OAAO,GAAG,+BAA+B;;;;;;;;;EASzC,UAAU,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;EAarD,UAAU;QACR,CAAC,CAAC,IAAI,CAAA;;;;;;;;IAQN;QACA,CAAC,CAAC,EACN;;;;;;;;;EAUE,UAAU;QACR,CAAC,CAAC,IAAI,CAAA;;;8BAGoB,WAAW;;;;;;;;;MASnC;QACF,CAAC,CAAC,EACN;;;;;;;;;;;;WAYW,CAAC;AACZ,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO,GAAG,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;CAwB1C,CAAC;AACF,CAAC;AAED,SAAS,4BAA4B;IACnC,OAAO,GAAG,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6J1C,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"scaffolding.js","sourceRoot":"","sources":["../../../src/lib/scaffolding.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/lib/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EA0BZ,MAAM,oBAAoB,CAAC;AA+C5B,OAAO,EAAE,2BAA2B,EAAoB,MAAM,UAAU,CAAC;AA2BzE,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,2BAA2B,CAAC,iBAgjD9E"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/lib/service.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,WAAW,EA4BZ,MAAM,oBAAoB,CAAC;AAiC5B,OAAO,EAAE,2BAA2B,EAA0C,MAAM,UAAU,CAAC;AA+C/F,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,2BAA2B,CAAC,iBAk7C9E"}