@azure-tools/typespec-go 0.14.3 → 0.15.0-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/CHANGELOG.md +669 -0
  2. package/README.md +6 -4
  3. package/dist/{codegen.go/src/core/clientFactory.d.ts → src/codegen/core/client-factory.d.ts} +2 -2
  4. package/dist/src/codegen/core/client-factory.d.ts.map +1 -0
  5. package/dist/{codegen.go/src/core/clientFactory.js → src/codegen/core/client-factory.js} +29 -24
  6. package/dist/src/codegen/core/client-factory.js.map +1 -0
  7. package/dist/{codegen.go/src/core/cloudConfig.d.ts → src/codegen/core/cloud-config.d.ts} +2 -2
  8. package/dist/src/codegen/core/cloud-config.d.ts.map +1 -0
  9. package/dist/{codegen.go/src/core/cloudConfig.js → src/codegen/core/cloud-config.js} +10 -9
  10. package/dist/src/codegen/core/cloud-config.js.map +1 -0
  11. package/dist/{codegen.go/src → src/codegen}/core/constants.d.ts +1 -1
  12. package/dist/src/codegen/core/constants.d.ts.map +1 -0
  13. package/dist/{codegen.go/src → src/codegen}/core/constants.js +9 -9
  14. package/dist/src/codegen/core/constants.js.map +1 -0
  15. package/dist/{codegen.go/src → src/codegen}/core/errors.d.ts +1 -1
  16. package/dist/src/codegen/core/errors.d.ts.map +1 -0
  17. package/dist/src/codegen/core/errors.js.map +1 -0
  18. package/dist/{codegen.go/src → src/codegen}/core/example.d.ts +1 -1
  19. package/dist/src/codegen/core/example.d.ts.map +1 -0
  20. package/dist/{codegen.go/src → src/codegen}/core/example.js +155 -140
  21. package/dist/src/codegen/core/example.js.map +1 -0
  22. package/dist/{codegen.go/src → src/codegen}/core/gomod.d.ts +1 -1
  23. package/dist/src/codegen/core/gomod.d.ts.map +1 -0
  24. package/dist/{codegen.go/src → src/codegen}/core/gomod.js +8 -8
  25. package/dist/src/codegen/core/gomod.js.map +1 -0
  26. package/dist/{codegen.go/src → src/codegen}/core/helpers.d.ts +5 -5
  27. package/dist/src/codegen/core/helpers.d.ts.map +1 -0
  28. package/dist/{codegen.go/src → src/codegen}/core/helpers.js +308 -284
  29. package/dist/src/codegen/core/helpers.js.map +1 -0
  30. package/dist/{codegen.go/src → src/codegen}/core/imports.d.ts +1 -1
  31. package/dist/src/codegen/core/imports.d.ts.map +1 -0
  32. package/dist/{codegen.go/src → src/codegen}/core/imports.js +19 -18
  33. package/dist/src/codegen/core/imports.js.map +1 -0
  34. package/dist/{codegen.go/src → src/codegen}/core/interfaces.d.ts +1 -1
  35. package/dist/src/codegen/core/interfaces.d.ts.map +1 -0
  36. package/dist/{codegen.go/src → src/codegen}/core/interfaces.js +5 -5
  37. package/dist/src/codegen/core/interfaces.js.map +1 -0
  38. package/dist/{codegen.go/src → src/codegen}/core/license.d.ts +1 -1
  39. package/dist/src/codegen/core/license.d.ts.map +1 -0
  40. package/dist/src/codegen/core/license.js.map +1 -0
  41. package/dist/src/codegen/core/metadata.d.ts +3 -0
  42. package/dist/src/codegen/core/metadata.d.ts.map +1 -0
  43. package/dist/{codegen.go/src → src/codegen}/core/metadata.js +1 -1
  44. package/dist/src/codegen/core/metadata.js.map +1 -0
  45. package/dist/{codegen.go/src → src/codegen}/core/models.d.ts +2 -2
  46. package/dist/src/codegen/core/models.d.ts.map +1 -0
  47. package/dist/{codegen.go/src → src/codegen}/core/models.js +212 -181
  48. package/dist/src/codegen/core/models.js.map +1 -0
  49. package/dist/{codegen.go/src → src/codegen}/core/operations.d.ts +1 -1
  50. package/dist/src/codegen/core/operations.d.ts.map +1 -0
  51. package/dist/{codegen.go/src → src/codegen}/core/operations.js +383 -360
  52. package/dist/src/codegen/core/operations.js.map +1 -0
  53. package/dist/{codegen.go/src → src/codegen}/core/options.d.ts +1 -1
  54. package/dist/src/codegen/core/options.d.ts.map +1 -0
  55. package/dist/{codegen.go/src → src/codegen}/core/options.js +11 -11
  56. package/dist/src/codegen/core/options.js.map +1 -0
  57. package/dist/{codegen.go/src → src/codegen}/core/polymorphics.d.ts +1 -1
  58. package/dist/src/codegen/core/polymorphics.d.ts.map +1 -0
  59. package/dist/{codegen.go/src → src/codegen}/core/polymorphics.js +30 -30
  60. package/dist/src/codegen/core/polymorphics.js.map +1 -0
  61. package/dist/{codegen.go/src → src/codegen}/core/responses.d.ts +1 -1
  62. package/dist/src/codegen/core/responses.d.ts.map +1 -0
  63. package/dist/{codegen.go/src → src/codegen}/core/responses.js +28 -28
  64. package/dist/src/codegen/core/responses.js.map +1 -0
  65. package/dist/{codegen.go/src → src/codegen}/core/version.d.ts +1 -1
  66. package/dist/src/codegen/core/version.d.ts.map +1 -0
  67. package/dist/{codegen.go/src → src/codegen}/core/version.js +4 -4
  68. package/dist/src/codegen/core/version.js.map +1 -0
  69. package/dist/{codegen.go/src/core/xmlAdditionalProps.d.ts → src/codegen/core/xml-additional-props.d.ts} +2 -2
  70. package/dist/src/codegen/core/xml-additional-props.d.ts.map +1 -0
  71. package/dist/{codegen.go/src/core/xmlAdditionalProps.js → src/codegen/core/xml-additional-props.js} +11 -11
  72. package/dist/src/codegen/core/xml-additional-props.js.map +1 -0
  73. package/dist/{codegen.go/src → src/codegen}/emitter.d.ts +2 -2
  74. package/dist/src/codegen/emitter.d.ts.map +1 -0
  75. package/dist/{codegen.go/src → src/codegen}/emitter.js +58 -54
  76. package/dist/src/codegen/emitter.js.map +1 -0
  77. package/dist/{codegen.go/src → src/codegen}/fake/factory.d.ts +1 -1
  78. package/dist/src/codegen/fake/factory.d.ts.map +1 -0
  79. package/dist/{codegen.go/src → src/codegen}/fake/factory.js +22 -21
  80. package/dist/src/codegen/fake/factory.js.map +1 -0
  81. package/dist/{codegen.go/src → src/codegen}/fake/internal.d.ts +1 -1
  82. package/dist/src/codegen/fake/internal.d.ts.map +1 -0
  83. package/dist/{codegen.go/src → src/codegen}/fake/internal.js +13 -13
  84. package/dist/src/codegen/fake/internal.js.map +1 -0
  85. package/dist/{codegen.go/src → src/codegen}/fake/servers.d.ts +1 -1
  86. package/dist/src/codegen/fake/servers.d.ts.map +1 -0
  87. package/dist/{codegen.go/src → src/codegen}/fake/servers.js +332 -300
  88. package/dist/src/codegen/fake/servers.js.map +1 -0
  89. package/dist/src/codegen/index.d.ts +4 -0
  90. package/dist/src/codegen/index.d.ts.map +1 -0
  91. package/dist/{codegen.go/src → src/codegen}/index.js +3 -3
  92. package/dist/src/codegen/index.js.map +1 -0
  93. package/dist/{codemodel.go/src → src/codemodel}/client.d.ts +25 -25
  94. package/dist/src/codemodel/client.d.ts.map +1 -0
  95. package/dist/{codemodel.go/src → src/codemodel}/client.js +32 -32
  96. package/dist/src/codemodel/client.js.map +1 -0
  97. package/dist/{codemodel.go/src/codeModel.d.ts → src/codemodel/code-model.d.ts} +3 -3
  98. package/dist/src/codemodel/code-model.d.ts.map +1 -0
  99. package/dist/{codemodel.go/src/codeModel.js → src/codemodel/code-model.js} +1 -1
  100. package/dist/src/codemodel/code-model.js.map +1 -0
  101. package/dist/{codemodel.go/src → src/codemodel}/errors.d.ts +5 -5
  102. package/dist/src/codemodel/errors.d.ts.map +1 -0
  103. package/dist/{codemodel.go/src → src/codemodel}/errors.js +1 -1
  104. package/dist/src/codemodel/errors.js.map +1 -0
  105. package/dist/{codemodel.go/src → src/codemodel}/examples.d.ts +13 -13
  106. package/dist/src/codemodel/examples.d.ts.map +1 -0
  107. package/dist/{codemodel.go/src → src/codemodel}/examples.js +10 -10
  108. package/dist/src/codemodel/examples.js.map +1 -0
  109. package/dist/src/codemodel/index.d.ts +9 -0
  110. package/dist/src/codemodel/index.d.ts.map +1 -0
  111. package/dist/{codemodel.go/src → src/codemodel}/index.js +8 -8
  112. package/dist/src/codemodel/index.js.map +1 -0
  113. package/dist/{codemodel.go/src → src/codemodel}/method.d.ts +1 -1
  114. package/dist/src/codemodel/method.d.ts.map +1 -0
  115. package/dist/src/codemodel/method.js.map +1 -0
  116. package/dist/{codemodel.go/src → src/codemodel}/module.d.ts +8 -8
  117. package/dist/src/codemodel/module.d.ts.map +1 -0
  118. package/dist/{codemodel.go/src → src/codemodel}/module.js +12 -11
  119. package/dist/src/codemodel/module.js.map +1 -0
  120. package/dist/{codemodel.go/src → src/codemodel}/param.d.ts +26 -26
  121. package/dist/src/codemodel/param.d.ts.map +1 -0
  122. package/dist/{codemodel.go/src → src/codemodel}/param.js +56 -53
  123. package/dist/src/codemodel/param.js.map +1 -0
  124. package/dist/{codemodel.go/src → src/codemodel}/result.d.ts +15 -15
  125. package/dist/src/codemodel/result.d.ts.map +1 -0
  126. package/dist/{codemodel.go/src → src/codemodel}/result.js +27 -27
  127. package/dist/src/codemodel/result.js.map +1 -0
  128. package/dist/{codemodel.go/src → src/codemodel}/type.d.ts +30 -30
  129. package/dist/src/codemodel/type.d.ts.map +1 -0
  130. package/dist/{codemodel.go/src → src/codemodel}/type.js +77 -76
  131. package/dist/src/codemodel/type.js.map +1 -0
  132. package/dist/{typespec-go/src → src}/emitter.d.ts +2 -3
  133. package/dist/src/emitter.d.ts.map +1 -0
  134. package/dist/{typespec-go/src → src}/emitter.js +56 -45
  135. package/dist/src/emitter.js.map +1 -0
  136. package/dist/src/index.d.ts +3 -0
  137. package/dist/src/index.d.ts.map +1 -0
  138. package/dist/{typespec-go/src → src}/index.js +2 -2
  139. package/dist/src/index.js.map +1 -0
  140. package/dist/{typespec-go/src → src}/lib.d.ts +16 -16
  141. package/dist/src/lib.d.ts.map +1 -0
  142. package/dist/{typespec-go/src → src}/lib.js +60 -61
  143. package/dist/src/lib.js.map +1 -0
  144. package/dist/src/naming/index.d.ts +3 -0
  145. package/dist/src/naming/index.d.ts.map +1 -0
  146. package/dist/{naming.go/src → src/naming}/index.js +2 -2
  147. package/dist/src/naming/index.js.map +1 -0
  148. package/dist/src/naming/mappings.d.ts.map +1 -0
  149. package/dist/src/naming/mappings.js +294 -0
  150. package/dist/src/naming/mappings.js.map +1 -0
  151. package/dist/src/naming/naming.d.ts.map +1 -0
  152. package/dist/{naming.go/src → src/naming}/naming.js +10 -10
  153. package/dist/src/naming/naming.js.map +1 -0
  154. package/dist/{typespec-go/src → src}/tcgcadapter/adapter.d.ts +3 -3
  155. package/dist/src/tcgcadapter/adapter.d.ts.map +1 -0
  156. package/dist/{typespec-go/src → src}/tcgcadapter/adapter.js +35 -31
  157. package/dist/src/tcgcadapter/adapter.js.map +1 -0
  158. package/dist/{typespec-go/src → src}/tcgcadapter/clients.d.ts +1 -1
  159. package/dist/src/tcgcadapter/clients.d.ts.map +1 -0
  160. package/dist/{typespec-go/src → src}/tcgcadapter/clients.js +360 -310
  161. package/dist/src/tcgcadapter/clients.js.map +1 -0
  162. package/dist/{typespec-go/src → src}/tcgcadapter/errors.d.ts +2 -2
  163. package/dist/src/tcgcadapter/errors.d.ts.map +1 -0
  164. package/dist/{typespec-go/src → src}/tcgcadapter/errors.js +1 -1
  165. package/dist/src/tcgcadapter/errors.js.map +1 -0
  166. package/dist/{typespec-go/src → src}/tcgcadapter/helpers.d.ts +3 -3
  167. package/dist/src/tcgcadapter/helpers.d.ts.map +1 -0
  168. package/dist/{typespec-go/src → src}/tcgcadapter/helpers.js +41 -30
  169. package/dist/src/tcgcadapter/helpers.js.map +1 -0
  170. package/dist/{typespec-go/src → src}/tcgcadapter/metadata.d.ts +2 -2
  171. package/dist/src/tcgcadapter/metadata.d.ts.map +1 -0
  172. package/dist/src/tcgcadapter/metadata.js +47 -0
  173. package/dist/src/tcgcadapter/metadata.js.map +1 -0
  174. package/dist/{typespec-go/src → src}/tcgcadapter/types.d.ts +2 -2
  175. package/dist/src/tcgcadapter/types.d.ts.map +1 -0
  176. package/dist/{typespec-go/src → src}/tcgcadapter/types.js +208 -191
  177. package/dist/src/tcgcadapter/types.js.map +1 -0
  178. package/package.json +77 -62
  179. package/dist/codegen.go/src/core/clientFactory.d.ts.map +0 -1
  180. package/dist/codegen.go/src/core/clientFactory.js.map +0 -1
  181. package/dist/codegen.go/src/core/cloudConfig.d.ts.map +0 -1
  182. package/dist/codegen.go/src/core/cloudConfig.js.map +0 -1
  183. package/dist/codegen.go/src/core/constants.d.ts.map +0 -1
  184. package/dist/codegen.go/src/core/constants.js.map +0 -1
  185. package/dist/codegen.go/src/core/errors.d.ts.map +0 -1
  186. package/dist/codegen.go/src/core/errors.js.map +0 -1
  187. package/dist/codegen.go/src/core/example.d.ts.map +0 -1
  188. package/dist/codegen.go/src/core/example.js.map +0 -1
  189. package/dist/codegen.go/src/core/gomod.d.ts.map +0 -1
  190. package/dist/codegen.go/src/core/gomod.js.map +0 -1
  191. package/dist/codegen.go/src/core/helpers.d.ts.map +0 -1
  192. package/dist/codegen.go/src/core/helpers.js.map +0 -1
  193. package/dist/codegen.go/src/core/imports.d.ts.map +0 -1
  194. package/dist/codegen.go/src/core/imports.js.map +0 -1
  195. package/dist/codegen.go/src/core/interfaces.d.ts.map +0 -1
  196. package/dist/codegen.go/src/core/interfaces.js.map +0 -1
  197. package/dist/codegen.go/src/core/license.d.ts.map +0 -1
  198. package/dist/codegen.go/src/core/license.js.map +0 -1
  199. package/dist/codegen.go/src/core/metadata.d.ts +0 -3
  200. package/dist/codegen.go/src/core/metadata.d.ts.map +0 -1
  201. package/dist/codegen.go/src/core/metadata.js.map +0 -1
  202. package/dist/codegen.go/src/core/models.d.ts.map +0 -1
  203. package/dist/codegen.go/src/core/models.js.map +0 -1
  204. package/dist/codegen.go/src/core/operations.d.ts.map +0 -1
  205. package/dist/codegen.go/src/core/operations.js.map +0 -1
  206. package/dist/codegen.go/src/core/options.d.ts.map +0 -1
  207. package/dist/codegen.go/src/core/options.js.map +0 -1
  208. package/dist/codegen.go/src/core/polymorphics.d.ts.map +0 -1
  209. package/dist/codegen.go/src/core/polymorphics.js.map +0 -1
  210. package/dist/codegen.go/src/core/responses.d.ts.map +0 -1
  211. package/dist/codegen.go/src/core/responses.js.map +0 -1
  212. package/dist/codegen.go/src/core/version.d.ts.map +0 -1
  213. package/dist/codegen.go/src/core/version.js.map +0 -1
  214. package/dist/codegen.go/src/core/xmlAdditionalProps.d.ts.map +0 -1
  215. package/dist/codegen.go/src/core/xmlAdditionalProps.js.map +0 -1
  216. package/dist/codegen.go/src/emitter.d.ts.map +0 -1
  217. package/dist/codegen.go/src/emitter.js.map +0 -1
  218. package/dist/codegen.go/src/fake/factory.d.ts.map +0 -1
  219. package/dist/codegen.go/src/fake/factory.js.map +0 -1
  220. package/dist/codegen.go/src/fake/internal.d.ts.map +0 -1
  221. package/dist/codegen.go/src/fake/internal.js.map +0 -1
  222. package/dist/codegen.go/src/fake/servers.d.ts.map +0 -1
  223. package/dist/codegen.go/src/fake/servers.js.map +0 -1
  224. package/dist/codegen.go/src/index.d.ts +0 -4
  225. package/dist/codegen.go/src/index.d.ts.map +0 -1
  226. package/dist/codegen.go/src/index.js.map +0 -1
  227. package/dist/codemodel.go/src/client.d.ts.map +0 -1
  228. package/dist/codemodel.go/src/client.js.map +0 -1
  229. package/dist/codemodel.go/src/codeModel.d.ts.map +0 -1
  230. package/dist/codemodel.go/src/codeModel.js.map +0 -1
  231. package/dist/codemodel.go/src/errors.d.ts.map +0 -1
  232. package/dist/codemodel.go/src/errors.js.map +0 -1
  233. package/dist/codemodel.go/src/examples.d.ts.map +0 -1
  234. package/dist/codemodel.go/src/examples.js.map +0 -1
  235. package/dist/codemodel.go/src/index.d.ts +0 -9
  236. package/dist/codemodel.go/src/index.d.ts.map +0 -1
  237. package/dist/codemodel.go/src/index.js.map +0 -1
  238. package/dist/codemodel.go/src/method.d.ts.map +0 -1
  239. package/dist/codemodel.go/src/method.js.map +0 -1
  240. package/dist/codemodel.go/src/module.d.ts.map +0 -1
  241. package/dist/codemodel.go/src/module.js.map +0 -1
  242. package/dist/codemodel.go/src/param.d.ts.map +0 -1
  243. package/dist/codemodel.go/src/param.js.map +0 -1
  244. package/dist/codemodel.go/src/result.d.ts.map +0 -1
  245. package/dist/codemodel.go/src/result.js.map +0 -1
  246. package/dist/codemodel.go/src/type.d.ts.map +0 -1
  247. package/dist/codemodel.go/src/type.js.map +0 -1
  248. package/dist/naming.go/src/index.d.ts +0 -3
  249. package/dist/naming.go/src/index.d.ts.map +0 -1
  250. package/dist/naming.go/src/index.js.map +0 -1
  251. package/dist/naming.go/src/mappings.d.ts.map +0 -1
  252. package/dist/naming.go/src/mappings.js +0 -294
  253. package/dist/naming.go/src/mappings.js.map +0 -1
  254. package/dist/naming.go/src/naming.d.ts.map +0 -1
  255. package/dist/naming.go/src/naming.js.map +0 -1
  256. package/dist/typespec-go/src/emitter.d.ts.map +0 -1
  257. package/dist/typespec-go/src/emitter.js.map +0 -1
  258. package/dist/typespec-go/src/index.d.ts +0 -3
  259. package/dist/typespec-go/src/index.d.ts.map +0 -1
  260. package/dist/typespec-go/src/index.js.map +0 -1
  261. package/dist/typespec-go/src/lib.d.ts.map +0 -1
  262. package/dist/typespec-go/src/lib.js.map +0 -1
  263. package/dist/typespec-go/src/tcgcadapter/adapter.d.ts.map +0 -1
  264. package/dist/typespec-go/src/tcgcadapter/adapter.js.map +0 -1
  265. package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +0 -1
  266. package/dist/typespec-go/src/tcgcadapter/clients.js.map +0 -1
  267. package/dist/typespec-go/src/tcgcadapter/errors.d.ts.map +0 -1
  268. package/dist/typespec-go/src/tcgcadapter/errors.js.map +0 -1
  269. package/dist/typespec-go/src/tcgcadapter/helpers.d.ts.map +0 -1
  270. package/dist/typespec-go/src/tcgcadapter/helpers.js.map +0 -1
  271. package/dist/typespec-go/src/tcgcadapter/metadata.d.ts.map +0 -1
  272. package/dist/typespec-go/src/tcgcadapter/metadata.js +0 -21
  273. package/dist/typespec-go/src/tcgcadapter/metadata.js.map +0 -1
  274. package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +0 -1
  275. package/dist/typespec-go/src/tcgcadapter/types.js.map +0 -1
  276. /package/dist/{codegen.go/src → src/codegen}/core/errors.js +0 -0
  277. /package/dist/{codegen.go/src → src/codegen}/core/license.js +0 -0
  278. /package/dist/{codemodel.go/src → src/codemodel}/method.js +0 -0
  279. /package/dist/{naming.go/src → src/naming}/mappings.d.ts +0 -0
  280. /package/dist/{naming.go/src → src/naming}/naming.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../../src/codegen/core/operations.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as go from '../../../codemodel.go/src/index.js';
