@typespec/http-server-csharp 0.58.0-alpha.28-dev.4 → 0.58.0-alpha.29-dev.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.
Files changed (279) hide show
  1. package/dist/src/cli/cli.js +118 -154
  2. package/dist/src/cli/cli.js.map +1 -1
  3. package/dist/src/components/controller-action/controller-action.d.ts +16 -0
  4. package/dist/src/components/controller-action/controller-action.d.ts.map +1 -0
  5. package/dist/src/components/controller-action/controller-action.js +251 -0
  6. package/dist/src/components/controller-action/controller-action.js.map +1 -0
  7. package/dist/src/components/controller-action/controller-action.test.d.ts +2 -0
  8. package/dist/src/components/controller-action/controller-action.test.d.ts.map +1 -0
  9. package/dist/src/components/controller-action/controller-action.test.js +106 -0
  10. package/dist/src/components/controller-action/controller-action.test.js.map +1 -0
  11. package/dist/src/components/controller-action/parameter-binding.d.ts +17 -0
  12. package/dist/src/components/controller-action/parameter-binding.d.ts.map +1 -0
  13. package/dist/src/components/controller-action/parameter-binding.js +77 -0
  14. package/dist/src/components/controller-action/parameter-binding.js.map +1 -0
  15. package/dist/src/components/controller-action/response-analysis.d.ts +10 -0
  16. package/dist/src/components/controller-action/response-analysis.d.ts.map +1 -0
  17. package/dist/src/components/controller-action/response-analysis.js +61 -0
  18. package/dist/src/components/controller-action/response-analysis.js.map +1 -0
  19. package/dist/src/components/controllers/controllers.d.ts +18 -0
  20. package/dist/src/components/controllers/controllers.d.ts.map +1 -0
  21. package/dist/src/components/controllers/controllers.js +64 -0
  22. package/dist/src/components/controllers/controllers.js.map +1 -0
  23. package/dist/src/components/controllers/controllers.test.d.ts +2 -0
  24. package/dist/src/components/controllers/controllers.test.d.ts.map +1 -0
  25. package/dist/src/components/controllers/controllers.test.js +84 -0
  26. package/dist/src/components/controllers/controllers.test.js.map +1 -0
  27. package/dist/src/components/csharp-file.d.ts +15 -0
  28. package/dist/src/components/csharp-file.d.ts.map +1 -0
  29. package/dist/src/components/csharp-file.js +28 -0
  30. package/dist/src/components/csharp-file.js.map +1 -0
  31. package/dist/src/components/enums/enums.d.ts +28 -0
  32. package/dist/src/components/enums/enums.d.ts.map +1 -0
  33. package/dist/src/components/enums/enums.js +158 -0
  34. package/dist/src/components/enums/enums.js.map +1 -0
  35. package/dist/src/components/enums/enums.test.d.ts +2 -0
  36. package/dist/src/components/enums/enums.test.d.ts.map +1 -0
  37. package/dist/src/components/enums/enums.test.js +112 -0
  38. package/dist/src/components/enums/enums.test.js.map +1 -0
  39. package/dist/src/components/interfaces/interfaces.d.ts +17 -0
  40. package/dist/src/components/interfaces/interfaces.d.ts.map +1 -0
  41. package/dist/src/components/interfaces/interfaces.js +153 -0
  42. package/dist/src/components/interfaces/interfaces.js.map +1 -0
  43. package/dist/src/components/interfaces/interfaces.test.d.ts +2 -0
  44. package/dist/src/components/interfaces/interfaces.test.d.ts.map +1 -0
  45. package/dist/src/components/interfaces/interfaces.test.js +76 -0
  46. package/dist/src/components/interfaces/interfaces.test.js.map +1 -0
  47. package/dist/src/components/models/anonymous-models.d.ts +9 -0
  48. package/dist/src/components/models/anonymous-models.d.ts.map +1 -0
  49. package/dist/src/components/models/anonymous-models.js +37 -0
  50. package/dist/src/components/models/anonymous-models.js.map +1 -0
  51. package/dist/src/components/models/error-models.d.ts +5 -0
  52. package/dist/src/components/models/error-models.d.ts.map +1 -0
  53. package/dist/src/components/models/error-models.js +84 -0
  54. package/dist/src/components/models/error-models.js.map +1 -0
  55. package/dist/src/components/models/model-helpers.d.ts +40 -0
  56. package/dist/src/components/models/model-helpers.d.ts.map +1 -0
  57. package/dist/src/components/models/model-helpers.js +239 -0
  58. package/dist/src/components/models/model-helpers.js.map +1 -0
  59. package/dist/src/components/models/models.d.ts +15 -0
  60. package/dist/src/components/models/models.d.ts.map +1 -0
  61. package/dist/src/components/models/models.js +234 -0
  62. package/dist/src/components/models/models.js.map +1 -0
  63. package/dist/src/components/models/models.test.d.ts +2 -0
  64. package/dist/src/components/models/models.test.d.ts.map +1 -0
  65. package/dist/src/components/models/models.test.js +151 -0
  66. package/dist/src/components/models/models.test.js.map +1 -0
  67. package/dist/src/components/project/csproj.d.ts +12 -0
  68. package/dist/src/components/project/csproj.d.ts.map +1 -0
  69. package/dist/src/components/project/csproj.js +35 -0
  70. package/dist/src/components/project/csproj.js.map +1 -0
  71. package/dist/src/components/project/csproj.test.d.ts +2 -0
  72. package/dist/src/components/project/csproj.test.d.ts.map +1 -0
  73. package/dist/src/components/project/csproj.test.js +42 -0
  74. package/dist/src/components/project/csproj.test.js.map +1 -0
  75. package/dist/src/components/project/launch-settings.d.ts +16 -0
  76. package/dist/src/components/project/launch-settings.d.ts.map +1 -0
  77. package/dist/src/components/project/launch-settings.js +73 -0
  78. package/dist/src/components/project/launch-settings.js.map +1 -0
  79. package/dist/src/components/project/launch-settings.test.d.ts +2 -0
  80. package/dist/src/components/project/launch-settings.test.d.ts.map +1 -0
  81. package/dist/src/components/project/launch-settings.test.js +48 -0
  82. package/dist/src/components/project/launch-settings.test.js.map +1 -0
  83. package/dist/src/components/project/program.d.ts +14 -0
  84. package/dist/src/components/project/program.d.ts.map +1 -0
  85. package/dist/src/components/project/program.js +75 -0
  86. package/dist/src/components/project/program.js.map +1 -0
  87. package/dist/src/components/project/program.test.d.ts +2 -0
  88. package/dist/src/components/project/program.test.d.ts.map +1 -0
  89. package/dist/src/components/project/program.test.js +50 -0
  90. package/dist/src/components/project/program.test.js.map +1 -0
  91. package/dist/src/components/render-root.d.ts +14 -0
  92. package/dist/src/components/render-root.d.ts.map +1 -0
  93. package/dist/src/components/render-root.js +122 -0
  94. package/dist/src/components/render-root.js.map +1 -0
  95. package/dist/src/components/request-models.d.ts +15 -0
  96. package/dist/src/components/request-models.d.ts.map +1 -0
  97. package/dist/src/components/request-models.js +97 -0
  98. package/dist/src/components/request-models.js.map +1 -0
  99. package/dist/src/components/scaffolding/documentation.d.ts +12 -0
  100. package/dist/src/components/scaffolding/documentation.d.ts.map +1 -0
  101. package/dist/src/{lib/doc.js → components/scaffolding/documentation.js} +56 -46
  102. package/dist/src/components/scaffolding/documentation.js.map +1 -0
  103. package/dist/src/components/scaffolding/mock-helpers.d.ts +10 -0
  104. package/dist/src/components/scaffolding/mock-helpers.d.ts.map +1 -0
  105. package/dist/src/components/scaffolding/mock-helpers.js +268 -0
  106. package/dist/src/components/scaffolding/mock-helpers.js.map +1 -0
  107. package/dist/src/components/scaffolding/mock-implementations.d.ts +14 -0
  108. package/dist/src/components/scaffolding/mock-implementations.d.ts.map +1 -0
  109. package/dist/src/components/scaffolding/mock-implementations.js +152 -0
  110. package/dist/src/components/scaffolding/mock-implementations.js.map +1 -0
  111. package/dist/src/components/scaffolding/mock-return-utils.d.ts +11 -0
  112. package/dist/src/components/scaffolding/mock-return-utils.d.ts.map +1 -0
  113. package/dist/src/components/scaffolding/mock-return-utils.js +62 -0
  114. package/dist/src/components/scaffolding/mock-return-utils.js.map +1 -0
  115. package/dist/src/components/scaffolding/mock-scaffolding.d.ts +6 -0
  116. package/dist/src/components/scaffolding/mock-scaffolding.d.ts.map +1 -0
  117. package/dist/src/components/scaffolding/mock-scaffolding.js +5 -0
  118. package/dist/src/components/scaffolding/mock-scaffolding.js.map +1 -0
  119. package/dist/src/components/scaffolding/mock-scaffolding.test.d.ts +2 -0
  120. package/dist/src/components/scaffolding/mock-scaffolding.test.d.ts.map +1 -0
  121. package/dist/src/components/scaffolding/mock-scaffolding.test.js +59 -0
  122. package/dist/src/components/scaffolding/mock-scaffolding.test.js.map +1 -0
  123. package/dist/src/components/serialization/base64-url-json-converter.d.ts +7 -0
  124. package/dist/src/components/serialization/base64-url-json-converter.d.ts.map +1 -0
  125. package/dist/src/components/serialization/base64-url-json-converter.js +58 -0
  126. package/dist/src/components/serialization/base64-url-json-converter.js.map +1 -0
  127. package/dist/src/components/serialization/constraint-attributes.d.ts +7 -0
  128. package/dist/src/components/serialization/constraint-attributes.d.ts.map +1 -0
  129. package/dist/src/components/serialization/constraint-attributes.js +556 -0
  130. package/dist/src/components/serialization/constraint-attributes.js.map +1 -0
  131. package/dist/src/components/serialization/http-service-exception-filter.d.ts +8 -0
  132. package/dist/src/components/serialization/http-service-exception-filter.d.ts.map +1 -0
  133. package/dist/src/components/serialization/http-service-exception-filter.js +71 -0
  134. package/dist/src/components/serialization/http-service-exception-filter.js.map +1 -0
  135. package/dist/src/components/serialization/json-converters.d.ts +7 -0
  136. package/dist/src/components/serialization/json-converters.d.ts.map +1 -0
  137. package/dist/src/components/serialization/json-converters.js +22 -0
  138. package/dist/src/components/serialization/json-converters.js.map +1 -0
  139. package/dist/src/components/serialization/json-converters.test.d.ts +2 -0
  140. package/dist/src/components/serialization/json-converters.test.d.ts.map +1 -0
  141. package/dist/src/components/serialization/json-converters.test.js +136 -0
  142. package/dist/src/components/serialization/json-converters.test.js.map +1 -0
  143. package/dist/src/components/serialization/json-serialization-provider.d.ts +7 -0
  144. package/dist/src/components/serialization/json-serialization-provider.d.ts.map +1 -0
  145. package/dist/src/components/serialization/json-serialization-provider.js +90 -0
  146. package/dist/src/components/serialization/json-serialization-provider.js.map +1 -0
  147. package/dist/src/components/serialization/time-span-duration-converter.d.ts +7 -0
  148. package/dist/src/components/serialization/time-span-duration-converter.d.ts.map +1 -0
  149. package/dist/src/components/serialization/time-span-duration-converter.js +44 -0
  150. package/dist/src/components/serialization/time-span-duration-converter.js.map +1 -0
  151. package/dist/src/components/serialization/unix-epoch-date-time-converter.d.ts +7 -0
  152. package/dist/src/components/serialization/unix-epoch-date-time-converter.d.ts.map +1 -0
  153. package/dist/src/components/serialization/unix-epoch-date-time-converter.js +71 -0
  154. package/dist/src/components/serialization/unix-epoch-date-time-converter.js.map +1 -0
  155. package/dist/src/components/type-expression/type-expression.d.ts +24 -0
  156. package/dist/src/components/type-expression/type-expression.d.ts.map +1 -0
  157. package/dist/src/components/type-expression/type-expression.js +223 -0
  158. package/dist/src/components/type-expression/type-expression.js.map +1 -0
  159. package/dist/src/components/type-expression/type-expression.test.d.ts +2 -0
  160. package/dist/src/components/type-expression/type-expression.test.d.ts.map +1 -0
  161. package/dist/src/components/type-expression/type-expression.test.js +207 -0
  162. package/dist/src/components/type-expression/type-expression.test.js.map +1 -0
  163. package/dist/src/context/emitter-options-context.d.ts +13 -0
  164. package/dist/src/context/emitter-options-context.d.ts.map +1 -0
  165. package/dist/src/context/emitter-options-context.js +15 -0
  166. package/dist/src/context/emitter-options-context.js.map +1 -0
  167. package/dist/src/diagnostics.d.ts +8 -0
  168. package/dist/src/diagnostics.d.ts.map +1 -0
  169. package/dist/src/diagnostics.js +164 -0
  170. package/dist/src/diagnostics.js.map +1 -0
  171. package/dist/src/emitter.d.ts +8 -0
  172. package/dist/src/emitter.d.ts.map +1 -0
  173. package/dist/src/emitter.js +180 -0
  174. package/dist/src/emitter.js.map +1 -0
  175. package/dist/src/{lib/index.d.ts → index.d.ts} +1 -1
  176. package/dist/src/index.d.ts.map +1 -0
  177. package/dist/src/{lib/index.js → index.js} +1 -1
  178. package/dist/src/index.js.map +1 -0
  179. package/dist/src/{lib/lib.d.ts → lib.d.ts} +4 -14
  180. package/dist/src/lib.d.ts.map +1 -0
  181. package/dist/src/lib.js +133 -0
  182. package/dist/src/lib.js.map +1 -0
  183. package/dist/src/output-writer.d.ts +11 -0
  184. package/dist/src/output-writer.d.ts.map +1 -0
  185. package/dist/src/output-writer.js +72 -0
  186. package/dist/src/output-writer.js.map +1 -0
  187. package/dist/src/service-discovery.d.ts +13 -0
  188. package/dist/src/service-discovery.d.ts.map +1 -0
  189. package/dist/src/service-discovery.js +93 -0
  190. package/dist/src/service-discovery.js.map +1 -0
  191. package/dist/src/service-resolution.d.ts +34 -0
  192. package/dist/src/service-resolution.d.ts.map +1 -0
  193. package/dist/src/service-resolution.js +244 -0
  194. package/dist/src/service-resolution.js.map +1 -0
  195. package/dist/src/testing/index.d.ts +2 -0
  196. package/dist/src/testing/index.d.ts.map +1 -0
  197. package/dist/src/testing/index.js +2 -0
  198. package/dist/src/testing/index.js.map +1 -0
  199. package/dist/src/utils/attributes.d.ts +8 -0
  200. package/dist/src/utils/attributes.d.ts.map +1 -0
  201. package/dist/src/utils/attributes.js +224 -0
  202. package/dist/src/utils/attributes.js.map +1 -0
  203. package/dist/src/utils/csharp-libs.d.ts +87 -0
  204. package/dist/src/utils/csharp-libs.d.ts.map +1 -0
  205. package/dist/src/utils/csharp-libs.js +90 -0
  206. package/dist/src/utils/csharp-libs.js.map +1 -0
  207. package/dist/src/utils/doc-comments.d.ts +2 -0
  208. package/dist/src/utils/doc-comments.d.ts.map +1 -0
  209. package/dist/src/utils/doc-comments.js +4 -0
  210. package/dist/src/utils/doc-comments.js.map +1 -0
  211. package/dist/src/utils/http-helpers.d.ts +19 -0
  212. package/dist/src/utils/http-helpers.d.ts.map +1 -0
  213. package/dist/src/utils/http-helpers.js +70 -0
  214. package/dist/src/utils/http-helpers.js.map +1 -0
  215. package/dist/src/utils/http-helpers.test.d.ts +2 -0
  216. package/dist/src/utils/http-helpers.test.d.ts.map +1 -0
  217. package/dist/src/utils/http-helpers.test.js +68 -0
  218. package/dist/src/utils/http-helpers.test.js.map +1 -0
  219. package/dist/src/utils/namespace-utils.d.ts +13 -0
  220. package/dist/src/utils/namespace-utils.d.ts.map +1 -0
  221. package/dist/src/utils/namespace-utils.js +55 -0
  222. package/dist/src/utils/namespace-utils.js.map +1 -0
  223. package/dist/src/utils/naming.d.ts +31 -0
  224. package/dist/src/utils/naming.d.ts.map +1 -0
  225. package/dist/src/utils/naming.js +87 -0
  226. package/dist/src/utils/naming.js.map +1 -0
  227. package/dist/src/utils/naming.test.d.ts +2 -0
  228. package/dist/src/utils/naming.test.d.ts.map +1 -0
  229. package/dist/src/utils/naming.test.js +86 -0
  230. package/dist/src/utils/naming.test.js.map +1 -0
  231. package/dist/src/utils/port.d.ts +5 -0
  232. package/dist/src/utils/port.d.ts.map +1 -0
  233. package/dist/src/utils/port.js +33 -0
  234. package/dist/src/utils/port.js.map +1 -0
  235. package/dist/src/utils/return-type-helpers.d.ts +8 -0
  236. package/dist/src/utils/return-type-helpers.d.ts.map +1 -0
  237. package/dist/src/utils/return-type-helpers.js +59 -0
  238. package/dist/src/utils/return-type-helpers.js.map +1 -0
  239. package/package.json +34 -26
  240. package/dist/src/lib/attributes.d.ts +0 -43
  241. package/dist/src/lib/attributes.d.ts.map +0 -1
  242. package/dist/src/lib/attributes.js +0 -422
  243. package/dist/src/lib/attributes.js.map +0 -1
  244. package/dist/src/lib/boilerplate.d.ts +0 -6
  245. package/dist/src/lib/boilerplate.d.ts.map +0 -1
  246. package/dist/src/lib/boilerplate.js +0 -792
  247. package/dist/src/lib/boilerplate.js.map +0 -1
  248. package/dist/src/lib/doc.d.ts +0 -5
  249. package/dist/src/lib/doc.d.ts.map +0 -1
  250. package/dist/src/lib/doc.js.map +0 -1
  251. package/dist/src/lib/index.d.ts.map +0 -1
  252. package/dist/src/lib/index.js.map +0 -1
  253. package/dist/src/lib/interfaces.d.ts +0 -183
  254. package/dist/src/lib/interfaces.d.ts.map +0 -1
  255. package/dist/src/lib/interfaces.js +0 -287
  256. package/dist/src/lib/interfaces.js.map +0 -1
  257. package/dist/src/lib/lib.d.ts.map +0 -1
  258. package/dist/src/lib/lib.js +0 -146
  259. package/dist/src/lib/lib.js.map +0 -1
  260. package/dist/src/lib/project.d.ts +0 -5
  261. package/dist/src/lib/project.d.ts.map +0 -1
  262. package/dist/src/lib/project.js +0 -101
  263. package/dist/src/lib/project.js.map +0 -1
  264. package/dist/src/lib/scaffolding.d.ts +0 -22
  265. package/dist/src/lib/scaffolding.d.ts.map +0 -1
  266. package/dist/src/lib/scaffolding.js +0 -461
  267. package/dist/src/lib/scaffolding.js.map +0 -1
  268. package/dist/src/lib/service.d.ts +0 -4
  269. package/dist/src/lib/service.d.ts.map +0 -1
  270. package/dist/src/lib/service.js +0 -1208
  271. package/dist/src/lib/service.js.map +0 -1
  272. package/dist/src/lib/type-helpers.d.ts +0 -44
  273. package/dist/src/lib/type-helpers.d.ts.map +0 -1
  274. package/dist/src/lib/type-helpers.js +0 -106
  275. package/dist/src/lib/type-helpers.js.map +0 -1
  276. package/dist/src/lib/utils.d.ts +0 -120
  277. package/dist/src/lib/utils.d.ts.map +0 -1
  278. package/dist/src/lib/utils.js +0 -1580
  279. package/dist/src/lib/utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-root.d.ts","sourceRoot":"","sources":["../../../src/components/render-root.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAOrF,MAAM,WAAW,6BAA6B;IAC5C,0FAA0F;IAC1F,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,4DAA4D;IAC5D,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,6BAA6B,EAAE,CAAC,CAAC;CAC/D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,GAAG,QAAQ,CAmGvF"}
