@goast/kotlin 0.6.0-beta.2 → 0.7.0-beta.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 (505) hide show
  1. package/README.md +0 -1
  2. package/dist/mod.d.ts +8 -0
  3. package/{esm → dist}/src/assets.d.ts +0 -1
  4. package/dist/src/assets.js +5 -0
  5. package/{esm → dist}/src/ast/_index.d.ts +28 -29
  6. package/{esm → dist}/src/ast/_index.js +2 -0
  7. package/{esm → dist}/src/ast/common.d.ts +0 -1
  8. package/dist/src/ast/index.d.ts +1 -0
  9. package/{esm → dist}/src/ast/node.d.ts +0 -1
  10. package/{script → dist}/src/ast/nodes/annotation.d.ts +5 -6
  11. package/{esm → dist}/src/ast/nodes/annotation.js +5 -21
  12. package/{esm → dist}/src/ast/nodes/argument.d.ts +5 -6
  13. package/{esm → dist}/src/ast/nodes/argument.js +3 -14
  14. package/{esm → dist}/src/ast/nodes/call.d.ts +5 -6
  15. package/{esm → dist}/src/ast/nodes/call.js +6 -23
  16. package/{esm → dist}/src/ast/nodes/class.d.ts +15 -16
  17. package/dist/src/ast/nodes/class.js +100 -0
  18. package/{esm → dist}/src/ast/nodes/collection-literal.d.ts +4 -5
  19. package/{esm → dist}/src/ast/nodes/collection-literal.js +2 -8
  20. package/{esm → dist}/src/ast/nodes/constructor.d.ts +8 -9
  21. package/{esm → dist}/src/ast/nodes/constructor.js +13 -44
  22. package/{esm → dist}/src/ast/nodes/doc-tag.d.ts +2 -3
  23. package/{esm → dist}/src/ast/nodes/doc-tag.js +5 -21
  24. package/{esm → dist}/src/ast/nodes/doc.d.ts +6 -7
  25. package/{esm → dist}/src/ast/nodes/doc.js +14 -20
  26. package/{script → dist}/src/ast/nodes/enum-value.d.ts +8 -9
  27. package/{esm → dist}/src/ast/nodes/enum-value.js +10 -37
  28. package/{script → dist}/src/ast/nodes/enum.d.ts +15 -16
  29. package/dist/src/ast/nodes/enum.js +86 -0
  30. package/{esm → dist}/src/ast/nodes/function.d.ts +9 -10
  31. package/dist/src/ast/nodes/function.js +120 -0
  32. package/{esm → dist}/src/ast/nodes/generic-parameter.d.ts +4 -5
  33. package/dist/src/ast/nodes/generic-parameter.js +27 -0
  34. package/{esm → dist}/src/ast/nodes/init-block.d.ts +3 -4
  35. package/{esm → dist}/src/ast/nodes/init-block.js +1 -6
  36. package/{esm → dist}/src/ast/nodes/interface.d.ts +13 -14
  37. package/dist/src/ast/nodes/interface.js +70 -0
  38. package/{esm → dist}/src/ast/nodes/lambda-type.d.ts +4 -5
  39. package/{esm → dist}/src/ast/nodes/lambda-type.js +7 -28
  40. package/{esm → dist}/src/ast/nodes/lambda.d.ts +3 -4
  41. package/{esm → dist}/src/ast/nodes/lambda.js +6 -22
  42. package/{script → dist}/src/ast/nodes/object.d.ts +7 -8
  43. package/dist/src/ast/nodes/object.js +60 -0
  44. package/{esm → dist}/src/ast/nodes/parameter.d.ts +7 -8
  45. package/dist/src/ast/nodes/parameter.js +63 -0
  46. package/{esm → dist}/src/ast/nodes/property.d.ts +10 -11
  47. package/dist/src/ast/nodes/property.js +144 -0
  48. package/{script → dist}/src/ast/nodes/reference.d.ts +5 -6
  49. package/{esm → dist}/src/ast/nodes/reference.js +19 -56
  50. package/{esm → dist}/src/ast/nodes/string.d.ts +3 -4
  51. package/{esm → dist}/src/ast/nodes/string.js +13 -45
  52. package/{esm → dist}/src/ast/nodes/types.d.ts +7 -8
  53. package/dist/src/ast/references/index.d.ts +10 -0
  54. package/{script → dist}/src/ast/references/jackson.d.ts +2 -3
  55. package/{script → dist}/src/ast/references/jakarta.d.ts +1 -2
  56. package/{esm → dist}/src/ast/references/java.d.ts +1 -2
  57. package/{esm → dist}/src/ast/references/kotlin.d.ts +1 -2
  58. package/{esm → dist}/src/ast/references/kotlinx.d.ts +1 -2
  59. package/{esm → dist}/src/ast/references/okhttp3.d.ts +1 -2
  60. package/{esm → dist}/src/ast/references/reactor.d.ts +1 -2
  61. package/{esm → dist}/src/ast/references/spring-reactive.d.ts +1 -2
  62. package/{script → dist}/src/ast/references/spring.d.ts +1 -2
  63. package/{script → dist}/src/ast/references/swagger.d.ts +1 -2
  64. package/{esm → dist}/src/ast/utils/get-kotlin-builder-options.d.ts +1 -2
  65. package/{esm → dist}/src/ast/utils/to-kt-node.d.ts +2 -3
  66. package/{esm → dist}/src/ast/utils/write-kt-annotations.d.ts +1 -2
  67. package/{esm → dist}/src/ast/utils/write-kt-annotations.js +1 -1
  68. package/{esm → dist}/src/ast/utils/write-kt-arguments.d.ts +1 -2
  69. package/{script → dist}/src/ast/utils/write-kt-enum-values.d.ts +1 -2
  70. package/{script → dist}/src/ast/utils/write-kt-generic-parameters.d.ts +1 -2
  71. package/{script → dist}/src/ast/utils/write-kt-members.d.ts +1 -2
  72. package/{esm → dist}/src/ast/utils/write-kt-members.js +1 -1
  73. package/{script → dist}/src/ast/utils/write-kt-node.d.ts +1 -2
  74. package/{esm → dist}/src/ast/utils/write-kt-node.js +1 -1
  75. package/{esm → dist}/src/ast/utils/write-kt-parameters.d.ts +1 -2
  76. package/{esm → dist}/src/common-results.d.ts +0 -1
  77. package/{script → dist}/src/config.d.ts +0 -1
  78. package/{esm → dist}/src/file-builder.d.ts +3 -4
  79. package/{esm → dist}/src/file-builder.js +4 -14
  80. package/{esm → dist}/src/generators/file-generator.d.ts +1 -2
  81. package/{esm → dist}/src/generators/file-generator.js +2 -2
  82. package/dist/src/generators/index.d.ts +5 -0
  83. package/{esm → dist}/src/generators/models/args.d.ts +0 -1
  84. package/dist/src/generators/models/index.d.ts +4 -0
  85. package/{esm → dist}/src/generators/models/model-generator.d.ts +5 -6
  86. package/{esm → dist}/src/generators/models/model-generator.js +40 -48
  87. package/{script → dist}/src/generators/models/models-generator.d.ts +2 -3
  88. package/{esm → dist}/src/generators/models/models-generator.js +2 -7
  89. package/{script → dist}/src/generators/models/models.d.ts +2 -3
  90. package/{esm → dist}/src/generators/services/okhttp3-clients/args.d.ts +2 -3
  91. package/dist/src/generators/services/okhttp3-clients/index.d.ts +4 -0
  92. package/{esm → dist}/src/generators/services/okhttp3-clients/models.d.ts +5 -6
  93. package/{script → dist}/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts +6 -7
  94. package/{esm → dist}/src/generators/services/okhttp3-clients/okhttp3-client-generator.js +36 -40
  95. package/{script → dist}/src/generators/services/okhttp3-clients/okhttp3-clients-generator.d.ts +3 -4
  96. package/{esm → dist}/src/generators/services/okhttp3-clients/okhttp3-clients-generator.js +7 -15
  97. package/{script → dist}/src/generators/services/okhttp3-clients/refs.d.ts +1 -2
  98. package/{esm → dist}/src/generators/services/spring-controllers/args.d.ts +2 -3
  99. package/dist/src/generators/services/spring-controllers/index.d.ts +4 -0
  100. package/{script → dist}/src/generators/services/spring-controllers/models.d.ts +4 -5
  101. package/dist/src/generators/services/spring-controllers/refs.d.ts +5 -0
  102. package/{script → dist}/src/generators/services/spring-controllers/spring-controller-generator.d.ts +7 -8
  103. package/{esm → dist}/src/generators/services/spring-controllers/spring-controller-generator.js +85 -159
  104. package/{script → dist}/src/generators/services/spring-controllers/spring-controllers-generator.d.ts +4 -5
  105. package/{esm → dist}/src/generators/services/spring-controllers/spring-controllers-generator.js +5 -12
  106. package/{esm → dist}/src/generators/services/spring-reactive-web-clients/args.d.ts +2 -3
  107. package/dist/src/generators/services/spring-reactive-web-clients/index.d.ts +4 -0
  108. package/{script → dist}/src/generators/services/spring-reactive-web-clients/models.d.ts +4 -5
  109. package/{script → dist}/src/generators/services/spring-reactive-web-clients/refs.d.ts +1 -2
  110. package/{script → dist}/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts +6 -7
  111. package/{esm → dist}/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.js +49 -56
  112. package/{script → dist}/src/generators/services/spring-reactive-web-clients/spring-reactive-web-clients-generator.d.ts +3 -4
  113. package/{esm → dist}/src/generators/services/spring-reactive-web-clients/spring-reactive-web-clients-generator.js +5 -12
  114. package/{esm → dist}/src/import-collection.d.ts +1 -2
  115. package/{esm → dist}/src/import-collection.js +2 -12
  116. package/{script → dist}/src/types.d.ts +0 -1
  117. package/{esm → dist}/src/utils.d.ts +0 -1
  118. package/{esm → dist}/src/utils.js +3 -5
  119. package/package.json +23 -14
  120. package/esm/mod.d.ts +0 -9
  121. package/esm/mod.d.ts.map +0 -1
  122. package/esm/package.json +0 -3
  123. package/esm/src/assets.d.ts.map +0 -1
  124. package/esm/src/assets.js +0 -6
  125. package/esm/src/ast/_index.d.ts.map +0 -1
  126. package/esm/src/ast/common.d.ts.map +0 -1
  127. package/esm/src/ast/index.d.ts +0 -2
  128. package/esm/src/ast/index.d.ts.map +0 -1
  129. package/esm/src/ast/node.d.ts.map +0 -1
  130. package/esm/src/ast/nodes/annotation.d.ts +0 -25
  131. package/esm/src/ast/nodes/annotation.d.ts.map +0 -1
  132. package/esm/src/ast/nodes/argument.d.ts.map +0 -1
  133. package/esm/src/ast/nodes/call.d.ts.map +0 -1
  134. package/esm/src/ast/nodes/class.d.ts.map +0 -1
  135. package/esm/src/ast/nodes/class.js +0 -168
  136. package/esm/src/ast/nodes/collection-literal.d.ts.map +0 -1
  137. package/esm/src/ast/nodes/constructor.d.ts.map +0 -1
  138. package/esm/src/ast/nodes/doc-tag.d.ts.map +0 -1
  139. package/esm/src/ast/nodes/doc.d.ts.map +0 -1
  140. package/esm/src/ast/nodes/enum-value.d.ts +0 -32
  141. package/esm/src/ast/nodes/enum-value.d.ts.map +0 -1
  142. package/esm/src/ast/nodes/enum.d.ts +0 -47
  143. package/esm/src/ast/nodes/enum.d.ts.map +0 -1
  144. package/esm/src/ast/nodes/enum.js +0 -133
  145. package/esm/src/ast/nodes/function.d.ts.map +0 -1
  146. package/esm/src/ast/nodes/function.js +0 -217
  147. package/esm/src/ast/nodes/generic-parameter.d.ts.map +0 -1
  148. package/esm/src/ast/nodes/generic-parameter.js +0 -44
  149. package/esm/src/ast/nodes/init-block.d.ts.map +0 -1
  150. package/esm/src/ast/nodes/interface.d.ts.map +0 -1
  151. package/esm/src/ast/nodes/interface.js +0 -112
  152. package/esm/src/ast/nodes/lambda-type.d.ts.map +0 -1
  153. package/esm/src/ast/nodes/lambda.d.ts.map +0 -1
  154. package/esm/src/ast/nodes/object.d.ts +0 -36
  155. package/esm/src/ast/nodes/object.d.ts.map +0 -1
  156. package/esm/src/ast/nodes/object.js +0 -96
  157. package/esm/src/ast/nodes/parameter.d.ts.map +0 -1
  158. package/esm/src/ast/nodes/parameter.js +0 -114
  159. package/esm/src/ast/nodes/property.d.ts.map +0 -1
  160. package/esm/src/ast/nodes/property.js +0 -264
  161. package/esm/src/ast/nodes/reference.d.ts +0 -54
  162. package/esm/src/ast/nodes/reference.d.ts.map +0 -1
  163. package/esm/src/ast/nodes/string.d.ts.map +0 -1
  164. package/esm/src/ast/nodes/types.d.ts.map +0 -1
  165. package/esm/src/ast/references/index.d.ts +0 -11
  166. package/esm/src/ast/references/index.d.ts.map +0 -1
  167. package/esm/src/ast/references/jackson.d.ts +0 -26
  168. package/esm/src/ast/references/jackson.d.ts.map +0 -1
  169. package/esm/src/ast/references/jakarta.d.ts +0 -9
  170. package/esm/src/ast/references/jakarta.d.ts.map +0 -1
  171. package/esm/src/ast/references/java.d.ts.map +0 -1
  172. package/esm/src/ast/references/kotlin.d.ts.map +0 -1
  173. package/esm/src/ast/references/kotlinx.d.ts.map +0 -1
  174. package/esm/src/ast/references/okhttp3.d.ts.map +0 -1
  175. package/esm/src/ast/references/reactor.d.ts.map +0 -1
  176. package/esm/src/ast/references/spring-reactive.d.ts.map +0 -1
  177. package/esm/src/ast/references/spring.d.ts +0 -22
  178. package/esm/src/ast/references/spring.d.ts.map +0 -1
  179. package/esm/src/ast/references/swagger.d.ts +0 -9
  180. package/esm/src/ast/references/swagger.d.ts.map +0 -1
  181. package/esm/src/ast/utils/get-kotlin-builder-options.d.ts.map +0 -1
  182. package/esm/src/ast/utils/to-kt-node.d.ts.map +0 -1
  183. package/esm/src/ast/utils/write-kt-annotations.d.ts.map +0 -1
  184. package/esm/src/ast/utils/write-kt-arguments.d.ts.map +0 -1
  185. package/esm/src/ast/utils/write-kt-enum-values.d.ts +0 -4
  186. package/esm/src/ast/utils/write-kt-enum-values.d.ts.map +0 -1
  187. package/esm/src/ast/utils/write-kt-generic-parameters.d.ts +0 -4
  188. package/esm/src/ast/utils/write-kt-generic-parameters.d.ts.map +0 -1
  189. package/esm/src/ast/utils/write-kt-members.d.ts +0 -6
  190. package/esm/src/ast/utils/write-kt-members.d.ts.map +0 -1
  191. package/esm/src/ast/utils/write-kt-node.d.ts +0 -8
  192. package/esm/src/ast/utils/write-kt-node.d.ts.map +0 -1
  193. package/esm/src/ast/utils/write-kt-parameters.d.ts.map +0 -1
  194. package/esm/src/common-results.d.ts.map +0 -1
  195. package/esm/src/config.d.ts +0 -27
  196. package/esm/src/config.d.ts.map +0 -1
  197. package/esm/src/file-builder.d.ts.map +0 -1
  198. package/esm/src/generators/file-generator.d.ts.map +0 -1
  199. package/esm/src/generators/index.d.ts +0 -6
  200. package/esm/src/generators/index.d.ts.map +0 -1
  201. package/esm/src/generators/models/args.d.ts.map +0 -1
  202. package/esm/src/generators/models/index.d.ts +0 -5
  203. package/esm/src/generators/models/index.d.ts.map +0 -1
  204. package/esm/src/generators/models/model-generator.d.ts.map +0 -1
  205. package/esm/src/generators/models/models-generator.d.ts +0 -18
  206. package/esm/src/generators/models/models-generator.d.ts.map +0 -1
  207. package/esm/src/generators/models/models.d.ts +0 -61
  208. package/esm/src/generators/models/models.d.ts.map +0 -1
  209. package/esm/src/generators/services/okhttp3-clients/args.d.ts.map +0 -1
  210. package/esm/src/generators/services/okhttp3-clients/index.d.ts +0 -5
  211. package/esm/src/generators/services/okhttp3-clients/index.d.ts.map +0 -1
  212. package/esm/src/generators/services/okhttp3-clients/models.d.ts.map +0 -1
  213. package/esm/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts +0 -55
  214. package/esm/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts.map +0 -1
  215. package/esm/src/generators/services/okhttp3-clients/okhttp3-clients-generator.d.ts +0 -23
  216. package/esm/src/generators/services/okhttp3-clients/okhttp3-clients-generator.d.ts.map +0 -1
  217. package/esm/src/generators/services/okhttp3-clients/refs.d.ts +0 -22
  218. package/esm/src/generators/services/okhttp3-clients/refs.d.ts.map +0 -1
  219. package/esm/src/generators/services/spring-controllers/args.d.ts.map +0 -1
  220. package/esm/src/generators/services/spring-controllers/index.d.ts +0 -5
  221. package/esm/src/generators/services/spring-controllers/index.d.ts.map +0 -1
  222. package/esm/src/generators/services/spring-controllers/models.d.ts +0 -38
  223. package/esm/src/generators/services/spring-controllers/models.d.ts.map +0 -1
  224. package/esm/src/generators/services/spring-controllers/refs.d.ts +0 -6
  225. package/esm/src/generators/services/spring-controllers/refs.d.ts.map +0 -1
  226. package/esm/src/generators/services/spring-controllers/spring-controller-generator.d.ts +0 -58
  227. package/esm/src/generators/services/spring-controllers/spring-controller-generator.d.ts.map +0 -1
  228. package/esm/src/generators/services/spring-controllers/spring-controllers-generator.d.ts +0 -24
  229. package/esm/src/generators/services/spring-controllers/spring-controllers-generator.d.ts.map +0 -1
  230. package/esm/src/generators/services/spring-reactive-web-clients/args.d.ts.map +0 -1
  231. package/esm/src/generators/services/spring-reactive-web-clients/index.d.ts +0 -5
  232. package/esm/src/generators/services/spring-reactive-web-clients/index.d.ts.map +0 -1
  233. package/esm/src/generators/services/spring-reactive-web-clients/models.d.ts +0 -48
  234. package/esm/src/generators/services/spring-reactive-web-clients/models.d.ts.map +0 -1
  235. package/esm/src/generators/services/spring-reactive-web-clients/refs.d.ts +0 -5
  236. package/esm/src/generators/services/spring-reactive-web-clients/refs.d.ts.map +0 -1
  237. package/esm/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts +0 -62
  238. package/esm/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts.map +0 -1
  239. package/esm/src/generators/services/spring-reactive-web-clients/spring-reactive-web-clients-generator.d.ts +0 -23
  240. package/esm/src/generators/services/spring-reactive-web-clients/spring-reactive-web-clients-generator.d.ts.map +0 -1
  241. package/esm/src/import-collection.d.ts.map +0 -1
  242. package/esm/src/types.d.ts +0 -8
  243. package/esm/src/types.d.ts.map +0 -1
  244. package/esm/src/utils.d.ts.map +0 -1
  245. package/script/mod.d.ts +0 -9
  246. package/script/mod.d.ts.map +0 -1
  247. package/script/mod.js +0 -11
  248. package/script/package.json +0 -3
  249. package/script/src/assets.d.ts +0 -3
  250. package/script/src/assets.d.ts.map +0 -1
  251. package/script/src/assets.js +0 -9
  252. package/script/src/ast/_index.d.ts +0 -29
  253. package/script/src/ast/_index.d.ts.map +0 -1
  254. package/script/src/ast/_index.js +0 -81
  255. package/script/src/ast/common.d.ts +0 -2
  256. package/script/src/ast/common.d.ts.map +0 -1
  257. package/script/src/ast/common.js +0 -2
  258. package/script/src/ast/index.d.ts +0 -2
  259. package/script/src/ast/index.d.ts.map +0 -1
  260. package/script/src/ast/index.js +0 -5
  261. package/script/src/ast/node.d.ts +0 -5
  262. package/script/src/ast/node.d.ts.map +0 -1
  263. package/script/src/ast/node.js +0 -10
  264. package/script/src/ast/nodes/annotation.d.ts.map +0 -1
  265. package/script/src/ast/nodes/annotation.js +0 -57
  266. package/script/src/ast/nodes/argument.d.ts +0 -23
  267. package/script/src/ast/nodes/argument.d.ts.map +0 -1
  268. package/script/src/ast/nodes/argument.js +0 -44
  269. package/script/src/ast/nodes/call.d.ts +0 -24
  270. package/script/src/ast/nodes/call.d.ts.map +0 -1
  271. package/script/src/ast/nodes/call.js +0 -65
  272. package/script/src/ast/nodes/class.d.ts +0 -56
  273. package/script/src/ast/nodes/class.d.ts.map +0 -1
  274. package/script/src/ast/nodes/class.js +0 -172
  275. package/script/src/ast/nodes/collection-literal.d.ts +0 -19
  276. package/script/src/ast/nodes/collection-literal.d.ts.map +0 -1
  277. package/script/src/ast/nodes/collection-literal.js +0 -30
  278. package/script/src/ast/nodes/constructor.d.ts +0 -36
  279. package/script/src/ast/nodes/constructor.d.ts.map +0 -1
  280. package/script/src/ast/nodes/constructor.js +0 -111
  281. package/script/src/ast/nodes/doc-tag.d.ts +0 -36
  282. package/script/src/ast/nodes/doc-tag.d.ts.map +0 -1
  283. package/script/src/ast/nodes/doc-tag.js +0 -78
  284. package/script/src/ast/nodes/doc.d.ts +0 -28
  285. package/script/src/ast/nodes/doc.d.ts.map +0 -1
  286. package/script/src/ast/nodes/doc.js +0 -67
  287. package/script/src/ast/nodes/enum-value.d.ts.map +0 -1
  288. package/script/src/ast/nodes/enum-value.js +0 -80
  289. package/script/src/ast/nodes/enum.d.ts.map +0 -1
  290. package/script/src/ast/nodes/enum.js +0 -137
  291. package/script/src/ast/nodes/function.d.ts +0 -60
  292. package/script/src/ast/nodes/function.d.ts.map +0 -1
  293. package/script/src/ast/nodes/function.js +0 -221
  294. package/script/src/ast/nodes/generic-parameter.d.ts +0 -23
  295. package/script/src/ast/nodes/generic-parameter.d.ts.map +0 -1
  296. package/script/src/ast/nodes/generic-parameter.js +0 -48
  297. package/script/src/ast/nodes/init-block.d.ts +0 -18
  298. package/script/src/ast/nodes/init-block.d.ts.map +0 -1
  299. package/script/src/ast/nodes/init-block.js +0 -25
  300. package/script/src/ast/nodes/interface.d.ts +0 -43
  301. package/script/src/ast/nodes/interface.d.ts.map +0 -1
  302. package/script/src/ast/nodes/interface.js +0 -116
  303. package/script/src/ast/nodes/lambda-type.d.ts +0 -25
  304. package/script/src/ast/nodes/lambda-type.d.ts.map +0 -1
  305. package/script/src/ast/nodes/lambda-type.js +0 -69
  306. package/script/src/ast/nodes/lambda.d.ts +0 -22
  307. package/script/src/ast/nodes/lambda.d.ts.map +0 -1
  308. package/script/src/ast/nodes/lambda.js +0 -59
  309. package/script/src/ast/nodes/object.d.ts.map +0 -1
  310. package/script/src/ast/nodes/object.js +0 -100
  311. package/script/src/ast/nodes/parameter.d.ts +0 -41
  312. package/script/src/ast/nodes/parameter.d.ts.map +0 -1
  313. package/script/src/ast/nodes/parameter.js +0 -118
  314. package/script/src/ast/nodes/property.d.ts +0 -79
  315. package/script/src/ast/nodes/property.d.ts.map +0 -1
  316. package/script/src/ast/nodes/property.js +0 -271
  317. package/script/src/ast/nodes/reference.d.ts.map +0 -1
  318. package/script/src/ast/nodes/reference.js +0 -120
  319. package/script/src/ast/nodes/string.d.ts +0 -32
  320. package/script/src/ast/nodes/string.d.ts.map +0 -1
  321. package/script/src/ast/nodes/string.js +0 -123
  322. package/script/src/ast/nodes/types.d.ts +0 -11
  323. package/script/src/ast/nodes/types.d.ts.map +0 -1
  324. package/script/src/ast/nodes/types.js +0 -2
  325. package/script/src/ast/references/index.d.ts +0 -11
  326. package/script/src/ast/references/index.d.ts.map +0 -1
  327. package/script/src/ast/references/index.js +0 -14
  328. package/script/src/ast/references/jackson.d.ts.map +0 -1
  329. package/script/src/ast/references/jackson.js +0 -41
  330. package/script/src/ast/references/jakarta.d.ts.map +0 -1
  331. package/script/src/ast/references/jakarta.js +0 -14
  332. package/script/src/ast/references/java.d.ts +0 -15
  333. package/script/src/ast/references/java.d.ts.map +0 -1
  334. package/script/src/ast/references/java.js +0 -22
  335. package/script/src/ast/references/kotlin.d.ts +0 -24
  336. package/script/src/ast/references/kotlin.d.ts.map +0 -1
  337. package/script/src/ast/references/kotlin.js +0 -29
  338. package/script/src/ast/references/kotlinx.d.ts +0 -5
  339. package/script/src/ast/references/kotlinx.d.ts.map +0 -1
  340. package/script/src/ast/references/kotlinx.js +0 -9
  341. package/script/src/ast/references/okhttp3.d.ts +0 -4
  342. package/script/src/ast/references/okhttp3.d.ts.map +0 -1
  343. package/script/src/ast/references/okhttp3.js +0 -7
  344. package/script/src/ast/references/reactor.d.ts +0 -4
  345. package/script/src/ast/references/reactor.d.ts.map +0 -1
  346. package/script/src/ast/references/reactor.js +0 -7
  347. package/script/src/ast/references/spring-reactive.d.ts +0 -10
  348. package/script/src/ast/references/spring-reactive.d.ts.map +0 -1
  349. package/script/src/ast/references/spring-reactive.js +0 -14
  350. package/script/src/ast/references/spring.d.ts.map +0 -1
  351. package/script/src/ast/references/spring.js +0 -34
  352. package/script/src/ast/references/swagger.d.ts.map +0 -1
  353. package/script/src/ast/references/swagger.js +0 -14
  354. package/script/src/ast/utils/get-kotlin-builder-options.d.ts +0 -4
  355. package/script/src/ast/utils/get-kotlin-builder-options.d.ts.map +0 -1
  356. package/script/src/ast/utils/get-kotlin-builder-options.js +0 -18
  357. package/script/src/ast/utils/to-kt-node.d.ts +0 -8
  358. package/script/src/ast/utils/to-kt-node.d.ts.map +0 -1
  359. package/script/src/ast/utils/to-kt-node.js +0 -21
  360. package/script/src/ast/utils/write-kt-annotations.d.ts +0 -6
  361. package/script/src/ast/utils/write-kt-annotations.d.ts.map +0 -1
  362. package/script/src/ast/utils/write-kt-annotations.js +0 -12
  363. package/script/src/ast/utils/write-kt-arguments.d.ts +0 -4
  364. package/script/src/ast/utils/write-kt-arguments.d.ts.map +0 -1
  365. package/script/src/ast/utils/write-kt-arguments.js +0 -32
  366. package/script/src/ast/utils/write-kt-enum-values.d.ts.map +0 -1
  367. package/script/src/ast/utils/write-kt-enum-values.js +0 -16
  368. package/script/src/ast/utils/write-kt-generic-parameters.d.ts.map +0 -1
  369. package/script/src/ast/utils/write-kt-generic-parameters.js +0 -11
  370. package/script/src/ast/utils/write-kt-members.d.ts.map +0 -1
  371. package/script/src/ast/utils/write-kt-members.js +0 -15
  372. package/script/src/ast/utils/write-kt-node.d.ts.map +0 -1
  373. package/script/src/ast/utils/write-kt-node.js +0 -23
  374. package/script/src/ast/utils/write-kt-parameters.d.ts +0 -4
  375. package/script/src/ast/utils/write-kt-parameters.d.ts.map +0 -1
  376. package/script/src/ast/utils/write-kt-parameters.js +0 -12
  377. package/script/src/common-results.d.ts +0 -5
  378. package/script/src/common-results.d.ts.map +0 -1
  379. package/script/src/common-results.js +0 -2
  380. package/script/src/config.d.ts.map +0 -1
  381. package/script/src/config.js +0 -26
  382. package/script/src/file-builder.d.ts +0 -23
  383. package/script/src/file-builder.d.ts.map +0 -1
  384. package/script/src/file-builder.js +0 -92
  385. package/script/src/generators/file-generator.d.ts +0 -29
  386. package/script/src/generators/file-generator.d.ts.map +0 -1
  387. package/script/src/generators/file-generator.js +0 -56
  388. package/script/src/generators/index.d.ts +0 -6
  389. package/script/src/generators/index.d.ts.map +0 -1
  390. package/script/src/generators/index.js +0 -8
  391. package/script/src/generators/models/args.d.ts +0 -111
  392. package/script/src/generators/models/args.d.ts.map +0 -1
  393. package/script/src/generators/models/args.js +0 -2
  394. package/script/src/generators/models/index.d.ts +0 -5
  395. package/script/src/generators/models/index.d.ts.map +0 -1
  396. package/script/src/generators/models/index.js +0 -8
  397. package/script/src/generators/models/model-generator.d.ts +0 -73
  398. package/script/src/generators/models/model-generator.d.ts.map +0 -1
  399. package/script/src/generators/models/model-generator.js +0 -645
  400. package/script/src/generators/models/models-generator.d.ts.map +0 -1
  401. package/script/src/generators/models/models-generator.js +0 -39
  402. package/script/src/generators/models/models.d.ts.map +0 -1
  403. package/script/src/generators/models/models.js +0 -14
  404. package/script/src/generators/services/okhttp3-clients/args.d.ts +0 -87
  405. package/script/src/generators/services/okhttp3-clients/args.d.ts.map +0 -1
  406. package/script/src/generators/services/okhttp3-clients/args.js +0 -2
  407. package/script/src/generators/services/okhttp3-clients/index.d.ts +0 -5
  408. package/script/src/generators/services/okhttp3-clients/index.d.ts.map +0 -1
  409. package/script/src/generators/services/okhttp3-clients/index.js +0 -8
  410. package/script/src/generators/services/okhttp3-clients/models.d.ts +0 -46
  411. package/script/src/generators/services/okhttp3-clients/models.d.ts.map +0 -1
  412. package/script/src/generators/services/okhttp3-clients/models.js +0 -12
  413. package/script/src/generators/services/okhttp3-clients/okhttp3-client-generator.d.ts.map +0 -1
  414. package/script/src/generators/services/okhttp3-clients/okhttp3-client-generator.js +0 -441
  415. package/script/src/generators/services/okhttp3-clients/okhttp3-clients-generator.d.ts.map +0 -1
  416. package/script/src/generators/services/okhttp3-clients/okhttp3-clients-generator.js +0 -137
  417. package/script/src/generators/services/okhttp3-clients/refs.d.ts.map +0 -1
  418. package/script/src/generators/services/okhttp3-clients/refs.js +0 -35
  419. package/script/src/generators/services/spring-controllers/args.d.ts +0 -95
  420. package/script/src/generators/services/spring-controllers/args.d.ts.map +0 -1
  421. package/script/src/generators/services/spring-controllers/args.js +0 -2
  422. package/script/src/generators/services/spring-controllers/index.d.ts +0 -5
  423. package/script/src/generators/services/spring-controllers/index.d.ts.map +0 -1
  424. package/script/src/generators/services/spring-controllers/index.js +0 -8
  425. package/script/src/generators/services/spring-controllers/models.d.ts.map +0 -1
  426. package/script/src/generators/services/spring-controllers/models.js +0 -15
  427. package/script/src/generators/services/spring-controllers/refs.d.ts +0 -6
  428. package/script/src/generators/services/spring-controllers/refs.d.ts.map +0 -1
  429. package/script/src/generators/services/spring-controllers/refs.js +0 -12
  430. package/script/src/generators/services/spring-controllers/spring-controller-generator.d.ts.map +0 -1
  431. package/script/src/generators/services/spring-controllers/spring-controller-generator.js +0 -700
  432. package/script/src/generators/services/spring-controllers/spring-controllers-generator.d.ts.map +0 -1
  433. package/script/src/generators/services/spring-controllers/spring-controllers-generator.js +0 -80
  434. package/script/src/generators/services/spring-reactive-web-clients/args.d.ts +0 -115
  435. package/script/src/generators/services/spring-reactive-web-clients/args.d.ts.map +0 -1
  436. package/script/src/generators/services/spring-reactive-web-clients/args.js +0 -2
  437. package/script/src/generators/services/spring-reactive-web-clients/index.d.ts +0 -5
  438. package/script/src/generators/services/spring-reactive-web-clients/index.d.ts.map +0 -1
  439. package/script/src/generators/services/spring-reactive-web-clients/index.js +0 -8
  440. package/script/src/generators/services/spring-reactive-web-clients/models.d.ts.map +0 -1
  441. package/script/src/generators/services/spring-reactive-web-clients/models.js +0 -12
  442. package/script/src/generators/services/spring-reactive-web-clients/refs.d.ts.map +0 -1
  443. package/script/src/generators/services/spring-reactive-web-clients/refs.js +0 -11
  444. package/script/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.d.ts.map +0 -1
  445. package/script/src/generators/services/spring-reactive-web-clients/spring-reactive-web-client-generator.js +0 -453
  446. package/script/src/generators/services/spring-reactive-web-clients/spring-reactive-web-clients-generator.d.ts.map +0 -1
  447. package/script/src/generators/services/spring-reactive-web-clients/spring-reactive-web-clients-generator.js +0 -81
  448. package/script/src/import-collection.d.ts +0 -20
  449. package/script/src/import-collection.d.ts.map +0 -1
  450. package/script/src/import-collection.js +0 -90
  451. package/script/src/types.d.ts.map +0 -1
  452. package/script/src/types.js +0 -2
  453. package/script/src/utils.d.ts +0 -8
  454. package/script/src/utils.d.ts.map +0 -1
  455. package/script/src/utils.js +0 -54
  456. /package/{assets → dist/assets}/client/okhttp3/ApiAbstractions.kt +0 -0
  457. /package/{assets → dist/assets}/client/okhttp3/ApiClient.kt +0 -0
  458. /package/{assets → dist/assets}/client/okhttp3/ApiResponse.kt +0 -0
  459. /package/{assets → dist/assets}/client/okhttp3/Errors.kt +0 -0
  460. /package/{assets → dist/assets}/client/okhttp3/PartConfig.kt +0 -0
  461. /package/{assets → dist/assets}/client/okhttp3/RequestConfig.kt +0 -0
  462. /package/{assets → dist/assets}/client/okhttp3/RequestMethod.kt +0 -0
  463. /package/{assets → dist/assets}/client/okhttp3/ResponseExtensions.kt +0 -0
  464. /package/{assets → dist/assets}/client/spring-reactive-web-clients/ApiRequestFile.kt +0 -0
  465. /package/{esm → dist}/mod.js +0 -0
  466. /package/{esm → dist}/src/ast/common.js +0 -0
  467. /package/{esm → dist}/src/ast/index.js +0 -0
  468. /package/{esm → dist}/src/ast/node.js +0 -0
  469. /package/{esm → dist}/src/ast/nodes/types.js +0 -0
  470. /package/{esm → dist}/src/ast/references/index.js +0 -0
  471. /package/{esm → dist}/src/ast/references/jackson.js +0 -0
  472. /package/{esm → dist}/src/ast/references/jakarta.js +0 -0
  473. /package/{esm → dist}/src/ast/references/java.js +0 -0
  474. /package/{esm → dist}/src/ast/references/kotlin.js +0 -0
  475. /package/{esm → dist}/src/ast/references/kotlinx.js +0 -0
  476. /package/{esm → dist}/src/ast/references/okhttp3.js +0 -0
  477. /package/{esm → dist}/src/ast/references/reactor.js +0 -0
  478. /package/{esm → dist}/src/ast/references/spring-reactive.js +0 -0
  479. /package/{esm → dist}/src/ast/references/spring.js +0 -0
  480. /package/{esm → dist}/src/ast/references/swagger.js +0 -0
  481. /package/{esm → dist}/src/ast/utils/get-kotlin-builder-options.js +0 -0
  482. /package/{esm → dist}/src/ast/utils/to-kt-node.js +0 -0
  483. /package/{esm → dist}/src/ast/utils/write-kt-arguments.js +0 -0
  484. /package/{esm → dist}/src/ast/utils/write-kt-enum-values.js +0 -0
  485. /package/{esm → dist}/src/ast/utils/write-kt-generic-parameters.js +0 -0
  486. /package/{esm → dist}/src/ast/utils/write-kt-parameters.js +0 -0
  487. /package/{esm → dist}/src/common-results.js +0 -0
  488. /package/{esm → dist}/src/config.js +0 -0
  489. /package/{esm → dist}/src/generators/index.js +0 -0
  490. /package/{esm → dist}/src/generators/models/args.js +0 -0
  491. /package/{esm → dist}/src/generators/models/index.js +0 -0
  492. /package/{esm → dist}/src/generators/models/models.js +0 -0
  493. /package/{esm → dist}/src/generators/services/okhttp3-clients/args.js +0 -0
  494. /package/{esm → dist}/src/generators/services/okhttp3-clients/index.js +0 -0
  495. /package/{esm → dist}/src/generators/services/okhttp3-clients/models.js +0 -0
  496. /package/{esm → dist}/src/generators/services/okhttp3-clients/refs.js +0 -0
  497. /package/{esm → dist}/src/generators/services/spring-controllers/args.js +0 -0
  498. /package/{esm → dist}/src/generators/services/spring-controllers/index.js +0 -0
  499. /package/{esm → dist}/src/generators/services/spring-controllers/models.js +0 -0
  500. /package/{esm → dist}/src/generators/services/spring-controllers/refs.js +0 -0
  501. /package/{esm → dist}/src/generators/services/spring-reactive-web-clients/args.js +0 -0
  502. /package/{esm → dist}/src/generators/services/spring-reactive-web-clients/index.js +0 -0
  503. /package/{esm → dist}/src/generators/services/spring-reactive-web-clients/models.js +0 -0
  504. /package/{esm → dist}/src/generators/services/spring-reactive-web-clients/refs.js +0 -0
  505. /package/{esm → dist}/src/types.js +0 -0