1
+ import * as go from "../../codemodel/index.js";
2
2
  /**
3
3
  * Creates the content for the options.go file.
4
4
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../src/codegen/core/options.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAK/C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,GAAG,MAAM,CAgB9D"}
@@ -2,10 +2,10 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import * as go from '../../../codemodel.go/src/index.js';
6
- import * as naming from '../../../naming.go/src/naming.js';
7
- import * as helpers from './helpers.js';
8
- import { ImportManager } from './imports.js';
5
+ import * as go from "../../codemodel/index.js";
6
+ import * as naming from "../../naming/naming.js";
7
+ import * as helpers from "./helpers.js";
8
+ import { ImportManager } from "./imports.js";
9
9
  /**
10
10
  * Creates the content for the options.go file.
11
11
  *
@@ -14,11 +14,11 @@ import { ImportManager } from './imports.js';
14
14
  */
15
15
  export function generateOptions(pkg) {
16
16
  if (pkg.paramGroups.length === 0) {
17
- return '';
17
+ return "";
18
18
  }
19
19
  const imports = new ImportManager(pkg);
20
20
  let optionsText = helpers.contentPreamble(pkg);
21
- let content = '';
21
+ let content = "";
22
22
  for (const paramGroup of pkg.paramGroups) {
23
23
  content += emit(pkg, paramGroup, imports);
24
24
  }
@@ -51,24 +51,24 @@ function emit(pkg, struct, imports) {
51
51
  if (!first) {
52
52
  // add an extra new-line between fields IFF the field
53
53
  // has a comment and it's not the very first one.
54
- text += '\n';
54
+ text += "\n";
55
55
  }
56
56
  text += helpers.formatDocComment(field.docs);
57
57
  }
58
58
  let typeName = go.getTypeDeclaration(field.type, pkg);
59
- if (field.type.kind === 'literal') {
59
+ if (field.type.kind === "literal") {
60
60
  // for constants we use the underlying type name
61
61
  typeName = go.getLiteralTypeDeclaration(field.type.type);
62
62
  }
63
- let pointer = '*';
63
+ let pointer = "*";
64
64
  if (field.byValue) {
65
- pointer = '';
65
+ pointer = "";
66
66
  }
67
67
  text += `${indent.get()}${naming.capitalize(field.name)} ${pointer}${typeName}\n`;
68
68
  first = false;
69
69
  }
70
70
  }