@@ -0,0 +1,122 @@
1
+ import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
2
+ import { For, SourceDirectory } from "@alloy-js/core";
3
+ import * as cs from "@alloy-js/csharp";
4
+ import { Namespace } from "@alloy-js/csharp";
5
+ import { useEmitterOptions } from "../context/emitter-options-context.js";
6
+ import { Controller } from "./controllers/controllers.js";
7
+ import { CSharpFile } from "./csharp-file.js";
8
+ import { BusinessLogicInterface } from "./interfaces/interfaces.js";
9
+ import { RequestModels } from "./request-models.js";
10
+ /**
11
+ * Component that renders controllers and their corresponding business logic interfaces.
12
+ */
13
+ export function ControllersAndInterfaces(props) {
14
+ const namePolicy = cs.useCSharpNamePolicy();
15
+ const {
16
+ serviceNamespace: parentNamespace
17
+ } = useEmitterOptions();
18
+ const interfaceOps = props.interfaces.map(iface => ({
19
+ iface,
20
+ ops: props.canonicalOpsMap.get(iface.name) ?? []
21
+ }));
22
+
23
+ // Collect operations that need request model classes
24
+ const requestModels = [];
25
+ for (const {
26
+ iface,
27
+ ops
28
+ } of interfaceOps) {
29
+ for (const op of ops) {
30
+ // GET requests don't have body parameters in the server
31
+ if (op.method === "get") continue;
32
+ const body = op.requestParameters.body;
33
+ if (body?.bodyKind === "single" && body.bodies.length > 0) {
34
+ const bodyType = body.bodies[0].type.sourceType;
35
+ // Create request model for body parameters that have properties to decompose
36
+ // This handles spread params (...Model) and implicit body models
37
+ if (bodyType.kind === "Model" && bodyType.properties.size > 0) {
38
+ // Skip if the body has an explicit property (i.e., @body/@bodyRoot decorator used)
39
+ const hasExplicitBody = body.bodies[0].property !== undefined;
40
+ if (!hasExplicitBody) {
41
+ const opName = namePolicy.getName(op.name, "class-method");
42
+ const requestModelName = `${iface.name}${opName}Request`;
43
+ requestModels.push({
44
+ name: requestModelName,
45
+ op,
46
+ ifaceName: iface.name
47
+ });
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }
53
+ return [_$createComponent(SourceDirectory, {
54
+ path: "models",
55
+ get children() {
56
+ return _$createComponent(RequestModels, {
57
+ requestModels: requestModels
58
+ });
59
+ }
60
+ }), _$createComponent(SourceDirectory, {
61
+ path: "operations",
62
+ get children() {
63
+ return _$createComponent(For, {
64
+ each: interfaceOps,
65
+ children: ({
66
+ iface,
67
+ ops
68
+ }) => {
69
+ const hasMultipart = ops.some(op => op.requestParameters.body?.bodyKind === "multipart");
70
+ return _$createComponent(CSharpFile, {
71
+ get path() {
72
+ return `I${iface.name}.cs`;
73
+ },
74
+ get using() {
75
+ return ["System", "System.Collections.Generic", "System.Text.Json", "System.Text.Json.Nodes", "System.Text.Json.Serialization", "System.Threading.Tasks", ...(hasMultipart ? ["Microsoft.AspNetCore.WebUtilities"] : [])];
76
+ },
77
+ get children() {
78
+ return _$createComponent(BusinessLogicInterface, {
79
+ type: iface,
80
+ canonicalOps: ops
81
+ });
82
+ }
83
+ });
84
+ }
85
+ });
86
+ }
87
+ }), _$createComponent(SourceDirectory, {
88
+ path: "controllers",
89
+ get children() {
90
+ return _$createComponent(Namespace, {
91
+ name: "Controllers",
92
+ get children() {
93
+ return _$createComponent(For, {
94
+ each: interfaceOps,
95
+ children: ({
96
+ iface,
97
+ ops
98
+ }) => {
99
+ const hasMultipart = ops.some(op => op.requestParameters.body?.bodyKind === "multipart");
100
+ return _$createComponent(CSharpFile, {
101
+ get path() {
102
+ return `${iface.name}Controller.cs`;
103
+ },
104
+ get using() {
105
+ return ["System", "System.Net", "System.Threading.Tasks", "System.Text.Json", "System.Text.Json.Nodes", "System.Text.Json.Serialization", ...(hasMultipart ? ["Microsoft.AspNetCore.WebUtilities", "Microsoft.AspNetCore.Http.Extensions"] : []), ...(parentNamespace ? [parentNamespace] : [])];
106
+ },
107
+ get children() {
108
+ return _$createComponent(Controller, {
109
+ type: iface,
110
+ operations: ops,
111
+ requestModels: requestModels
112
+ });
113
+ }
114
+ });
115
+ }
116
+ });
117
+ }
118
+ });
119
+ }
120
+ })];
121
+ }
122
+ //# sourceMappingURL=render-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["For","SourceDirectory","cs","Namespace","useEmitterOptions","Controller","CSharpFile","BusinessLogicInterface","RequestModels","ControllersAndInterfaces","props","namePolicy","useCSharpNamePolicy","serviceNamespace","parentNamespace","interfaceOps","interfaces","map","iface","ops","canonicalOpsMap","get","name","requestModels","op","method","body","requestParameters","bodyKind","bodies","length","bodyType","type","sourceType","kind","properties","size","hasExplicitBody","property","undefined","opName","getName","requestModelName","push","ifaceName","_$createComponent","path","children","each","hasMultipart","some","using","canonicalOps","operations"],"sources":["../../../src/components/render-root.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { type Children } from "@alloy-js/core";
2
+ import type { OperationHttpCanonicalization } from "@typespec/http-canonicalization";
3
+ export interface RequestModelInfo {
4
+ name: string;
5
+ op: OperationHttpCanonicalization;
6
+ ifaceName: string;
7
+ }
8
+ export interface RequestModelsProps {
9
+ requestModels: RequestModelInfo[];
10
+ }
11
+ /**
12
+ * Generates request model classes for operations with unnamed body types.
13
+ */
14
+ export declare function RequestModels(props: RequestModelsProps): Children;
15
+ //# sourceMappingURL=request-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-models.d.ts","sourceRoot":"","sources":["../../../src/components/request-models.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAKpD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAMrF,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,6BAA6B,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;CACnB;AAUD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,QAAQ,CAsBjE"}
@@ -0,0 +1,97 @@
1
+ import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
+ import { For } from "@alloy-js/core";
3
+ import * as cs from "@alloy-js/csharp";
4
+ import { Attribute } from "@alloy-js/csharp";
5
+ import { isVoidType } from "@typespec/compiler";
6
+ import { useTsp } from "@typespec/emitter-framework";
7
+ import { JsonSerialization } from "../utils/csharp-libs.js";
8
+ import { getDocComments } from "../utils/doc-comments.js";
9
+ import { CSharpFile } from "./csharp-file.js";
10
+ import { TypeExpression } from "./type-expression/type-expression.js";
11
+ const requestModelUsings = ["System", "System.Text.Json", "System.Text.Json.Nodes", "TypeSpec.Helpers", "TypeSpec.Helpers.JsonConverters"];
12
+ /**
13
+ * Generates request model classes for operations with unnamed body types.
14
+ */
15
+ export function RequestModels(props) {
16
+ return _$createComponent(For, {
17
+ get each() {
18
+ return props.requestModels;
19
+ },
20
+ children: rm => {
21
+ const body = rm.op.requestParameters.body;
22
+ if (!body || body.bodyKind !== "single" || body.bodies.length === 0) return undefined;
23
+ const bodyType = body.bodies[0].type.sourceType;
24
+ if (bodyType.kind !== "Model") return undefined;
25
+ const properties = Array.from(bodyType.properties.entries()).filter(([_, p]) => !isVoidType(p.type));
26
+ return _$createComponent(CSharpFile, {
27
+ get path() {
28
+ return `${rm.name}.cs`;
29
+ },
30
+ using: requestModelUsings,
31
+ get children() {
32
+ return _$createComponent(RequestModelClass, {
33
+ get name() {
34
+ return rm.name;
35
+ },
36
+ properties: properties
37
+ });
38
+ }
39
+ });
40
+ }
41
+ });
42
+ }
43
+ function RequestModelClass(props) {
44
+ const {
45
+ $
46
+ } = useTsp();
47
+ const namePolicy = cs.useCSharpNamePolicy();
48
+ return _$createComponent(cs.ClassDeclaration, {
49
+ get name() {
50
+ return props.name;
51
+ },
52
+ "public": true,
53
+ partial: true,
54
+ get children() {
55
+ return _$createComponent(For, {
56
+ get each() {
57
+ return props.properties;
58
+ },
59
+ doubleHardline: true,
60
+ children: ([_, property]) => {
61
+ const propName = namePolicy.getName(property.name, "class-property");
62
+ const attrs = [];
63
+ if (propName !== property.name) {
64
+ attrs.push(_$createComponent(Attribute, {
65
+ get name() {
66
+ return JsonSerialization.JsonPropertyNameAttribute;
67
+ },
68
+ get args() {
69
+ return [`"${property.name}"`];
70
+ }
71
+ }));
72
+ }
73
+ return _$createComponent(cs.Property, {
74
+ name: propName,
75
+ get type() {
76
+ return _$createComponent(TypeExpression, {
77
+ get type() {
78
+ return property.type;
79
+ }
80
+ });
81
+ },
82
+ "public": true,
83
+ get: true,
84
+ set: true,
85
+ get doc() {
86
+ return getDocComments($, property);
87
+ },
88
+ get attributes() {
89
+ return attrs.length > 0 ? attrs : undefined;
90
+ }
91
+ });
92
+ }
93
+ });
94
+ }
95
+ });
96
+ }
97
+ //# sourceMappingURL=request-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["For","cs","Attribute","isVoidType","useTsp","JsonSerialization","getDocComments","CSharpFile","TypeExpression","requestModelUsings","RequestModels","props","_$createComponent","each","requestModels","children","rm","body","op","requestParameters","bodyKind","bodies","length","undefined","bodyType","type","sourceType","kind","properties","Array","from","entries","filter","_","p","path","name","using","RequestModelClass","$","namePolicy","useCSharpNamePolicy","ClassDeclaration","partial","doubleHardline","property","propName","getName","attrs","push","JsonPropertyNameAttribute","args","Property","get","set","doc","attributes"],"sources":["../../../src/components/request-models.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ import { type Children } from "@alloy-js/core";
2
+ export interface DocumentationProps {
3
+ /** Names of interfaces with mock implementations. */
4
+ interfaceNames: string[];
5
+ /** Whether SwaggerUI is enabled. */
6
+ useSwaggerUI?: boolean;
7
+ }
8
+ /**
9
+ * Renders documentation files: README.md, docs/usage.md, docs/emitter.md.
10
+ */
11
+ export declare function Documentation(props: DocumentationProps): Children;
12
+ //# sourceMappingURL=documentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentation.d.ts","sourceRoot":"","sources":["../../../../src/components/scaffolding/documentation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE5E,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,QAAQ,CAmBjE"}
@@ -1,27 +1,36 @@
1
- import { LibrarySourceFile } from "./interfaces.js";
2
- export function getProjectDocs(emitter, useSwagger, registrations) {
3
- const sourceFiles = [];
4
- const mocks = registrations === undefined ? [] : [...registrations.entries()].flatMap((e) => e[1]);
5
- sourceFiles.push(new LibrarySourceFile({
6
- filename: `README.md`,
7
- emitter: emitter,
8
- getContents: () => (mocks.length > 0 ? getMockReadme(mocks) : getNoMockReadme()),
9
- path: ".",
10
- }), new LibrarySourceFile({
11
- filename: `usage.md`,
12
- emitter: emitter,
13
- getContents: () => getUsageDoc(),
14
- path: "docs",
15
- }), new LibrarySourceFile({
16
- filename: `emitter.md`,
17
- emitter: emitter,
18
- getContents: () => getEmitterDoc(),
19
- path: "docs",
20
- }));
21
- return sourceFiles;
1
+ import { createComponent as _$createComponent, memo as _$memo } from "@alloy-js/core/jsx-runtime";
2
+ import { SourceDirectory, SourceFile } from "@alloy-js/core";
3
+ /**
4
+ * Renders documentation files: README.md, docs/usage.md, docs/emitter.md.
5
+ */
6
+ export function Documentation(props) {
7
+ const hasMocks = props.interfaceNames.length > 0;
8
+ const readme = hasMocks ? getMockReadme(props.interfaceNames) : getNoMockReadme();
9
+ return [_$createComponent(SourceFile, {
10
+ filetype: "md",
11
+ path: "README.md",
12
+ children: readme
13
+ }), _$createComponent(SourceDirectory, {
14
+ path: "docs",
15
+ get children() {
16
+ return [_$createComponent(SourceFile, {
17
+ filetype: "md",
18
+ path: "usage.md",
19
+ get children() {
20
+ return getUsageDoc();
21
+ }
22
+ }), _$createComponent(SourceFile, {
23
+ filetype: "md",
24
+ path: "emitter.md",
25
+ get children() {
26
+ return getEmitterDoc();
27
+ }
28
+ })];
29
+ }
30
+ })];
22
31
  }
23
32
  function getNoMockReadme() {
24
- return `---
33
+ return `---
25
34
  title: Next Steps
26
35
  ---
27
36
 
@@ -34,6 +43,28 @@ title: Next Steps
34
43
 
35
44
  ## More Information
36
45
 
46
+ - See [Code Layout](docs/usage.md) for information about the generated code
47
+ - See [Emitter Usage](docs/emitter.md) for details on how to use the emitter.
48
+ - File issues or provide feedback in [TypeSpec Issues](https://github.com/microsoft/typespec/issues/new/choose)
49
+ - Get information about Typespec on the [TypeSpec website](https://typespec.io)
50
+ `;
51
+ }
52
+ function getMockReadme(interfaceNames) {
53
+ const mockLines = interfaceNames.map(name => ` - \`mocks/${name}.cs\``).join("\n");
54
+ return `---
55
+ title: Next Steps
56
+ ---
57
+
58
+ # Next Steps
59
+
60
+ - Use the SwaggerUI endpoint to test out the running service
61
+ - Update business logic mocks with real business logic
62
+ ${mockLines}
63
+ - Update \`mocks/MockRegistration.cs\` if you update the constructor of business logic implementations.
64
+ - Update development and production configuration to suit your needs
65
+
66
+ ## More Information
67
+
37
68
  - See [Code Layout](docs/usage.md) for information about the generated code
38
69
  - See [Emitter Usage](docs/emitter.md) for details on how to use the emitter.
39
70
  - File issues or provide feedback in [TypeSpec Issues](https://github.com/microsoft/typespec/issues/new/choose)
@@ -41,7 +72,7 @@ title: Next Steps
41
72
  `;
42
73
  }
43
74
  function getUsageDoc() {
44
- return `---
75
+ return `---
45
76
  title: Generated C-Sharp Overview
46
77
  ---
47
78
 
@@ -127,7 +158,7 @@ After successful generation, you should:
127
158
  `;
128
159
  }
129
160
  function getEmitterDoc() {
130
- return `---
161
+ return `---
131
162
  title: "Emitter usage"
132
163
  ---
133
164
 
@@ -213,25 +244,4 @@ The service http port when hosting the project locally.
213
244
  The service https port when hosting the project locally.
214
245
  `;
215
246
  }
216
- function getMockReadme(mocks) {
217
- return `---
218
- title: Next Steps
219
- ---
220
-
221
- # Next Steps
222
-
223
- - Use the SwaggerUI endpoint to test out the running service
224
- - Update business logic mocks with real business logic
225
- ${mocks.flatMap((m) => ` - \`mocks/${m.className}.cs\``).join("\n")}
226
- - Update \`mocks/MockRegistration.cs\` if you update the constructor of business logic implementations.
227
- - Update development and production configuration to suit your needs
228
-
229
- ## More Information
230
-
231
- - See [Code Layout](docs/usage.md) for information about the generated code
232
- - See [Emitter Usage](docs/emitter.md) for details on how to use the emitter.
233
- - File issues or provide feedback in [TypeSpec Issues](https://github.com/microsoft/typespec/issues/new/choose)
234
- - Get information about Typespec on the [TypeSpec website](https://typespec.io)
235
- `;
236
- }
237
- //# sourceMappingURL=doc.js.map
247
+ //# sourceMappingURL=documentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SourceDirectory","SourceFile","Documentation","props","hasMocks","interfaceNames","length","readme","getMockReadme","getNoMockReadme","_$createComponent","filetype","path","children","getUsageDoc","getEmitterDoc","mockLines","map","name","join"],"sources":["../../../../src/components/scaffolding/documentation.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,eAAe,EAAEC,UAAU,QAAuB,gBAAgB;AAS3E;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAACC,KAAyB,EAAY;EACjE,MAAMC,QAAQ,GAAGD,KAAK,CAACE,cAAc,CAACC,MAAM,GAAG,CAAC;EAChD,MAAMC,MAAM,GAAGH,QAAQ,GAAGI,aAAa,CAACL,KAAK,CAACE,cAAc,CAAC,GAAGI,eAAe,CAAC,CAAC;EAEjF,QAAAC,iBAAA,CAEKT,UAAU;IAACU,QAAQ;IAAMC,IAAI;IAAAC,QAAA,EAC3BN;EAAM,IAAAG,iBAAA,CAERV,eAAe;IAACY,IAAI;IAAA,IAAAC,SAAA;MAAA,QAAAH,iBAAA,CAClBT,UAAU;QAACU,QAAQ;QAAMC,IAAI;QAAA,IAAAC,SAAA;UAAA,OAC3BC,WAAW,CAAC,CAAC;QAAA;MAAA,IAAAJ,iBAAA,CAEfT,UAAU;QAACU,QAAQ;QAAMC,IAAI;QAAA,IAAAC,SAAA;UAAA,OAC3BE,aAAa,CAAC,CAAC;QAAA;MAAA;IAAA;EAAA;AAK1B;AAEA,SAASN,eAAeA,CAAA,EAAW;EACjC,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AAEA,SAASD,aAAaA,CAACH,cAAwB,EAAU;EACvD,MAAMW,SAAS,GAAGX,cAAc,CAACY,GAAG,CAAEC,IAAI,IAAK,eAAeA,IAAI,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EACrF,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAEH,SAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AAEA,SAASF,WAAWA,CAAA,EAAW;EAC7B,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AAEA,SAASC,aAAaA,CAAA,EAAW;EAC/B,OAAO;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { type Children } from "@alloy-js/core";
2
+ export interface MockHelpersProps {
3
+ interfaceRegistrations: string[];
4
+ }
5
+ /**
6
+ * Renders the mock helper files: IInitializer, Initializer, MockRegistration.
7
+ * These go under the TypeSpec.Helpers namespace.
8
+ */
9
+ export declare function MockHelpers(props: MockHelpersProps): Children;
10
+ //# sourceMappingURL=mock-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-helpers.d.ts","sourceRoot":"","sources":["../../../../src/components/scaffolding/mock-helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI5E,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,QAAQ,CAY7D"}