@@ -1,700 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultKotlinSpringControllerGenerator = void 0;
4
- exports.adjustListType = adjustListType;
5
- const core_1 = require("@goast/core");
6
- const http_status_codes_1 = require("http-status-codes");
7
- const index_js_1 = require("../../../ast/index.js");
8
- const file_builder_js_1 = require("../../../file-builder.js");
9
- const utils_js_1 = require("../../../utils.js");
10
- const file_generator_js_1 = require("../../file-generator.js");
11
- const strictResponseCustomProperty = 'strict-response';
12
- class DefaultKotlinSpringControllerGenerator extends file_generator_js_1.KotlinFileGenerator {
13
- generate(ctx) {
14
- const packageName = this.getPackageName(ctx, {});
15
- const dirPath = this.getDirectoryPath(ctx, { packageName });
16
- console.log(`Generating service ${ctx.service.id} to ${dirPath}...`);
17
- console.log(` Endpoints:`);
18
- ctx.service.endpoints.forEach((endpoint) => {
19
- console.log(` - ${(0, core_1.getSourceDisplayName)(ctx.data, endpoint)} [${(0, core_1.toCasing)(endpoint.name, ctx.config.functionNameCasing)}]`);
20
- });
21
- return {
22
- apiInterface: this.generateApiInterfaceFile(ctx, {
23
- dirPath,
24
- packageName,
25
- }),
26
- apiController: this.generateApiControllerFile(ctx, {
27
- dirPath,
28
- packageName,
29
- }),
30
- apiDelegate: this.generateApiDelegateInterfaceFile(ctx, {
31
- dirPath,
32
- packageName,
33
- }),
34
- };
35
- }
36
- // #region API Interface
37
- generateApiInterfaceFile(ctx, args) {
38
- const { dirPath, packageName } = args;
39
- const typeName = this.getApiInterfaceName(ctx, {});
40
- const fileName = `${typeName}.kt`;
41
- const filePath = `${dirPath}/${fileName}`;
42
- console.log(` Generating API interface ${typeName} to ${fileName}...`);
43
- const builder = new file_builder_js_1.KotlinFileBuilder(packageName, ctx.config);
44
- builder.append(this.getApiInterfaceFileContent(ctx, { interfaceName: typeName }));
45
- builder.writeToFile(filePath);
46
- return { typeName, packageName };
47
- }
48
- getApiInterfaceFileContent(ctx, args) {
49
- const { interfaceName } = args;
50
- return (0, core_1.appendValueGroup)([this.getApiInterface(ctx, { interfaceName })], '\n');
51
- }
52
- getApiInterface(ctx, args) {
53
- const { interfaceName } = args;
54
- return index_js_1.kt.interface(interfaceName, {
55
- annotations: this.getApiInterfaceAnnotations(ctx),
56
- members: this.getApiInterfaceMembers(ctx),
57
- companionObject: index_js_1.kt.object({
58
- members: ctx.service.endpoints.map((endpoint) => index_js_1.kt.property(this.getPathConstantName(ctx, { endpoint }), {
59
- const: true,
60
- default: index_js_1.kt.string(this.getEndpointPath(ctx, { endpoint })),
61
- })),
62
- }),
63
- });
64
- }
65
- getApiInterfaceAnnotations(ctx) {
66
- const validated = index_js_1.kt.annotation(index_js_1.kt.refs.spring.validated());
67
- const requestMapping = index_js_1.kt.annotation(index_js_1.kt.refs.spring.requestMapping(), [
68
- index_js_1.kt.argument(this.getControllerRequestMapping(ctx, { prefix: 'api' })),
69
- ]);
70
- return [validated, requestMapping];
71
- }
72
- getApiInterfaceMembers(ctx) {
73
- const members = [];
74
- const delegateInterfaceName = this.getApiDelegateInterfaceName(ctx, {});
75
- members.push(index_js_1.kt.function('getDelegate', {
76
- returnType: delegateInterfaceName,
77
- singleExpression: true,
78
- body: index_js_1.kt.object({
79
- implements: [delegateInterfaceName],
80
- }),
81
- }), index_js_1.kt.function('getExceptionHandler', {
82
- returnType: ctx.refs.apiExceptionHandler({ nullable: true }),
83
- singleExpression: true,
84
- body: index_js_1.kt.toNode(null),
85
- }));
86
- ctx.service.endpoints.forEach((endpoint) => {
87
- members.push(this.getApiInterfaceEndpointMethod(ctx, { endpoint }));
88
- });
89
- members.push(...ctx.service.endpoints
90
- .filter((endpoint) => { var _a; return (_a = endpoint.custom[strictResponseCustomProperty]) !== null && _a !== void 0 ? _a : ctx.config.strictResponseEntities; })
91
- .map((endpoint) => this.getApiResponseEntityClass(ctx, { endpoint })));
92
- return members;
93
- }
94
- getApiInterfaceEndpointMethod(ctx, args) {
95
- const { endpoint } = args;
96
- const parameters = this.getAllParameters(ctx, { endpoint });
97
- return index_js_1.kt.function((0, core_1.toCasing)(endpoint.name, ctx.config.functionNameCasing), {
98
- doc: index_js_1.kt.doc(this.getEndpointDocDescription(ctx, { endpoint })),
99
- suspend: ctx.config.suspendingFunctions,
100
- annotations: this.getApiInterfaceEndpointMethodAnnnotations(ctx, endpoint),
101
- parameters: parameters.map((parameter) => this.getApiInterfaceEndpointMethodParameter(ctx, endpoint, parameter)),
102
- returnType: index_js_1.kt.refs.spring.responseEntity(['*']),
103
- body: this.getApiInterfaceEndpointMethodBody(ctx, endpoint, parameters),
104
- });
105
- }
106
- getApiInterfaceEndpointMethodAnnnotations(ctx, endpoint) {
107
- var _a, _b, _c;
108
- const annotations = [];
109
- if (ctx.config.addSwaggerAnnotations) {
110
- annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.swagger.operation(), [
111
- endpoint.summary ? index_js_1.kt.argument.named('summary', index_js_1.kt.string((_a = endpoint.summary) === null || _a === void 0 ? void 0 : _a.trim())) : null,
112
- index_js_1.kt.argument.named('operationId', index_js_1.kt.string(endpoint.name)),
113
- endpoint.description
114
- ? index_js_1.kt.argument.named('description', index_js_1.kt.string((_b = endpoint.description) === null || _b === void 0 ? void 0 : _b.trim()))
115
- : null,
116
- endpoint.deprecated !== undefined ? index_js_1.kt.argument.named('deprecated', index_js_1.kt.toNode(endpoint.deprecated)) : null,
117
- ]));
118
- if (endpoint.responses.length > 0) {
119
- annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.swagger.apiResponses(), [
120
- index_js_1.kt.argument.named('value', index_js_1.kt.collectionLiteral(endpoint.responses.map((response) => {
121
- var _a;
122
- return index_js_1.kt.call(index_js_1.kt.refs.swagger.apiResponse(), [
123
- index_js_1.kt.argument.named('responseCode',
124
- // The spec's own response key, not `statusCode`: that field is `undefined` for
125
- // `default` and every range code, and `kt.string(undefined)` renders the bare token
126
- // `null`, which is not assignable to this non-nullable annotation element.
127
- index_js_1.kt.string(response.statusKey)),
128
- response.description
129
- ? index_js_1.kt.argument.named('description', index_js_1.kt.string((_a = response.description) === null || _a === void 0 ? void 0 : _a.trim()))
130
- : null,
131
- index_js_1.kt.argument.named('content', index_js_1.kt.collectionLiteral((response.contentOptions.length === 0
132
- ? [{ schema: undefined, type: undefined }]
133
- : response.contentOptions).map((content) => {
134
- var _a;
135
- let schemaType = (_a = this.getSchemaType(ctx, {
136
- schema: content.schema,
137
- })) !== null && _a !== void 0 ? _a : index_js_1.kt.refs.any();
138
- let isArray = false;
139
- if (index_js_1.kt.refs.list.matches(schemaType)) {
140
- isArray = true;
141
- schemaType = schemaType.generics[0];
142
- }
143
- let ktSchema = index_js_1.kt.call(index_js_1.kt.refs.swagger.schema(), [
144
- index_js_1.kt.argument.named('implementation', (0, core_1.builderTemplate) `${schemaType}::class`),
145
- ]);
146
- if (isArray) {
147
- ktSchema = index_js_1.kt.call(index_js_1.kt.refs.swagger.arraySchema(), [
148
- index_js_1.kt.argument.named('schema', ktSchema),
149
- ]);
150
- }
151
- return index_js_1.kt.call(index_js_1.kt.refs.swagger.content(), [
152
- content.type
153
- ? index_js_1.kt.argument.named('mediaType', index_js_1.kt.string(content.type))
154
- : null,
155
- content.schema
156
- ? index_js_1.kt.argument.named(isArray ? 'array' : 'schema', ktSchema)
157
- : null,
158
- ]);
159
- }))),
160
- ]);
161
- }))),
162
- ]));
163
- }
164
- }
165
- const requestMapping = index_js_1.kt.annotation(index_js_1.kt.refs.spring.requestMapping(), [
166
- index_js_1.kt.argument.named('method', index_js_1.kt.collectionLiteral([
167
- index_js_1.kt.call([
168
- index_js_1.kt.refs.spring.requestMethod(),
169
- endpoint.method.toUpperCase(),
170
- ]),
171
- ])),
172
- index_js_1.kt.argument.named('value', index_js_1.kt.collectionLiteral([this.getPathConstantName(ctx, { endpoint })])),
173
- ]);
174
- if (endpoint.requestBody && endpoint.requestBody.content.length > 0) {
175
- requestMapping.arguments.push(index_js_1.kt.argument.named('consumes', index_js_1.kt.collectionLiteral((_c = endpoint.requestBody) === null || _c === void 0 ? void 0 : _c.content.map((x) => index_js_1.kt.string(x.type)))));
176
- }
177
- annotations.push(requestMapping);
178
- return annotations;
179
- }
180
- getApiInterfaceEndpointMethodParameter(ctx, endpoint, parameter) {
181
- var _a, _b, _c, _d, _e, _f, _g, _h;
182
- const enumItemSchema = parameter.multipart ? undefined : (0, utils_js_1.getArrayItemStringEnumSchema)(parameter.schema);
183
- const enumSchema = parameter.multipart ? undefined : (0, utils_js_1.getStringEnumSchema)(parameter.schema);
184
- const enumValueSchema = enumSchema !== null && enumSchema !== void 0 ? enumSchema : enumItemSchema;
185
- const actualType = this.getSchemaType(ctx, { schema: parameter.schema });
186
- const isEnumSchema = !!enumValueSchema && !!actualType &&
187
- !!this.getSchemaType(ctx, { schema: enumValueSchema });
188
- const schemaType = !isEnumSchema
189
- ? actualType
190
- : enumItemSchema
191
- ? index_js_1.kt.refs.list([index_js_1.kt.refs.string()], { nullable: actualType === null || actualType === void 0 ? void 0 : actualType.nullable })
192
- : index_js_1.kt.refs.string({ nullable: actualType === null || actualType === void 0 ? void 0 : actualType.nullable });
193
- const result = index_js_1.kt.parameter((0, core_1.toCasing)(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, {
194
- endpoint,
195
- parameter,
196
- type: isEnumSchema ? schemaType : undefined,
197
- }), {
198
- default: parameter.multipart && ((_a = parameter.schema) === null || _a === void 0 ? void 0 : _a.default) !== undefined
199
- ? index_js_1.kt.toNode((_b = parameter.schema) === null || _b === void 0 ? void 0 : _b.default)
200
- : null,
201
- });
202
- if (ctx.config.addSwaggerAnnotations) {
203
- const annotation = index_js_1.kt.annotation(index_js_1.kt.refs.swagger.parameter(), [
204
- parameter.multipart ? index_js_1.kt.argument.named('name', index_js_1.kt.string(parameter.multipart.name)) : null,
205
- parameter.description
206
- ? index_js_1.kt.argument.named('description', index_js_1.kt.string((_c = parameter.description) === null || _c === void 0 ? void 0 : _c.trim()))
207
- : null,
208
- index_js_1.kt.argument.named('required', parameter.required),
209
- // Only emitted when set, matching how the model generator marks a deprecated property on `@Schema`.
210
- // `@Operation` always states `deprecated`, but doing that for every parameter of every endpoint
211
- // would add `deprecated = false` noise far beyond what the annotation is documenting.
212
- parameter.deprecated ? index_js_1.kt.argument.named('deprecated', index_js_1.kt.toNode(true)) : null,
213
- parameter.target === 'header' ? index_js_1.kt.argument.named('hidden', index_js_1.kt.toNode(true)) : null,
214
- ]);
215
- const schemaArgs = [];
216
- if (((_d = parameter.schema) === null || _d === void 0 ? void 0 : _d.default) !== undefined) {
217
- schemaArgs.push(index_js_1.kt.argument.named('defaultValue', index_js_1.kt.string(String((_e = parameter.schema) === null || _e === void 0 ? void 0 : _e.default))));
218
- }
219
- if (isEnumSchema) {
220
- schemaArgs.push(index_js_1.kt.argument.named('allowableValues', index_js_1.kt.collectionLiteral((_f = enumValueSchema === null || enumValueSchema === void 0 ? void 0 : enumValueSchema.enum) === null || _f === void 0 ? void 0 : _f.map((x) => index_js_1.kt.string(x === null || x === void 0 ? void 0 : x.toString())))));
221
- }
222
- if (schemaArgs.length) {
223
- annotation.arguments.push(index_js_1.kt.argument.named('schema', index_js_1.kt.call([index_js_1.kt.refs.swagger.schema()], schemaArgs)));
224
- }
225
- result.annotations.push(annotation);
226
- }
227
- const isCorePackage = !(schemaType === null || schemaType === void 0 ? void 0 : schemaType.packageName) ||
228
- /^(kotlin|java)(\..*|$)/.test(schemaType.packageName);
229
- if (!isCorePackage && ctx.config.addJakartaValidationAnnotations) {
230
- result.annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.jakarta.valid()));
231
- }
232
- if (parameter.target === 'body' && !parameter.multipart) {
233
- // A bare @RequestBody is required as far as Spring is concerned, so an optional body has to say so in the
234
- // annotation too - the nullable parameter type alone still answers 400 when the body is missing.
235
- result.annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.spring.requestBody(), parameter.required ? [] : [index_js_1.kt.argument.named('required', parameter.required)]));
236
- }
237
- if (parameter.target === 'query') {
238
- const annotation = index_js_1.kt.annotation(index_js_1.kt.refs.spring.requestParam(), [
239
- index_js_1.kt.argument.named('value', index_js_1.kt.string(parameter.name)),
240
- index_js_1.kt.argument.named('required', parameter.required),
241
- ]);
242
- if (((_g = parameter.schema) === null || _g === void 0 ? void 0 : _g.default) !== undefined) {
243
- annotation.arguments.push(index_js_1.kt.argument.named('defaultValue', index_js_1.kt.string(String((_h = parameter.schema) === null || _h === void 0 ? void 0 : _h.default))));
244
- }
245
- result.annotations.push(annotation);
246
- }
247
- if (parameter.target === 'path') {
248
- result.annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.spring.pathVariable(), [
249
- index_js_1.kt.string(parameter.name),
250
- ]));
251
- }
252
- if (parameter.target === 'header') {
253
- result.annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.spring.requestHeader(), [
254
- index_js_1.kt.string(parameter.name),
255
- ]));
256
- }
257
- if (parameter.multipart) {
258
- result.annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.spring.requestPart(), [
259
- index_js_1.kt.argument.named('value', index_js_1.kt.string(parameter.multipart.name)),
260
- index_js_1.kt.argument.named('required', parameter.required),
261
- ]));
262
- }
263
- return result;
264
- }
265
- getApiInterfaceEndpointMethodBody(ctx, endpoint, parameters) {
266
- const body = (0, core_1.appendValueGroup)([], '\n');
267
- parameters.forEach((x) => {
268
- var _a, _b;
269
- const paramName = (0, core_1.toCasing)(x.name, ctx.config.parameterNameCasing);
270
- if (x.multipart)
271
- return;
272
- const enumItemSchema = (0, utils_js_1.getArrayItemStringEnumSchema)(x.schema);
273
- const enumValueSchema = (_a = (0, utils_js_1.getStringEnumSchema)(x.schema)) !== null && _a !== void 0 ? _a : enumItemSchema;
274
- if (!enumValueSchema)
275
- return;
276
- const schemaType = this.getSchemaType(ctx, { schema: x.schema });
277
- const enumType = this.getSchemaType(ctx, { schema: enumValueSchema });
278
- if (schemaType && enumType) {
279
- body.values.push((0, core_1.builderTemplate) `val ${paramName} = ${paramName}${schemaType.nullable || (!x.required && !((_b = x.schema) === null || _b === void 0 ? void 0 : _b.default)) ? '?' : ''}.${enumItemSchema ? 'map' : 'let'} { ${enumType}.fromValue(it) ?: return ${index_js_1.kt.refs.spring.responseEntity.infer()}.status(${index_js_1.kt.refs.spring.httpStatus()}.BAD_REQUEST).body(${index_js_1.kt.string(`Invalid value for parameter ${x.name}`)}) }`);
280
- }
281
- });
282
- body.values.push((0, core_1.builderTemplate) `try {${core_1.builderTemplate.indent `
283
- return ${index_js_1.kt.call([
284
- index_js_1.kt.call(index_js_1.kt.reference('getDelegate'), []),
285
- (0, core_1.toCasing)(endpoint.name, ctx.config.functionNameCasing),
286
- ], parameters.map((x) => (0, core_1.toCasing)(x.name, ctx.config.parameterNameCasing)))}`}
287
- } catch (e: ${index_js_1.kt.refs.throwable()}) {${core_1.builderTemplate.indent `
288
- return getExceptionHandler()?.handleApiException(e) ?: throw e`}
289
- }`);
290
- return body;
291
- }
292
- getApiResponseEntityClass(ctx, args) {
293
- const { endpoint } = args;
294
- const name = this.getApiResponseEntityName(ctx, { endpoint });
295
- // Spring 7's `ResponseEntity<T>` carries an `Any` upper bound (JSpecify), so the subclass must bound `T`.
296
- // The body parameter is then made nullable (`T?`) to keep null-body ("no response body") responses legal
297
- // while staying wire-identical, since Spring's super constructor accepts a `@Nullable T body`.
298
- const springBoot4 = ctx.config.springBootVersion === 4;
299
- return index_js_1.kt.class(name, {
300
- doc: index_js_1.kt.doc(`Response entity for ${endpoint.name}.`),
301
- generics: [index_js_1.kt.genericParameter('T', springBoot4 ? { constraint: index_js_1.kt.refs.any() } : undefined)],
302
- primaryConstructor: index_js_1.kt.constructor([
303
- index_js_1.kt.parameter.class('body', index_js_1.kt.reference('T', null, springBoot4 ? { nullable: true } : undefined)),
304
- index_js_1.kt.parameter.class('rawStatus', index_js_1.kt.refs.int()),
305
- index_js_1.kt.parameter.class('headers', index_js_1.kt.refs.spring.multiValueMap([index_js_1.kt.refs.string(), index_js_1.kt.refs.string()], {
306
- nullable: true,
307
- }), { default: index_js_1.kt.toNode(null) }),
308
- ], null, {
309
- accessModifier: endpoint.responses.length > 0 ? 'private' : null,
310
- delegateTarget: 'super',
311
- delegateArguments: [
312
- index_js_1.kt.argument('body'),
313
- index_js_1.kt.argument('headers'),
314
- index_js_1.kt.argument('rawStatus'),
315
- ],
316
- }),
317
- extends: index_js_1.kt.refs.spring.responseEntity([index_js_1.kt.reference('T')]),
318
- companionObject: index_js_1.kt.object({
319
- members: Array.from(new Set([
320
- ...ctx.config.defaultStatusCodes,
321
- 501,
322
- ...endpoint.responses.map((x) => x.statusCode),
323
- ].filter(core_1.notNullish))).map((code) => {
324
- var _a;
325
- const fnName = (0, core_1.toCasing)((0, http_status_codes_1.getReasonPhrase)(code), ctx.config.functionNameCasing);
326
- const response = endpoint.responses.find((x) => x.statusCode === code);
327
- const responseType = response ? this.getResponseType(ctx, { endpoint, response }) : undefined;
328
- const contentType = (_a = response === null || response === void 0 ? void 0 : response.contentOptions.find((x) => x.schema)) === null || _a === void 0 ? void 0 : _a.type;
329
- const hasResponseBody = responseType && !index_js_1.kt.refs.unit.matches(responseType);
330
- return index_js_1.kt.function(fnName, {
331
- parameters: [
332
- hasResponseBody ? index_js_1.kt.parameter.class('body', responseType) : null,
333
- index_js_1.kt.parameter.class('headers', index_js_1.kt.refs.spring.multiValueMap([index_js_1.kt.refs.string(), index_js_1.kt.refs.string()], { nullable: true }), { default: index_js_1.kt.toNode(null) }),
334
- ],
335
- singleExpression: true,
336
- body: index_js_1.kt.call([
337
- index_js_1.kt.reference(this.getApiResponseEntityName(ctx, { endpoint }), null, {
338
- generics: [
339
- hasResponseBody
340
- ? responseType
341
- // `Unit?` violates the `T : Any` bound under Spring Boot 4; the `null` body argument
342
- // below stays (now legal because the subclass body parameter is nullable).
343
- : (springBoot4 ? index_js_1.kt.refs.unit() : index_js_1.kt.refs.unit({ nullable: true })),
344
- ],
345
- }),
346
- ], [
347
- hasResponseBody ? index_js_1.kt.argument('body') : index_js_1.kt.toNode(null),
348
- index_js_1.kt.toNode(code),
349
- contentType
350
- ? (0, core_1.builderTemplate) `${index_js_1.kt.refs.spring.linkedMultiValueMap([index_js_1.kt.refs.string(), index_js_1.kt.refs.string()])}().also {
351
- if (headers != null) {
352
- it.putAll(headers)
353
- }
354
- it.addIfAbsent("Content-Type", ${index_js_1.kt.string(contentType)})
355
- }`
356
- : index_js_1.kt.argument('headers'),
357
- ]),
358
- });
359
- }),
360
- }),
361
- });
362
- }
363
- // #endregion
364
- // #region API Controller
365
- generateApiControllerFile(ctx, args) {
366
- const { dirPath, packageName } = args;
367
- const typeName = this.getApiControllerName(ctx, {});
368
- const fileName = `${typeName}.kt`;
369
- const filePath = `${dirPath}/${fileName}`;
370
- console.log(` Generating API controller ${typeName} to ${fileName}...`);
371
- const builder = new file_builder_js_1.KotlinFileBuilder(packageName, ctx.config);
372
- builder.append(this.getApiControllerFileContent(ctx, { controllerName: typeName }));
373
- builder.writeToFile(filePath);
374
- return { typeName, packageName };
375
- }
376
- getApiControllerFileContent(ctx, args) {
377
- const { controllerName } = args;
378
- return (0, core_1.appendValueGroup)([this.getApiController(ctx, { controllerName })], '\n');
379
- }
380
- getApiController(ctx, args) {
381
- const { controllerName } = args;
382
- return index_js_1.kt.class(controllerName, {
383
- annotations: this.getApiControllerAnnotations(ctx),
384
- primaryConstructor: index_js_1.kt.constructor([
385
- index_js_1.kt.parameter.class('delegate', index_js_1.kt.reference(this.getApiDelegateInterfaceName(ctx, {}), null, {
386
- nullable: true,
387
- }), {
388
- annotations: [
389
- index_js_1.kt.annotation(index_js_1.kt.refs.spring.autowired(), [
390
- index_js_1.kt.argument.named('required', 'false'),
391
- ]),
392
- ],
393
- }),
394
- index_js_1.kt.parameter.class('exceptionHandler', ctx.refs.apiExceptionHandler({ nullable: true }), {
395
- annotations: [
396
- index_js_1.kt.annotation(index_js_1.kt.refs.spring.autowired(), [
397
- index_js_1.kt.argument.named('required', 'false'),
398
- ]),
399
- ],
400
- accessModifier: 'private',
401
- property: 'readonly',
402
- }),
403
- ]),
404
- implements: [this.getApiInterfaceName(ctx, {})],
405
- members: this.getApiControllerMembers(ctx),
406
- });
407
- }
408
- getApiControllerAnnotations(ctx) {
409
- const annotations = [];
410
- if (ctx.config.addJakartaValidationAnnotations) {
411
- annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.jakarta.generated(), [
412
- index_js_1.kt.argument.named('value', index_js_1.kt.collectionLiteral([
413
- index_js_1.kt.string('com.goast.kotlin.spring-service-generator'),
414
- ])),
415
- ]));
416
- }
417
- annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.spring.controller()));
418
- annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.spring.requestMapping(), [
419
- this.getControllerRequestMapping(ctx, {}),
420
- ]));
421
- return annotations;
422
- }
423
- getApiControllerMembers(ctx) {
424
- const delegateInterfaceName = this.getApiDelegateInterfaceName(ctx, {});
425
- const delegateProp = index_js_1.kt.property('delegate', {
426
- accessModifier: 'private',
427
- default: (0, core_1.builderTemplate) `delegate ?: ${index_js_1.kt.object({ implements: [delegateInterfaceName] })}`,
428
- });
429
- const getDelegateFun = index_js_1.kt.function('getDelegate', {
430
- override: true,
431
- returnType: delegateInterfaceName,
432
- singleExpression: true,
433
- body: index_js_1.kt.reference('delegate'),
434
- });
435
- const getExceptionHandlerFun = index_js_1.kt.function('getExceptionHandler', {
436
- override: true,
437
- returnType: ctx.refs.apiExceptionHandler({ nullable: true }),
438
- singleExpression: true,
439
- body: index_js_1.kt.reference('exceptionHandler'),
440
- });
441
- return [delegateProp, getDelegateFun, getExceptionHandlerFun];
442
- }
443
- // #endregion
444
- // #region API Delegate Interface
445
- generateApiDelegateInterfaceFile(ctx, args) {
446
- const { dirPath, packageName } = args;
447
- const typeName = this.getApiDelegateInterfaceName(ctx, {});
448
- const fileName = `${typeName}.kt`;
449
- const filePath = `${dirPath}/${fileName}`;
450
- console.log(` Generating API delegate ${typeName} to ${fileName}...`);
451
- const builder = new file_builder_js_1.KotlinFileBuilder(packageName, ctx.config);
452
- builder.append(this.getApiDelegateInterfaceFileContent(ctx, {
453
- delegateInterfaceName: typeName,
454
- }));
455
- builder.writeToFile(filePath);
456
- return { typeName, packageName };
457
- }
458
- getApiDelegateInterfaceFileContent(ctx, args) {
459
- const { delegateInterfaceName } = args;
460
- return (0, core_1.appendValueGroup)([this.getApiDelegateInterface(ctx, { delegateInterfaceName })], '\n');
461
- }
462
- getApiDelegateInterface(ctx, args) {
463
- const { delegateInterfaceName } = args;
464
- return index_js_1.kt.interface(delegateInterfaceName, {
465
- annotations: this.getApiDelegateInterfaceAnnotations(ctx),
466
- members: this.getApiDelegateInterfaceMembers(ctx),
467
- });
468
- }
469
- getApiDelegateInterfaceAnnotations(ctx) {
470
- const annotations = [];
471
- if (ctx.config.addJakartaValidationAnnotations) {
472
- annotations.push(index_js_1.kt.annotation(index_js_1.kt.refs.jakarta.generated(), [
473
- index_js_1.kt.argument.named('value', index_js_1.kt.collectionLiteral([
474
- index_js_1.kt.string('com.goast.kotlin.spring-service-generator'),
475
- ])),
476
- ]));
477
- }
478
- return annotations;
479
- }
480
- getApiDelegateInterfaceMembers(ctx) {
481
- const members = [];
482
- members.push(index_js_1.kt.function('getRequest', {
483
- returnType: index_js_1.kt.refs.java.optional([index_js_1.kt.refs.spring.nativeWebRequest()]),
484
- singleExpression: true,
485
- body: index_js_1.kt.call([index_js_1.kt.refs.java.optional.infer(), 'empty'], []),
486
- }));
487
- ctx.service.endpoints.forEach((endpoint) => {
488
- members.push(this.getApiDelegateInterfaceEndpointMethod(ctx, { endpoint }));
489
- });
490
- return members;
491
- }
492
- getApiDelegateInterfaceEndpointMethod(ctx, args) {
493
- var _a;
494
- const { endpoint } = args;
495
- const parameters = this.getAllParameters(ctx, { endpoint });
496
- const fn = index_js_1.kt.function((0, core_1.toCasing)(endpoint.name, ctx.config.functionNameCasing), {
497
- doc: index_js_1.kt.doc(this.getEndpointDocDescription(ctx, { endpoint })),
498
- suspend: ctx.config.suspendingFunctions,
499
- parameters: parameters.map((parameter) => {
500
- return index_js_1.kt.parameter((0, core_1.toCasing)(parameter.name, ctx.config.parameterNameCasing), this.getParameterType(ctx, { endpoint, parameter }));
501
- }),
502
- });
503
- if ((_a = endpoint.custom[strictResponseCustomProperty]) !== null && _a !== void 0 ? _a : ctx.config.strictResponseEntities) {
504
- const responseEntity = index_js_1.kt.reference.genericFactory(this.getApiResponseEntityName(ctx, { endpoint }), `${this.getPackageName(ctx, {})}.${this.getApiInterfaceName(ctx, {})}`);
505
- fn.returnType = responseEntity(['*']);
506
- fn.body = (0, core_1.appendValueGroup)([
507
- (0, core_1.builderTemplate) `return ${index_js_1.kt.call([
508
- responseEntity.infer(),
509
- (0, core_1.toCasing)((0, http_status_codes_1.getReasonPhrase)(501), ctx.config.functionNameCasing),
510
- ], [])}`,
511
- ], '\n');
512
- }
513
- else {
514
- fn.returnType = index_js_1.kt.refs.spring.responseEntity([
515
- this.getResponseType(ctx, { endpoint }),
516
- ]);
517
- fn.body = (0, core_1.appendValueGroup)([
518
- (0, core_1.builderTemplate) `return ${index_js_1.kt.refs.spring.responseEntity.infer()}(${index_js_1.kt.refs.spring.httpStatus()}.NOT_IMPLEMENTED)`,
519
- ], '\n');
520
- }
521
- return fn;
522
- }
523
- // #endregion
524
- getParameterType(ctx, args) {
525
- var _a, _b;
526
- const { parameter } = args;
527
- if ((_a = parameter.multipart) === null || _a === void 0 ? void 0 : _a.isFile) {
528
- return index_js_1.kt.refs.spring.filePart();
529
- }
530
- const type = this.getTypeUsage(ctx, {
531
- schema: parameter.schema,
532
- nullable: (!parameter.required && ((_b = parameter.schema) === null || _b === void 0 ? void 0 : _b.default) === undefined) ||
533
- undefined,
534
- type: args.type,
535
- });
536
- return parameter.target === 'body' ? adjustListType(ctx, type) : type;
537
- }
538
- getResponseType(ctx, args) {
539
- const { endpoint, response } = args;
540
- const responseSchemas = (response ? [response] : endpoint.responses)
541
- .flatMap((x) => x.contentOptions.flatMap((x) => x.schema))
542
- .filter(core_1.notNullish)
543
- .filter((x, i, a) => a.findIndex((y) => {
544
- const xType = this.getSchemaType(ctx, { schema: x });
545
- const yType = this.getSchemaType(ctx, { schema: y });
546
- return ((xType === null || xType === void 0 ? void 0 : xType.name) === (yType === null || yType === void 0 ? void 0 : yType.name) &&
547
- (xType === null || xType === void 0 ? void 0 : xType.packageName) === (yType === null || yType === void 0 ? void 0 : yType.packageName));
548
- }) === i);
549
- if (responseSchemas.length === 1) {
550
- return adjustListType(ctx, this.getTypeUsage(ctx, {
551
- schema: responseSchemas[0],
552
- fallback: index_js_1.kt.refs.unit(),
553
- }));
554
- }
555
- else if (responseSchemas.length === 0) {
556
- return index_js_1.kt.refs.unit();
557
- }
558
- else {
559
- // Under Spring Boot 4, this type flows into `ResponseEntity<T : Any>` (e.g. the delegate default methods),
560
- // so the ambiguous/unknown-body fallback must be non-null `Any` rather than `Any?`.
561
- return ctx.config.springBootVersion === 4 ? index_js_1.kt.refs.any() : index_js_1.kt.refs.any({ nullable: true });
562
- }
563
- }
564
- getTypeUsage(ctx, args) {
565
- var _a;
566
- const { schema, nullable, fallback } = args;
567
- const type = (_a = args.type) !== null && _a !== void 0 ? _a : this.getSchemaType(ctx, { schema });
568
- return type
569
- ? (0, core_1.createOverwriteProxy)(type, { nullable: nullable !== null && nullable !== void 0 ? nullable : type.nullable })
570
- : (fallback !== null && fallback !== void 0 ? fallback : index_js_1.kt.refs.any({ nullable }));
571
- }
572
- getSchemaType(ctx, args) {
573
- const { schema } = args;
574
- return schema && ctx.input.kotlin.models[schema.id].type;
575
- }
576
- getEndpointDocDescription(ctx, args) {
577
- var _a;
578
- const docSegments = [(_a = args.endpoint.description) === null || _a === void 0 ? void 0 : _a.trim()];
579
- if (ctx.config.includeSourceInDocs) {
580
- docSegments.push((0, utils_js_1.getSourceDocLine)(args.endpoint));
581
- }
582
- return docSegments.filter(core_1.notNullish).join('\n\n');
583
- }
584
- getControllerRequestMapping(ctx, args) {
585
- let { prefix } = args;
586
- const basePath = this.getBasePath(ctx, {});
587
- prefix !== null && prefix !== void 0 ? prefix : (prefix = `openapi.${(0, core_1.toCasing)(ctx.service.name, ctx.config.propertyNameCasing)}`);
588
- return index_js_1.kt.string(`\${${prefix}.base-path:${basePath}}`);
589
- }
590
- getBasePath(ctx, _args) {
591
- var _a, _b, _c, _d, _e, _f;
592
- return (0, utils_js_1.modifyString)((_f = (_e = (_d = (_c = ((_a = ctx.service.$src) !== null && _a !== void 0 ? _a : (_b = ctx.service.endpoints[0]) === null || _b === void 0 ? void 0 : _b.$src)) === null || _c === void 0 ? void 0 : _c.document.servers) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.url) !== null && _f !== void 0 ? _f : '/', ctx.config.basePath, ctx.service);
593
- }
594
- getEndpointPath(ctx, args) {
595
- const { endpoint } = args;
596
- return (0, utils_js_1.modifyString)(endpoint.path, ctx.config.pathModifier, endpoint);
597
- }
598
- getDirectoryPath(ctx, args) {
599
- const { packageName } = args;
600
- return `${ctx.config.outputDir}/${packageName.replace(/\./g, '/')}`;
601
- }
602
- getPathConstantName(ctx, args) {
603
- const { endpoint } = args;
604
- return (0, core_1.toCasing)(`${endpoint.name}_path`, ctx.config.constantNameCasing);
605
- }
606
- getPackageName(ctx, _args) {
607
- const packageSuffix = typeof ctx.config.packageSuffix === 'string'
608
- ? ctx.config.packageSuffix
609
- : ctx.config.packageSuffix(ctx.service);
610
- return ctx.config.packageName + packageSuffix;
611
- }
612
- getApiResponseEntityName(ctx, args) {
613
- const { endpoint } = args;
614
- return (0, core_1.toCasing)(`${endpoint.name}_ResponseEntity`, ctx.config.typeNameCasing);
615
- }
616
- getApiInterfaceName(ctx, _args) {
617
- return (0, core_1.toCasing)(ctx.service.name + '_Api', ctx.config.typeNameCasing);
618
- }
619
- getApiControllerName(ctx, _args) {
620
- return (0, core_1.toCasing)(ctx.service.name + '_ApiController', ctx.config.typeNameCasing);
621
- }
622
- getApiDelegateInterfaceName(ctx, _args) {
623
- return (0, core_1.toCasing)(ctx.service.name + '_ApiDelegate', ctx.config.typeNameCasing);
624
- }
625
- getAllParameters(ctx, args) {
626
- var _a, _b;
627
- const { endpoint } = args;
628
- const parameters = endpoint.parameters.filter((parameter) => parameter.target === 'query' ||
629
- parameter.target === 'path' ||
630
- parameter.target === 'header');
631
- if (endpoint.requestBody) {
632
- const content = endpoint.requestBody.content[0];
633
- let schema = content.schema;
634
- if (content.type === 'multipart/form-data') {
635
- if (schema && schema.kind === 'object') {
636
- schema = (_a = (0, core_1.resolveAnyOfAndAllOf)(schema, true)) !== null && _a !== void 0 ? _a : schema;
637
- const properties = (_b = schema.properties) !== null && _b !== void 0 ? _b : {};
638
- for (const [name, property] of properties.entries()) {
639
- parameters.push(Object.assign(this.createApiParameter({
640
- id: `multipart-${name}`,
641
- name,
642
- target: 'body',
643
- schema: property.schema,
644
- required: schema.required.has(name),
645
- description: property.schema.description,
646
- }), {
647
- multipart: {
648
- name,
649
- isFile: property.schema.kind === 'string' &&
650
- property.schema.format === 'binary',
651
- },
652
- }));
653
- }
654
- }
655
- }
656
- else {
657
- const schemaType = this.getSchemaType(ctx, { schema });
658
- const name = !schemaType || /^Any\??$/.test(schemaType.name)
659
- ? 'body'
660
- : core_1.SourceBuilder.build((b) => index_js_1.kt.reference.write(b, schemaType));
661
- parameters.push(this.createApiParameter({
662
- id: 'body',
663
- name,
664
- target: 'body',
665
- schema,
666
- required: endpoint.requestBody.required,
667
- description: endpoint.requestBody.description,
668
- }));
669
- }
670
- }
671
- return parameters;
672
- }
673
- createApiParameter(data) {
674
- return {
675
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
676
- $src: undefined,
677
- $ref: undefined,
678
- schema: undefined,
679
- required: false,
680
- description: undefined,
681
- allowEmptyValue: undefined,
682
- allowReserved: undefined,
683
- deprecated: false,
684
- explode: undefined,
685
- style: undefined,
686
- ...data,
687
- };
688
- }
689
- }
690
- exports.DefaultKotlinSpringControllerGenerator = DefaultKotlinSpringControllerGenerator;
691
- function adjustListType(ctx, type) {
692
- if (!index_js_1.kt.refs.list.matches(type))
693
- return type;
694
- switch (ctx.config.arrayType) {
695
- case 'flux':
696
- return index_js_1.kt.refs.reactor.flux([type.generics[0]]);
697
- default:
698
- return type;
699
- }
700
- }