71
- text += '}\n\n';
71
+ text += "}\n\n";
72
72
  return text;
73
73
  }
74
74
  //# sourceMappingURL=options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/codegen/core/options.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAsB;IACpD,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACzC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAC9B,WAAW,IAAI,OAAO,CAAC;IACvB,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,IAAI,CAAC,GAAsB,EAAE,MAAiB,EAAE,OAAsB;IAC7E,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IACzC,IAAI,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,IAAI,QAAQ,MAAM,CAAC,IAAI,aAAa,CAAC;IAEzC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,gDAAgD;QAChD,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,iDAAiD,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,0EAA0E;QAC1E,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,qDAAqD;oBACrD,iDAAiD;oBACjD,IAAI,IAAI,IAAI,CAAC;gBACf,CAAC;gBACD,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,QAAQ,GAAG,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACtD,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClC,gDAAgD;gBAChD,QAAQ,GAAG,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,OAAO,GAAG,GAAG,CAAC;YAClB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;YACD,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,QAAQ,IAAI,CAAC;YAClF,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,IAAI,OAAO,CAAC;IAChB,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,4 +1,4 @@
1
- import * as go from '../../../codemodel.go/src/index.js';
1
+ import * as go from "../../codemodel/index.js";
2
2
  /**
3
3
  * Creates the content for the polymorphic_helpers.go file.
4
4
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polymorphics.d.ts","sourceRoot":"","sources":["../../../../src/codegen/core/polymorphics.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAI/C;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,cAAc,GAAG,MAAM,CAwL1F"}
@@ -2,9 +2,9 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import * as go from '../../../codemodel.go/src/index.js';
6
- import * as helpers from './helpers.js';
7
- import { ImportManager } from './imports.js';
5
+ import * as go from "../../codemodel/index.js";
6
+ import * as helpers from "./helpers.js";
7
+ import { ImportManager } from "./imports.js";
8
8
  /**
9
9
  * Creates the content for the polymorphic_helpers.go file.
10
10
  *
@@ -12,15 +12,15 @@ import { ImportManager } from './imports.js';
12
12
  * @returns the text for the file or the empty string
13
13
  */
14
14
  export function generatePolymorphicHelpers(pkg) {
15
- const content = pkg.kind === 'fake' ? pkg.parent : pkg;
15
+ const content = pkg.kind === "fake" ? pkg.parent : pkg;
16
16
  if (content.interfaces.length === 0) {
17
17
  // no polymorphic types
18
- return '';
18
+ return "";
19
19
  }
20
20
  let text = helpers.contentPreamble(pkg);
21
21
  const imports = new ImportManager(pkg);
22
- imports.add('encoding/json');
23
- if (pkg.kind === 'fake') {
22
+ imports.add("encoding/json");
23
+ if (pkg.kind === "fake") {
24
24
  // content is being generated into a separate package, add the necessary import
25
25
  imports.addForPkg(pkg.parent);
26
26
  }
@@ -31,22 +31,22 @@ export function generatePolymorphicHelpers(pkg) {
31
31
  // we know there are polymorphic types but we don't know how they're used.
32
32
  // i.e. are they vanilla fields, elements in a slice, or values in a map.
33
33
  // polymorphic types within maps/slices will also need the scalar helpers.
34
- const trackDisciminator = function (type) {
34
+ const trackDiscriminator = function (type) {
35
35
  switch (type.kind) {
36
- case 'interface':
36
+ case "interface":
37
37
  scalars.add(type.name);
38
38
  break;
39
- case 'map': {
39
+ case "map": {
40
40
  const leafType = helpers.recursiveUnwrapMapSlice(type);
41
- if (leafType.kind === 'interface') {
41
+ if (leafType.kind === "interface") {
42
42
  scalars.add(leafType.name);
43
43
  maps.add(leafType.name);
44
44
  }
45
45
  break;
46
46
  }
47
- case 'slice': {
47
+ case "slice": {
48
48
  const leafType = helpers.recursiveUnwrapMapSlice(type);
49
- if (leafType.kind === 'interface') {
49
+ if (leafType.kind === "interface") {
50
50
  scalars.add(leafType.name);
51
51
  arrays.add(leafType.name);
52
52
  }
@@ -55,12 +55,12 @@ export function generatePolymorphicHelpers(pkg) {
55
55
  }
56
56
  };
57
57
  // calculate which discriminator helpers we actually need to generate
58
- if (pkg.kind === 'fake') {
58
+ if (pkg.kind === "fake") {
59
59
  // when generating for the fakes server, we must look at operation parameters instead of return values
60
60
  for (const client of pkg.parent.clients) {
61
61
  for (const method of client.methods) {
62
62
  for (const param of method.parameters) {
63
- trackDisciminator(param.type);
63
+ trackDiscriminator(param.type);
64
64
  }
65
65
  }
66
66
  }
@@ -68,23 +68,23 @@ export function generatePolymorphicHelpers(pkg) {
68
68
  else {
69
69
  for (const model of pkg.models) {
70
70
  for (const field of model.fields) {
71
- trackDisciminator(field.type);
71
+ trackDiscriminator(field.type);
72
72
  }
73
73
  }
74
74
  for (const respEnv of pkg.responseEnvelopes) {
75
75
  switch (respEnv.result?.kind) {
76
- case 'monomorphicResult':
76
+ case "monomorphicResult":
77
77
  switch (respEnv.result.monomorphicType.kind) {
78
- case 'map':
79
- trackDisciminator(respEnv.result.monomorphicType.valueType);
78
+ case "map":
79
+ trackDiscriminator(respEnv.result.monomorphicType.valueType);
80
80
  break;
81
- case 'slice':
82
- trackDisciminator(respEnv.result.monomorphicType.elementType);
81
+ case "slice":
82
+ trackDiscriminator(respEnv.result.monomorphicType.elementType);
83
83
  break;
84
84
  }
85
85
  break;
86
- case 'polymorphicResult':
87
- trackDisciminator(respEnv.result.interface);
86
+ case "polymorphicResult":
87
+ trackDiscriminator(respEnv.result.interface);
88
88
  break;
89
89
  }
90
90
  }
@@ -94,10 +94,10 @@ export function generatePolymorphicHelpers(pkg) {
94
94
  // are error types. there's a bug in M4 that incorrectly annotates such
95
95
  // types as 'output', 'exception' in the usage however it's really just
96
96
  // 'exception'. until this is fixed, we can wind up here.
97
- return '';
97
+ return "";
98
98
  }
99
- let prefix = '';
100
- if (pkg.kind === 'fake') {
99
+ let prefix = "";
100
+ if (pkg.kind === "fake") {
101
101
  // content is being generated into a separate package, set the type name prefix
102
102
  prefix = `${go.getPackageName(pkg.parent)}.`;
103
103
  }
@@ -119,7 +119,7 @@ export function generatePolymorphicHelpers(pkg) {
119
119
  for (const possibleType of interfaceType.possibleTypes) {
120
120
  let disc = helpers.formatLiteralValue(possibleType.discriminatorValue, true);
121
121
  // when the discriminator value is an enum, cast the const as a string
122
- if (possibleType.discriminatorValue.type.kind === 'constant') {
122
+ if (possibleType.discriminatorValue.type.kind === "constant") {
123
123
  disc = `string(${prefix}${disc})`;
124
124
  }
125
125
  text += `${indent.get()}case ${disc}:\n`;
@@ -134,7 +134,7 @@ export function generatePolymorphicHelpers(pkg) {
134
134
  text += `${indent.push().get()}return nil, err\n`;
135
135
  text += `${indent.pop().get()}}\n`;
136
136
  text += `${indent.get()}return b, nil\n`;
137
- text += '}\n\n';
137
+ text += "}\n\n";
138
138
  }
139
139
  // array unmarshaller
140
140
  if (arrays.has(interfaceType.name)) {
@@ -156,7 +156,7 @@ export function generatePolymorphicHelpers(pkg) {
156
156
  text += `${indent.get()}fArray[index] = f\n`;
157
157
  text += `${indent.pop().get()}}\n`;
158
158
  text += `${indent.get()}return fArray, nil\n`;
159
- text += '}\n\n';
159
+ text += "}\n\n";
160
160
  }
161
161
  // map unmarshaller
162
162
  if (maps.has(interfaceType.name)) {
@@ -178,7 +178,7 @@ export function generatePolymorphicHelpers(pkg) {
178
178
  text += `${indent.get()}fMap[key] = f\n`;
179
179
  text += `${indent.pop().get()}}\n`;
180
180
  text += `${indent.get()}return fMap, nil\n`;
181
- text += '}\n\n';
181
+ text += "}\n\n";
182
182
  }
183
183
  }
184
184
  return text;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polymorphics.js","sourceRoot":"","sources":["../../../../src/codegen/core/polymorphics.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import * as go from '../../../codemodel.go/src/index.js';
1
+ import * as go from "../../codemodel/index.js";
2
2
  export interface ResponsesSerDe {
3
3
  responses: string;
4
4
  serDe: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../../src/codegen/core/responses.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAK/C,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,cAAc,CAqC7F"}
@@ -2,10 +2,10 @@
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Licensed under the MIT License. See License.txt in the project root for license information.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- import * as go from '../../../codemodel.go/src/index.js';
6
- import * as helpers from './helpers.js';
7
- import { ImportManager } from './imports.js';
8
- import { CodegenError } from './errors.js';
5
+ import * as go from "../../codemodel/index.js";
6
+ import { CodegenError } from "./errors.js";
7
+ import * as helpers from "./helpers.js";
8
+ import { ImportManager } from "./imports.js";
9
9
  /**
10
10
  * Creates the content for the responses.go file.
11
11
  *
@@ -16,17 +16,17 @@ import { CodegenError } from './errors.js';
16
16
  export function generateResponses(pkg, options) {
17
17
  if (pkg.responseEnvelopes.length === 0) {
18
18
  return {
19
- responses: '',
20
- serDe: '',
19
+ responses: "",
20
+ serDe: "",
21
21
  };
22
22
  }
23
23
  const indent = new helpers.Indentation();
24
24
  const imports = new ImportManager(pkg);
25
25
  const serdeImports = new ImportManager(pkg);
26
26
  let responses = helpers.contentPreamble(pkg);
27
- let serDe = '';
28
- let respContent = '';
29
- let serdeContent = '';
27
+ let serDe = "";
28
+ let respContent = "";
29
+ let serdeContent = "";
30
30
  for (const respEnv of pkg.responseEnvelopes) {
31
31
  respContent += emit(respEnv, imports, indent);
32
32
  if (options.generateFakes) {
@@ -56,13 +56,13 @@ export function generateResponses(pkg, options) {
56
56
  * @returns the text for the response envelope's marshaler
57
57
  */
58
58
  function generateMarshaller(respEnv, imports, indent) {
59
- let text = '';
60
- if (go.isLROMethod(respEnv.method) && respEnv.result?.kind === 'polymorphicResult') {
59
+ let text = "";
60
+ if (go.isLROMethod(respEnv.method) && respEnv.result?.kind === "polymorphicResult") {
61
61
  // fakes require a custom marshaller for polymorphics results so that the data is in the correct shape.
62
62
  // without it, the response envelope type name is the outer type which is incorrect.
63
- imports.add('encoding/json');
63
+ imports.add("encoding/json");
64
64
  const receiver = respEnv.name[0].toLowerCase();
65
- text += `${helpers.comment(`MarshalJSON implements the json.Marshaller interface for type ${respEnv.name}.`, '// ', undefined, helpers.commentLength)}\n`;
65
+ text += `${helpers.comment(`MarshalJSON implements the json.Marshaller interface for type ${respEnv.name}.`, "// ", undefined, helpers.commentLength)}\n`;
66
66
  text += `func (${receiver} ${respEnv.name}) MarshalJSON() ([]byte, error) {\n`;
67
67
  // TODO: this doesn't include any headers. however, LROs with header responses are currently broken :(
68
68
  text += `${indent.get()}return json.Marshal(${receiver}.${go.getTypeDeclaration(respEnv.result.interface, respEnv.method.receiver.type.pkg)})\n}\n\n`;
@@ -83,18 +83,18 @@ function generateUnmarshaller(respEnv, imports, indent) {
83
83
  let polymorphicRes;
84
84
  // in addition, if it's an LRO operation that returns a scalar, we will also need one
85
85
  let monomorphicRes;
86
- if (respEnv.result?.kind === 'polymorphicResult') {
86
+ if (respEnv.result?.kind === "polymorphicResult") {
87
87
  polymorphicRes = respEnv.result;
88
88
  }
89
- else if (go.isLROMethod(respEnv.method) && respEnv.result?.kind === 'monomorphicResult') {
89
+ else if (go.isLROMethod(respEnv.method) && respEnv.result?.kind === "monomorphicResult") {
90
90
  monomorphicRes = respEnv.result;
91
91
  }
92
92
  if (!polymorphicRes && !monomorphicRes) {
93
93
  // no unmarshaller required
94
- return '';
94
+ return "";
95
95
  }
96
96
  const receiver = respEnv.name[0].toLowerCase();
97
- let unmarshaller = `${helpers.comment(`UnmarshalJSON implements the json.Unmarshaller interface for type ${respEnv.name}.`, '// ', undefined, helpers.commentLength)}\n`;
97
+ let unmarshaller = `${helpers.comment(`UnmarshalJSON implements the json.Unmarshaller interface for type ${respEnv.name}.`, "// ", undefined, helpers.commentLength)}\n`;
98
98
  unmarshaller += `func (${receiver} *${respEnv.name}) UnmarshalJSON(data []byte) error {\n`;
99
99
  // add a custom unmarshaller to the response envelope
100
100
  if (polymorphicRes) {
@@ -109,13 +109,13 @@ function generateUnmarshaller(respEnv, imports, indent) {
109
109
  unmarshaller += `${indent.get()}return nil\n`;
110
110
  }
111
111
  else if (monomorphicRes) {
112
- imports.add('encoding/json');
112
+ imports.add("encoding/json");
113
113
  unmarshaller += `${indent.get()}return json.Unmarshal(data, &${receiver}.${monomorphicRes.fieldName})\n`;
114
114
  }
115
115
  else {
116
- throw new CodegenError('InternalError', `unhandled case for response envelope ${respEnv.name}`);
116
+ throw new CodegenError("InternalError", `unhandled case for response envelope ${respEnv.name}`);
117
117
  }
118
- unmarshaller += '}\n\n';
118
+ unmarshaller += "}\n\n";
119
119
  return unmarshaller;
120
120
  }
121
121
  /**
@@ -125,7 +125,7 @@ function generateUnmarshaller(respEnv, imports, indent) {
125
125
  * @param respEnv the response envelope for which to emit the definition
126
126
  * @param imports the import manager currently in scope
127
127
  * @param indent the indentation helper currently in scope
128
- * @returns the text for the response enveloipe type definition
128
+ * @returns the text for the response envelope type definition
129
129
  */
130
130
  function emit(respEnv, imports, indent) {
131
131
  let text = helpers.formatDocComment(respEnv.docs);
@@ -142,15 +142,15 @@ function emit(respEnv, imports, indent) {
142
142
  if (respEnv.result) {
143
143
  const respType = go.getResultType(respEnv.result);
144
144
  imports.addForType(respType);
145
- if (respEnv.result.kind === 'modelResult' || respEnv.result.kind === 'polymorphicResult') {
145
+ if (respEnv.result.kind === "modelResult" || respEnv.result.kind === "polymorphicResult") {
146
146
  // anonymously embedded type always goes first
147
147
  text += helpers.formatDocComment(respEnv.result.docs);
148
148
  text += `${indent.get()}${go.getTypeDeclaration(respType, respEnv.method.receiver.type.pkg)}\n`;
149
149
  first = false;
150
150
  }
151
151
  else {
152
- let tag = '';
153
- if (respEnv.result.kind === 'monomorphicResult' && respEnv.result.format === 'XML') {
152
+ let tag = "";
153
+ if (respEnv.result.kind === "monomorphicResult" && respEnv.result.format === "XML") {
154
154
  // only emit tags for XML; JSON uses custom marshallers/unmarshallers
155
155
  if (respEnv.result.xml?.wraps) {
156
156
  tag = ` \`xml:"${respEnv.result.xml.wraps}"\``;
@@ -160,7 +160,7 @@ function emit(respEnv, imports, indent) {
160
160
  }
161
161
  }
162
162
  let byValue = true;
163
- if (respEnv.result.kind === 'monomorphicResult') {
163
+ if (respEnv.result.kind === "monomorphicResult") {
164
164
  byValue = respEnv.result.byValue;
165
165
  }
166
166
  fields.push({
@@ -172,7 +172,7 @@ function emit(respEnv, imports, indent) {
172
172
  for (const header of respEnv.headers) {
173
173
  imports.addForType(header.type);
174
174
  let byValue = true;
175
- if (header.kind === 'headerScalarResponse') {
175
+ if (header.kind === "headerScalarResponse") {
176
176
  byValue = header.byValue;
177
177
  }
178
178
  fields.push({
@@ -188,7 +188,7 @@ function emit(respEnv, imports, indent) {
188
188
  if (!first) {
189
189
  // add an extra new-line between fields IFF the field
190
190
  // has a comment and it's not the very first one.
191
- text += '\n';
191
+ text += "\n";
192
192
  }
193
193
  text += helpers.formatDocComment(field.docs);
194
194
  }
@@ -196,7 +196,7 @@ function emit(respEnv, imports, indent) {
196
196
  first = false;
197
197
  }
198
198
  }
199
- text += '}\n\n';
199
+ text += "}\n\n";
200
200
  return text;
201
201
  }
202
202
  //# sourceMappingURL=responses.js.map