@goast/typescript 0.8.0 → 0.9.0-beta.2

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 (617) hide show
  1. package/README.md +0 -1
  2. package/dist/mod.d.ts +7 -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 +38 -39
  6. package/{esm → dist}/src/ast/_index.js +2 -0
  7. package/dist/src/ast/index.d.ts +1 -0
  8. package/{esm → dist}/src/ast/node.d.ts +0 -1
  9. package/{esm → dist}/src/ast/nodes/argument.d.ts +4 -5
  10. package/{esm → dist}/src/ast/nodes/argument.js +1 -6
  11. package/{script → dist}/src/ast/nodes/array-type.d.ts +4 -5
  12. package/{esm → dist}/src/ast/nodes/array-type.js +3 -14
  13. package/{esm → dist}/src/ast/nodes/arrow-function.d.ts +5 -6
  14. package/dist/src/ast/nodes/arrow-function.js +52 -0
  15. package/{esm → dist}/src/ast/nodes/call.d.ts +5 -6
  16. package/{esm → dist}/src/ast/nodes/call.js +3 -14
  17. package/{esm → dist}/src/ast/nodes/class.d.ts +11 -12
  18. package/dist/src/ast/nodes/class.js +74 -0
  19. package/{script → dist}/src/ast/nodes/constructor-parameter.d.ts +4 -5
  20. package/{esm → dist}/src/ast/nodes/constructor-parameter.js +5 -17
  21. package/{esm → dist}/src/ast/nodes/constructor.d.ts +5 -6
  22. package/dist/src/ast/nodes/constructor.js +40 -0
  23. package/{esm → dist}/src/ast/nodes/decorator.d.ts +5 -6
  24. package/{esm → dist}/src/ast/nodes/decorator.js +4 -15
  25. package/{esm → dist}/src/ast/nodes/doc-tag.d.ts +3 -4
  26. package/{esm → dist}/src/ast/nodes/doc-tag.js +5 -22
  27. package/{script → dist}/src/ast/nodes/doc.d.ts +5 -6
  28. package/{esm → dist}/src/ast/nodes/doc.js +11 -19
  29. package/{script → dist}/src/ast/nodes/enum-value.d.ts +4 -5
  30. package/{esm → dist}/src/ast/nodes/enum-value.js +6 -23
  31. package/{script → dist}/src/ast/nodes/enum.d.ts +5 -6
  32. package/dist/src/ast/nodes/enum.js +45 -0
  33. package/{esm → dist}/src/ast/nodes/export.d.ts +4 -5
  34. package/{esm → dist}/src/ast/nodes/export.js +4 -20
  35. package/{script → dist}/src/ast/nodes/function-type.d.ts +5 -6
  36. package/dist/src/ast/nodes/function-type.js +32 -0
  37. package/{esm → dist}/src/ast/nodes/function.d.ts +8 -9
  38. package/dist/src/ast/nodes/function.js +63 -0
  39. package/{esm → dist}/src/ast/nodes/generic-parameter.d.ts +4 -5
  40. package/dist/src/ast/nodes/generic-parameter.js +40 -0
  41. package/{esm → dist}/src/ast/nodes/indexer.d.ts +4 -5
  42. package/dist/src/ast/nodes/indexer.js +31 -0
  43. package/{script → dist}/src/ast/nodes/interface.d.ts +10 -11
  44. package/{esm → dist}/src/ast/nodes/interface.js +13 -49
  45. package/{script → dist}/src/ast/nodes/intersection-type.d.ts +4 -5
  46. package/{esm → dist}/src/ast/nodes/intersection-type.js +1 -6
  47. package/{esm → dist}/src/ast/nodes/lookup-type.d.ts +4 -5
  48. package/{esm → dist}/src/ast/nodes/lookup-type.js +2 -12
  49. package/{script → dist}/src/ast/nodes/method.d.ts +9 -10
  50. package/dist/src/ast/nodes/method.js +92 -0
  51. package/{script → dist}/src/ast/nodes/object-type.d.ts +5 -6
  52. package/{esm → dist}/src/ast/nodes/object-type.js +3 -9
  53. package/{esm → dist}/src/ast/nodes/object.d.ts +4 -5
  54. package/{esm → dist}/src/ast/nodes/object.js +3 -9
  55. package/{script → dist}/src/ast/nodes/parameter.d.ts +5 -6
  56. package/dist/src/ast/nodes/parameter.js +46 -0
  57. package/{esm → dist}/src/ast/nodes/property-accessor.d.ts +6 -7
  58. package/dist/src/ast/nodes/property-accessor.js +124 -0
  59. package/{script → dist}/src/ast/nodes/property.d.ts +8 -9
  60. package/dist/src/ast/nodes/property.js +121 -0
  61. package/{esm → dist}/src/ast/nodes/reference.d.ts +5 -6
  62. package/{esm → dist}/src/ast/nodes/reference.js +17 -44
  63. package/{script → dist}/src/ast/nodes/string.d.ts +3 -4
  64. package/{esm → dist}/src/ast/nodes/string.js +3 -14
  65. package/{script → dist}/src/ast/nodes/tuple.d.ts +4 -5
  66. package/{esm → dist}/src/ast/nodes/tuple.js +3 -14
  67. package/{esm → dist}/src/ast/nodes/type-alias.d.ts +6 -7
  68. package/dist/src/ast/nodes/type-alias.js +38 -0
  69. package/{esm → dist}/src/ast/nodes/typeof.d.ts +4 -5
  70. package/{esm → dist}/src/ast/nodes/typeof.js +1 -6
  71. package/dist/src/ast/nodes/types.d.ts +18 -0
  72. package/{esm → dist}/src/ast/nodes/union-type.d.ts +4 -5
  73. package/{esm → dist}/src/ast/nodes/union-type.js +1 -6
  74. package/{script → dist}/src/ast/nodes/variable.d.ts +5 -6
  75. package/dist/src/ast/nodes/variable.js +41 -0
  76. package/{script → dist}/src/ast/references/angular.d.ts +1 -2
  77. package/{esm → dist}/src/ast/references/easy-network-stub.d.ts +1 -2
  78. package/dist/src/ast/references/index.d.ts +5 -0
  79. package/{esm → dist}/src/ast/references/k6.d.ts +1 -2
  80. package/{esm → dist}/src/ast/references/rxjs.d.ts +1 -2
  81. package/{esm → dist}/src/ast/references/typescript.d.ts +1 -2
  82. package/{esm → dist}/src/ast/utils/get-type-script-builder-options.d.ts +1 -2
  83. package/{esm → dist}/src/ast/utils/to-ts-node.d.ts +3 -4
  84. package/{esm → dist}/src/ast/utils/write-ts-generic-parameters.d.ts +1 -2
  85. package/{esm → dist}/src/ast/utils/write-ts-members.d.ts +1 -2
  86. package/{esm → dist}/src/ast/utils/write-ts-members.js +1 -1
  87. package/{esm → dist}/src/ast/utils/write-ts-nodes.d.ts +1 -2
  88. package/{esm → dist}/src/ast/utils/write-ts-nodes.js +1 -1
  89. package/{esm → dist}/src/ast/utils/write-ts-parameters.d.ts +1 -2
  90. package/{script → dist}/src/common-results.d.ts +1 -2
  91. package/{script → dist}/src/config.d.ts +1 -2
  92. package/{script → dist}/src/file-builder.d.ts +4 -5
  93. package/{esm → dist}/src/file-builder.js +5 -16
  94. package/{script → dist}/src/generators/file-generator.d.ts +2 -3
  95. package/dist/src/generators/index.d.ts +6 -0
  96. package/dist/src/generators/models/index.d.ts +3 -0
  97. package/{esm → dist}/src/generators/models/model-generator.d.ts +5 -6
  98. package/{esm → dist}/src/generators/models/model-generator.js +14 -22
  99. package/{esm → dist}/src/generators/models/models-generator.d.ts +3 -4
  100. package/{esm → dist}/src/generators/models/models-generator.js +3 -9
  101. package/{script → dist}/src/generators/models/models.d.ts +4 -5
  102. package/{script → dist}/src/generators/services/angular-services/angular-service-generator.d.ts +5 -6
  103. package/{esm → dist}/src/generators/services/angular-services/angular-service-generator.js +34 -46
  104. package/{script → dist}/src/generators/services/angular-services/angular-services-generator.d.ts +3 -4
  105. package/{esm → dist}/src/generators/services/angular-services/angular-services-generator.js +8 -16
  106. package/dist/src/generators/services/angular-services/index.d.ts +3 -0
  107. package/{esm → dist}/src/generators/services/angular-services/models.d.ts +6 -7
  108. package/{esm → dist}/src/generators/services/angular-services/models.js +3 -62
  109. package/{esm → dist}/src/generators/services/angular-services/refs.d.ts +2 -3
  110. package/{esm → dist}/src/generators/services/angular-services/refs.js +2 -3
  111. package/{esm → dist}/src/generators/services/easy-network-stub/easy-network-stub-generator.d.ts +4 -5
  112. package/{esm → dist}/src/generators/services/easy-network-stub/easy-network-stub-generator.js +7 -11
  113. package/{script → dist}/src/generators/services/easy-network-stub/easy-network-stubs-generator.d.ts +5 -6
  114. package/{esm → dist}/src/generators/services/easy-network-stub/easy-network-stubs-generator.js +3 -9
  115. package/dist/src/generators/services/easy-network-stub/index.d.ts +3 -0
  116. package/{script → dist}/src/generators/services/easy-network-stub/models.d.ts +6 -7
  117. package/{esm → dist}/src/generators/services/easy-network-stub/refs.d.ts +2 -3
  118. package/{script → dist}/src/generators/services/fetch-clients/fetch-client-generator.d.ts +4 -5
  119. package/{esm → dist}/src/generators/services/fetch-clients/fetch-client-generator.js +18 -21
  120. package/{esm → dist}/src/generators/services/fetch-clients/fetch-clients-generator.d.ts +3 -4
  121. package/{esm → dist}/src/generators/services/fetch-clients/fetch-clients-generator.js +3 -7
  122. package/dist/src/generators/services/fetch-clients/index.d.ts +3 -0
  123. package/{script → dist}/src/generators/services/fetch-clients/models.d.ts +4 -5
  124. package/{esm → dist}/src/generators/services/fetch-clients/refs.d.ts +2 -3
  125. package/dist/src/generators/services/k6-clients/index.d.ts +3 -0
  126. package/{script → dist}/src/generators/services/k6-clients/k6-client-generator.d.ts +6 -7
  127. package/{esm → dist}/src/generators/services/k6-clients/k6-client-generator.js +61 -76
  128. package/{script → dist}/src/generators/services/k6-clients/k6-clients-generator.d.ts +3 -4
  129. package/{esm → dist}/src/generators/services/k6-clients/k6-clients-generator.js +3 -7
  130. package/{script → dist}/src/generators/services/k6-clients/models.d.ts +6 -7
  131. package/dist/src/generators/services/k6-clients/models.js +25 -0
  132. package/{esm → dist}/src/generators/services/k6-clients/refs.d.ts +2 -3
  133. package/{script → dist}/src/import-collection.d.ts +2 -3
  134. package/{esm → dist}/src/import-collection.js +8 -40
  135. package/{script → dist}/src/utils.d.ts +0 -1
  136. package/{esm → dist}/src/utils.js +1 -2
  137. package/package.json +26 -15
  138. package/esm/mod.d.ts +0 -8
  139. package/esm/mod.d.ts.map +0 -1
  140. package/esm/package.json +0 -3
  141. package/esm/src/assets.d.ts.map +0 -1
  142. package/esm/src/assets.js +0 -6
  143. package/esm/src/ast/_index.d.ts.map +0 -1
  144. package/esm/src/ast/common.d.ts +0 -2
  145. package/esm/src/ast/common.d.ts.map +0 -1
  146. package/esm/src/ast/index.d.ts +0 -2
  147. package/esm/src/ast/index.d.ts.map +0 -1
  148. package/esm/src/ast/node.d.ts.map +0 -1
  149. package/esm/src/ast/nodes/argument.d.ts.map +0 -1
  150. package/esm/src/ast/nodes/array-type.d.ts +0 -21
  151. package/esm/src/ast/nodes/array-type.d.ts.map +0 -1
  152. package/esm/src/ast/nodes/arrow-function.d.ts.map +0 -1
  153. package/esm/src/ast/nodes/arrow-function.js +0 -83
  154. package/esm/src/ast/nodes/call.d.ts.map +0 -1
  155. package/esm/src/ast/nodes/class.d.ts.map +0 -1
  156. package/esm/src/ast/nodes/class.js +0 -120
  157. package/esm/src/ast/nodes/constructor-parameter.d.ts +0 -21
  158. package/esm/src/ast/nodes/constructor-parameter.d.ts.map +0 -1
  159. package/esm/src/ast/nodes/constructor.d.ts.map +0 -1
  160. package/esm/src/ast/nodes/constructor.js +0 -62
  161. package/esm/src/ast/nodes/decorator.d.ts.map +0 -1
  162. package/esm/src/ast/nodes/doc-tag.d.ts.map +0 -1
  163. package/esm/src/ast/nodes/doc.d.ts +0 -30
  164. package/esm/src/ast/nodes/doc.d.ts.map +0 -1
  165. package/esm/src/ast/nodes/enum-value.d.ts +0 -24
  166. package/esm/src/ast/nodes/enum-value.d.ts.map +0 -1
  167. package/esm/src/ast/nodes/enum.d.ts +0 -28
  168. package/esm/src/ast/nodes/enum.d.ts.map +0 -1
  169. package/esm/src/ast/nodes/enum.js +0 -72
  170. package/esm/src/ast/nodes/export.d.ts.map +0 -1
  171. package/esm/src/ast/nodes/function-type.d.ts +0 -25
  172. package/esm/src/ast/nodes/function-type.d.ts.map +0 -1
  173. package/esm/src/ast/nodes/function-type.js +0 -49
  174. package/esm/src/ast/nodes/function.d.ts.map +0 -1
  175. package/esm/src/ast/nodes/function.js +0 -104
  176. package/esm/src/ast/nodes/generic-parameter.d.ts.map +0 -1
  177. package/esm/src/ast/nodes/generic-parameter.js +0 -67
  178. package/esm/src/ast/nodes/indexer.d.ts.map +0 -1
  179. package/esm/src/ast/nodes/indexer.js +0 -52
  180. package/esm/src/ast/nodes/interface.d.ts +0 -38
  181. package/esm/src/ast/nodes/interface.d.ts.map +0 -1
  182. package/esm/src/ast/nodes/intersection-type.d.ts +0 -19
  183. package/esm/src/ast/nodes/intersection-type.d.ts.map +0 -1
  184. package/esm/src/ast/nodes/lookup-type.d.ts.map +0 -1
  185. package/esm/src/ast/nodes/method.d.ts +0 -48
  186. package/esm/src/ast/nodes/method.d.ts.map +0 -1
  187. package/esm/src/ast/nodes/method.js +0 -158
  188. package/esm/src/ast/nodes/object-type.d.ts +0 -22
  189. package/esm/src/ast/nodes/object-type.d.ts.map +0 -1
  190. package/esm/src/ast/nodes/object.d.ts.map +0 -1
  191. package/esm/src/ast/nodes/parameter.d.ts +0 -30
  192. package/esm/src/ast/nodes/parameter.d.ts.map +0 -1
  193. package/esm/src/ast/nodes/parameter.js +0 -77
  194. package/esm/src/ast/nodes/property-accessor.d.ts.map +0 -1
  195. package/esm/src/ast/nodes/property-accessor.js +0 -181
  196. package/esm/src/ast/nodes/property.d.ts +0 -64
  197. package/esm/src/ast/nodes/property.d.ts.map +0 -1
  198. package/esm/src/ast/nodes/property.js +0 -189
  199. package/esm/src/ast/nodes/reference.d.ts.map +0 -1
  200. package/esm/src/ast/nodes/string.d.ts +0 -20
  201. package/esm/src/ast/nodes/string.d.ts.map +0 -1
  202. package/esm/src/ast/nodes/tuple.d.ts +0 -21
  203. package/esm/src/ast/nodes/tuple.d.ts.map +0 -1
  204. package/esm/src/ast/nodes/type-alias.d.ts.map +0 -1
  205. package/esm/src/ast/nodes/type-alias.js +0 -64
  206. package/esm/src/ast/nodes/typeof.d.ts.map +0 -1
  207. package/esm/src/ast/nodes/types.d.ts +0 -19
  208. package/esm/src/ast/nodes/types.d.ts.map +0 -1
  209. package/esm/src/ast/nodes/union-type.d.ts.map +0 -1
  210. package/esm/src/ast/nodes/variable.d.ts +0 -30
  211. package/esm/src/ast/nodes/variable.d.ts.map +0 -1
  212. package/esm/src/ast/nodes/variable.js +0 -72
  213. package/esm/src/ast/references/angular.d.ts +0 -9
  214. package/esm/src/ast/references/angular.d.ts.map +0 -1
  215. package/esm/src/ast/references/easy-network-stub.d.ts.map +0 -1
  216. package/esm/src/ast/references/index.d.ts +0 -6
  217. package/esm/src/ast/references/index.d.ts.map +0 -1
  218. package/esm/src/ast/references/k6.d.ts.map +0 -1
  219. package/esm/src/ast/references/rxjs.d.ts.map +0 -1
  220. package/esm/src/ast/references/typescript.d.ts.map +0 -1
  221. package/esm/src/ast/utils/get-type-script-builder-options.d.ts.map +0 -1
  222. package/esm/src/ast/utils/to-ts-node.d.ts.map +0 -1
  223. package/esm/src/ast/utils/write-ts-generic-parameters.d.ts.map +0 -1
  224. package/esm/src/ast/utils/write-ts-members.d.ts.map +0 -1
  225. package/esm/src/ast/utils/write-ts-nodes.d.ts.map +0 -1
  226. package/esm/src/ast/utils/write-ts-parameters.d.ts.map +0 -1
  227. package/esm/src/common-results.d.ts +0 -25
  228. package/esm/src/common-results.d.ts.map +0 -1
  229. package/esm/src/config.d.ts +0 -66
  230. package/esm/src/config.d.ts.map +0 -1
  231. package/esm/src/file-builder.d.ts +0 -34
  232. package/esm/src/file-builder.d.ts.map +0 -1
  233. package/esm/src/generators/file-generator.d.ts +0 -8
  234. package/esm/src/generators/file-generator.d.ts.map +0 -1
  235. package/esm/src/generators/index.d.ts +0 -7
  236. package/esm/src/generators/index.d.ts.map +0 -1
  237. package/esm/src/generators/models/index.d.ts +0 -4
  238. package/esm/src/generators/models/index.d.ts.map +0 -1
  239. package/esm/src/generators/models/model-generator.d.ts.map +0 -1
  240. package/esm/src/generators/models/models-generator.d.ts.map +0 -1
  241. package/esm/src/generators/models/models.d.ts +0 -77
  242. package/esm/src/generators/models/models.d.ts.map +0 -1
  243. package/esm/src/generators/services/angular-services/angular-service-generator.d.ts +0 -43
  244. package/esm/src/generators/services/angular-services/angular-service-generator.d.ts.map +0 -1
  245. package/esm/src/generators/services/angular-services/angular-services-generator.d.ts +0 -31
  246. package/esm/src/generators/services/angular-services/angular-services-generator.d.ts.map +0 -1
  247. package/esm/src/generators/services/angular-services/index.d.ts +0 -4
  248. package/esm/src/generators/services/angular-services/index.d.ts.map +0 -1
  249. package/esm/src/generators/services/angular-services/models.d.ts.map +0 -1
  250. package/esm/src/generators/services/angular-services/refs.d.ts.map +0 -1
  251. package/esm/src/generators/services/easy-network-stub/easy-network-stub-generator.d.ts.map +0 -1
  252. package/esm/src/generators/services/easy-network-stub/easy-network-stubs-generator.d.ts +0 -28
  253. package/esm/src/generators/services/easy-network-stub/easy-network-stubs-generator.d.ts.map +0 -1
  254. package/esm/src/generators/services/easy-network-stub/index.d.ts +0 -4
  255. package/esm/src/generators/services/easy-network-stub/index.d.ts.map +0 -1
  256. package/esm/src/generators/services/easy-network-stub/models.d.ts +0 -78
  257. package/esm/src/generators/services/easy-network-stub/models.d.ts.map +0 -1
  258. package/esm/src/generators/services/easy-network-stub/refs.d.ts.map +0 -1
  259. package/esm/src/generators/services/fetch-clients/fetch-client-generator.d.ts +0 -36
  260. package/esm/src/generators/services/fetch-clients/fetch-client-generator.d.ts.map +0 -1
  261. package/esm/src/generators/services/fetch-clients/fetch-clients-generator.d.ts.map +0 -1
  262. package/esm/src/generators/services/fetch-clients/index.d.ts +0 -4
  263. package/esm/src/generators/services/fetch-clients/index.d.ts.map +0 -1
  264. package/esm/src/generators/services/fetch-clients/models.d.ts +0 -84
  265. package/esm/src/generators/services/fetch-clients/models.d.ts.map +0 -1
  266. package/esm/src/generators/services/fetch-clients/refs.d.ts.map +0 -1
  267. package/esm/src/generators/services/k6-clients/index.d.ts +0 -4
  268. package/esm/src/generators/services/k6-clients/index.d.ts.map +0 -1
  269. package/esm/src/generators/services/k6-clients/k6-client-generator.d.ts +0 -43
  270. package/esm/src/generators/services/k6-clients/k6-client-generator.d.ts.map +0 -1
  271. package/esm/src/generators/services/k6-clients/k6-clients-generator.d.ts +0 -27
  272. package/esm/src/generators/services/k6-clients/k6-clients-generator.d.ts.map +0 -1
  273. package/esm/src/generators/services/k6-clients/models.d.ts +0 -124
  274. package/esm/src/generators/services/k6-clients/models.d.ts.map +0 -1
  275. package/esm/src/generators/services/k6-clients/models.js +0 -84
  276. package/esm/src/generators/services/k6-clients/refs.d.ts.map +0 -1
  277. package/esm/src/import-collection.d.ts +0 -42
  278. package/esm/src/import-collection.d.ts.map +0 -1
  279. package/esm/src/utils.d.ts +0 -9
  280. package/esm/src/utils.d.ts.map +0 -1
  281. package/script/mod.d.ts +0 -8
  282. package/script/mod.d.ts.map +0 -1
  283. package/script/mod.js +0 -10
  284. package/script/package.json +0 -3
  285. package/script/src/assets.d.ts +0 -3
  286. package/script/src/assets.d.ts.map +0 -1
  287. package/script/src/assets.js +0 -9
  288. package/script/src/ast/_index.d.ts +0 -39
  289. package/script/src/ast/_index.d.ts.map +0 -1
  290. package/script/src/ast/_index.js +0 -108
  291. package/script/src/ast/common.d.ts +0 -2
  292. package/script/src/ast/common.d.ts.map +0 -1
  293. package/script/src/ast/common.js +0 -2
  294. package/script/src/ast/index.d.ts +0 -2
  295. package/script/src/ast/index.d.ts.map +0 -1
  296. package/script/src/ast/index.js +0 -5
  297. package/script/src/ast/node.d.ts +0 -5
  298. package/script/src/ast/node.d.ts.map +0 -1
  299. package/script/src/ast/node.js +0 -10
  300. package/script/src/ast/nodes/argument.d.ts +0 -19
  301. package/script/src/ast/nodes/argument.d.ts.map +0 -1
  302. package/script/src/ast/nodes/argument.js +0 -26
  303. package/script/src/ast/nodes/array-type.d.ts.map +0 -1
  304. package/script/src/ast/nodes/array-type.js +0 -39
  305. package/script/src/ast/nodes/arrow-function.d.ts +0 -31
  306. package/script/src/ast/nodes/arrow-function.d.ts.map +0 -1
  307. package/script/src/ast/nodes/arrow-function.js +0 -87
  308. package/script/src/ast/nodes/call.d.ts +0 -22
  309. package/script/src/ast/nodes/call.d.ts.map +0 -1
  310. package/script/src/ast/nodes/call.js +0 -38
  311. package/script/src/ast/nodes/class.d.ts +0 -43
  312. package/script/src/ast/nodes/class.d.ts.map +0 -1
  313. package/script/src/ast/nodes/class.js +0 -124
  314. package/script/src/ast/nodes/constructor-parameter.d.ts.map +0 -1
  315. package/script/src/ast/nodes/constructor-parameter.js +0 -59
  316. package/script/src/ast/nodes/constructor.d.ts +0 -27
  317. package/script/src/ast/nodes/constructor.d.ts.map +0 -1
  318. package/script/src/ast/nodes/constructor.js +0 -66
  319. package/script/src/ast/nodes/decorator.d.ts +0 -25
  320. package/script/src/ast/nodes/decorator.d.ts.map +0 -1
  321. package/script/src/ast/nodes/decorator.js +0 -50
  322. package/script/src/ast/nodes/doc-tag.d.ts +0 -74
  323. package/script/src/ast/nodes/doc-tag.d.ts.map +0 -1
  324. package/script/src/ast/nodes/doc-tag.js +0 -83
  325. package/script/src/ast/nodes/doc.d.ts.map +0 -1
  326. package/script/src/ast/nodes/doc.js +0 -69
  327. package/script/src/ast/nodes/enum-value.d.ts.map +0 -1
  328. package/script/src/ast/nodes/enum-value.js +0 -53
  329. package/script/src/ast/nodes/enum.d.ts.map +0 -1
  330. package/script/src/ast/nodes/enum.js +0 -76
  331. package/script/src/ast/nodes/export.d.ts +0 -23
  332. package/script/src/ast/nodes/export.d.ts.map +0 -1
  333. package/script/src/ast/nodes/export.js +0 -47
  334. package/script/src/ast/nodes/function-type.d.ts.map +0 -1
  335. package/script/src/ast/nodes/function-type.js +0 -53
  336. package/script/src/ast/nodes/function.d.ts +0 -37
  337. package/script/src/ast/nodes/function.d.ts.map +0 -1
  338. package/script/src/ast/nodes/function.js +0 -108
  339. package/script/src/ast/nodes/generic-parameter.d.ts +0 -27
  340. package/script/src/ast/nodes/generic-parameter.d.ts.map +0 -1
  341. package/script/src/ast/nodes/generic-parameter.js +0 -71
  342. package/script/src/ast/nodes/indexer.d.ts +0 -25
  343. package/script/src/ast/nodes/indexer.d.ts.map +0 -1
  344. package/script/src/ast/nodes/indexer.js +0 -56
  345. package/script/src/ast/nodes/interface.d.ts.map +0 -1
  346. package/script/src/ast/nodes/interface.js +0 -102
  347. package/script/src/ast/nodes/intersection-type.d.ts.map +0 -1
  348. package/script/src/ast/nodes/intersection-type.js +0 -50
  349. package/script/src/ast/nodes/lookup-type.d.ts +0 -21
  350. package/script/src/ast/nodes/lookup-type.d.ts.map +0 -1
  351. package/script/src/ast/nodes/lookup-type.js +0 -42
  352. package/script/src/ast/nodes/method.d.ts.map +0 -1
  353. package/script/src/ast/nodes/method.js +0 -163
  354. package/script/src/ast/nodes/object-type.d.ts.map +0 -1
  355. package/script/src/ast/nodes/object-type.js +0 -30
  356. package/script/src/ast/nodes/object.d.ts +0 -21
  357. package/script/src/ast/nodes/object.d.ts.map +0 -1
  358. package/script/src/ast/nodes/object.js +0 -30
  359. package/script/src/ast/nodes/parameter.d.ts.map +0 -1
  360. package/script/src/ast/nodes/parameter.js +0 -81
  361. package/script/src/ast/nodes/property-accessor.d.ts +0 -54
  362. package/script/src/ast/nodes/property-accessor.d.ts.map +0 -1
  363. package/script/src/ast/nodes/property-accessor.js +0 -188
  364. package/script/src/ast/nodes/property.d.ts.map +0 -1
  365. package/script/src/ast/nodes/property.js +0 -195
  366. package/script/src/ast/nodes/reference.d.ts +0 -64
  367. package/script/src/ast/nodes/reference.d.ts.map +0 -1
  368. package/script/src/ast/nodes/reference.js +0 -97
  369. package/script/src/ast/nodes/string.d.ts.map +0 -1
  370. package/script/src/ast/nodes/string.js +0 -42
  371. package/script/src/ast/nodes/tuple.d.ts.map +0 -1
  372. package/script/src/ast/nodes/tuple.js +0 -45
  373. package/script/src/ast/nodes/type-alias.d.ts +0 -29
  374. package/script/src/ast/nodes/type-alias.d.ts.map +0 -1
  375. package/script/src/ast/nodes/type-alias.js +0 -68
  376. package/script/src/ast/nodes/typeof.d.ts +0 -19
  377. package/script/src/ast/nodes/typeof.d.ts.map +0 -1
  378. package/script/src/ast/nodes/typeof.js +0 -29
  379. package/script/src/ast/nodes/types.d.ts +0 -19
  380. package/script/src/ast/nodes/types.d.ts.map +0 -1
  381. package/script/src/ast/nodes/types.js +0 -2
  382. package/script/src/ast/nodes/union-type.d.ts +0 -19
  383. package/script/src/ast/nodes/union-type.d.ts.map +0 -1
  384. package/script/src/ast/nodes/union-type.js +0 -50
  385. package/script/src/ast/nodes/variable.d.ts.map +0 -1
  386. package/script/src/ast/nodes/variable.js +0 -76
  387. package/script/src/ast/references/angular.d.ts.map +0 -1
  388. package/script/src/ast/references/angular.js +0 -15
  389. package/script/src/ast/references/easy-network-stub.d.ts +0 -6
  390. package/script/src/ast/references/easy-network-stub.d.ts.map +0 -1
  391. package/script/src/ast/references/easy-network-stub.js +0 -12
  392. package/script/src/ast/references/index.d.ts +0 -6
  393. package/script/src/ast/references/index.d.ts.map +0 -1
  394. package/script/src/ast/references/index.js +0 -9
  395. package/script/src/ast/references/k6.d.ts +0 -5
  396. package/script/src/ast/references/k6.d.ts.map +0 -1
  397. package/script/src/ast/references/k6.js +0 -9
  398. package/script/src/ast/references/rxjs.d.ts +0 -7
  399. package/script/src/ast/references/rxjs.d.ts.map +0 -1
  400. package/script/src/ast/references/rxjs.js +0 -9
  401. package/script/src/ast/references/typescript.d.ts +0 -32
  402. package/script/src/ast/references/typescript.d.ts.map +0 -1
  403. package/script/src/ast/references/typescript.js +0 -34
  404. package/script/src/ast/utils/get-type-script-builder-options.d.ts +0 -4
  405. package/script/src/ast/utils/get-type-script-builder-options.d.ts.map +0 -1
  406. package/script/src/ast/utils/get-type-script-builder-options.js +0 -18
  407. package/script/src/ast/utils/to-ts-node.d.ts +0 -9
  408. package/script/src/ast/utils/to-ts-node.d.ts.map +0 -1
  409. package/script/src/ast/utils/to-ts-node.js +0 -23
  410. package/script/src/ast/utils/write-ts-generic-parameters.d.ts +0 -4
  411. package/script/src/ast/utils/write-ts-generic-parameters.d.ts.map +0 -1
  412. package/script/src/ast/utils/write-ts-generic-parameters.js +0 -10
  413. package/script/src/ast/utils/write-ts-members.d.ts +0 -6
  414. package/script/src/ast/utils/write-ts-members.d.ts.map +0 -1
  415. package/script/src/ast/utils/write-ts-members.js +0 -17
  416. package/script/src/ast/utils/write-ts-nodes.d.ts +0 -7
  417. package/script/src/ast/utils/write-ts-nodes.d.ts.map +0 -1
  418. package/script/src/ast/utils/write-ts-nodes.js +0 -23
  419. package/script/src/ast/utils/write-ts-parameters.d.ts +0 -4
  420. package/script/src/ast/utils/write-ts-parameters.d.ts.map +0 -1
  421. package/script/src/ast/utils/write-ts-parameters.js +0 -13
  422. package/script/src/common-results.d.ts.map +0 -1
  423. package/script/src/common-results.js +0 -2
  424. package/script/src/config.d.ts.map +0 -1
  425. package/script/src/config.js +0 -18
  426. package/script/src/file-builder.d.ts.map +0 -1
  427. package/script/src/file-builder.js +0 -101
  428. package/script/src/generators/file-generator.d.ts.map +0 -1
  429. package/script/src/generators/file-generator.js +0 -10
  430. package/script/src/generators/index.d.ts +0 -7
  431. package/script/src/generators/index.d.ts.map +0 -1
  432. package/script/src/generators/index.js +0 -9
  433. package/script/src/generators/models/index.d.ts +0 -4
  434. package/script/src/generators/models/index.d.ts.map +0 -1
  435. package/script/src/generators/models/index.js +0 -6
  436. package/script/src/generators/models/model-generator.d.ts +0 -67
  437. package/script/src/generators/models/model-generator.d.ts.map +0 -1
  438. package/script/src/generators/models/model-generator.js +0 -420
  439. package/script/src/generators/models/models-generator.d.ts +0 -23
  440. package/script/src/generators/models/models-generator.d.ts.map +0 -1
  441. package/script/src/generators/models/models-generator.js +0 -73
  442. package/script/src/generators/models/models.d.ts.map +0 -1
  443. package/script/src/generators/models/models.js +0 -20
  444. package/script/src/generators/services/angular-services/angular-service-generator.d.ts.map +0 -1
  445. package/script/src/generators/services/angular-services/angular-service-generator.js +0 -323
  446. package/script/src/generators/services/angular-services/angular-services-generator.d.ts.map +0 -1
  447. package/script/src/generators/services/angular-services/angular-services-generator.js +0 -218
  448. package/script/src/generators/services/angular-services/index.d.ts +0 -4
  449. package/script/src/generators/services/angular-services/index.d.ts.map +0 -1
  450. package/script/src/generators/services/angular-services/index.js +0 -6
  451. package/script/src/generators/services/angular-services/models.d.ts +0 -147
  452. package/script/src/generators/services/angular-services/models.d.ts.map +0 -1
  453. package/script/src/generators/services/angular-services/models.js +0 -90
  454. package/script/src/generators/services/angular-services/refs.d.ts +0 -12
  455. package/script/src/generators/services/angular-services/refs.d.ts.map +0 -1
  456. package/script/src/generators/services/angular-services/refs.js +0 -30
  457. package/script/src/generators/services/easy-network-stub/easy-network-stub-generator.d.ts +0 -33
  458. package/script/src/generators/services/easy-network-stub/easy-network-stub-generator.d.ts.map +0 -1
  459. package/script/src/generators/services/easy-network-stub/easy-network-stub-generator.js +0 -180
  460. package/script/src/generators/services/easy-network-stub/easy-network-stubs-generator.d.ts.map +0 -1
  461. package/script/src/generators/services/easy-network-stub/easy-network-stubs-generator.js +0 -137
  462. package/script/src/generators/services/easy-network-stub/index.d.ts +0 -4
  463. package/script/src/generators/services/easy-network-stub/index.d.ts.map +0 -1
  464. package/script/src/generators/services/easy-network-stub/index.js +0 -6
  465. package/script/src/generators/services/easy-network-stub/models.d.ts.map +0 -1
  466. package/script/src/generators/services/easy-network-stub/models.js +0 -18
  467. package/script/src/generators/services/easy-network-stub/refs.d.ts +0 -15
  468. package/script/src/generators/services/easy-network-stub/refs.d.ts.map +0 -1
  469. package/script/src/generators/services/easy-network-stub/refs.js +0 -31
  470. package/script/src/generators/services/fetch-clients/fetch-client-generator.d.ts.map +0 -1
  471. package/script/src/generators/services/fetch-clients/fetch-client-generator.js +0 -223
  472. package/script/src/generators/services/fetch-clients/fetch-clients-generator.d.ts +0 -27
  473. package/script/src/generators/services/fetch-clients/fetch-clients-generator.d.ts.map +0 -1
  474. package/script/src/generators/services/fetch-clients/fetch-clients-generator.js +0 -110
  475. package/script/src/generators/services/fetch-clients/index.d.ts +0 -4
  476. package/script/src/generators/services/fetch-clients/index.d.ts.map +0 -1
  477. package/script/src/generators/services/fetch-clients/index.js +0 -6
  478. package/script/src/generators/services/fetch-clients/models.d.ts.map +0 -1
  479. package/script/src/generators/services/fetch-clients/models.js +0 -17
  480. package/script/src/generators/services/fetch-clients/refs.d.ts +0 -8
  481. package/script/src/generators/services/fetch-clients/refs.d.ts.map +0 -1
  482. package/script/src/generators/services/fetch-clients/refs.js +0 -16
  483. package/script/src/generators/services/k6-clients/index.d.ts +0 -4
  484. package/script/src/generators/services/k6-clients/index.d.ts.map +0 -1
  485. package/script/src/generators/services/k6-clients/index.js +0 -6
  486. package/script/src/generators/services/k6-clients/k6-client-generator.d.ts.map +0 -1
  487. package/script/src/generators/services/k6-clients/k6-client-generator.js +0 -401
  488. package/script/src/generators/services/k6-clients/k6-clients-generator.d.ts.map +0 -1
  489. package/script/src/generators/services/k6-clients/k6-clients-generator.js +0 -117
  490. package/script/src/generators/services/k6-clients/models.d.ts.map +0 -1
  491. package/script/src/generators/services/k6-clients/models.js +0 -87
  492. package/script/src/generators/services/k6-clients/refs.d.ts +0 -7
  493. package/script/src/generators/services/k6-clients/refs.d.ts.map +0 -1
  494. package/script/src/generators/services/k6-clients/refs.js +0 -13
  495. package/script/src/import-collection.d.ts.map +0 -1
  496. package/script/src/import-collection.js +0 -211
  497. package/script/src/utils.d.ts.map +0 -1
  498. package/script/src/utils.js +0 -66
  499. package/src/mod.ts +0 -7
  500. package/src/src/assets.ts +0 -9
  501. package/src/src/ast/_index.ts +0 -54
  502. package/src/src/ast/index.ts +0 -1
  503. package/src/src/ast/node.ts +0 -10
  504. package/src/src/ast/nodes/argument.ts +0 -40
  505. package/src/src/ast/nodes/array-type.ts +0 -49
  506. package/src/src/ast/nodes/arrow-function.ts +0 -91
  507. package/src/src/ast/nodes/call.ts +0 -55
  508. package/src/src/ast/nodes/class.ts +0 -133
  509. package/src/src/ast/nodes/constructor-parameter.ts +0 -70
  510. package/src/src/ast/nodes/constructor.ts +0 -77
  511. package/src/src/ast/nodes/decorator.ts +0 -76
  512. package/src/src/ast/nodes/doc-tag.ts +0 -291
  513. package/src/src/ast/nodes/doc.ts +0 -102
  514. package/src/src/ast/nodes/enum-value.ts +0 -72
  515. package/src/src/ast/nodes/enum.ts +0 -77
  516. package/src/src/ast/nodes/export.ts +0 -54
  517. package/src/src/ast/nodes/function-type.ts +0 -60
  518. package/src/src/ast/nodes/function.ts +0 -107
  519. package/src/src/ast/nodes/generic-parameter.ts +0 -71
  520. package/src/src/ast/nodes/indexer.ts +0 -60
  521. package/src/src/ast/nodes/interface.ts +0 -117
  522. package/src/src/ast/nodes/intersection-type.ts +0 -67
  523. package/src/src/ast/nodes/lookup-type.ts +0 -53
  524. package/src/src/ast/nodes/method.ts +0 -138
  525. package/src/src/ast/nodes/object-type.ts +0 -52
  526. package/src/src/ast/nodes/object.ts +0 -48
  527. package/src/src/ast/nodes/parameter.ts +0 -85
  528. package/src/src/ast/nodes/property-accessor.ts +0 -173
  529. package/src/src/ast/nodes/property.ts +0 -192
  530. package/src/src/ast/nodes/reference.ts +0 -194
  531. package/src/src/ast/nodes/string.ts +0 -49
  532. package/src/src/ast/nodes/tuple.ts +0 -53
  533. package/src/src/ast/nodes/type-alias.ts +0 -75
  534. package/src/src/ast/nodes/typeof.ts +0 -42
  535. package/src/src/ast/nodes/types.ts +0 -40
  536. package/src/src/ast/nodes/union-type.ts +0 -62
  537. package/src/src/ast/nodes/variable.ts +0 -73
  538. package/src/src/ast/references/angular.ts +0 -24
  539. package/src/src/ast/references/easy-network-stub.ts +0 -21
  540. package/src/src/ast/references/index.ts +0 -5
  541. package/src/src/ast/references/k6.ts +0 -8
  542. package/src/src/ast/references/rxjs.ts +0 -7
  543. package/src/src/ast/references/typescript.ts +0 -35
  544. package/src/src/ast/utils/get-type-script-builder-options.ts +0 -19
  545. package/src/src/ast/utils/to-ts-node.ts +0 -27
  546. package/src/src/ast/utils/write-ts-generic-parameters.ts +0 -25
  547. package/src/src/ast/utils/write-ts-members.ts +0 -28
  548. package/src/src/ast/utils/write-ts-nodes.ts +0 -35
  549. package/src/src/ast/utils/write-ts-parameters.ts +0 -25
  550. package/src/src/common-results.ts +0 -26
  551. package/src/src/config.ts +0 -96
  552. package/src/src/file-builder.ts +0 -137
  553. package/src/src/generators/file-generator.ts +0 -15
  554. package/src/src/generators/index.ts +0 -6
  555. package/src/src/generators/models/index.ts +0 -3
  556. package/src/src/generators/models/model-generator.ts +0 -530
  557. package/src/src/generators/models/models-generator.ts +0 -108
  558. package/src/src/generators/models/models.ts +0 -121
  559. package/src/src/generators/services/angular-services/angular-service-generator.ts +0 -431
  560. package/src/src/generators/services/angular-services/angular-services-generator.ts +0 -295
  561. package/src/src/generators/services/angular-services/index.ts +0 -3
  562. package/src/src/generators/services/angular-services/models.ts +0 -277
  563. package/src/src/generators/services/angular-services/refs.ts +0 -54
  564. package/src/src/generators/services/easy-network-stub/easy-network-stub-generator.ts +0 -250
  565. package/src/src/generators/services/easy-network-stub/easy-network-stubs-generator.ts +0 -211
  566. package/src/src/generators/services/easy-network-stub/index.ts +0 -3
  567. package/src/src/generators/services/easy-network-stub/models.ts +0 -124
  568. package/src/src/generators/services/easy-network-stub/refs.ts +0 -47
  569. package/src/src/generators/services/fetch-clients/fetch-client-generator.ts +0 -305
  570. package/src/src/generators/services/fetch-clients/fetch-clients-generator.ts +0 -163
  571. package/src/src/generators/services/fetch-clients/index.ts +0 -3
  572. package/src/src/generators/services/fetch-clients/models.ts +0 -130
  573. package/src/src/generators/services/fetch-clients/refs.ts +0 -21
  574. package/src/src/generators/services/k6-clients/index.ts +0 -3
  575. package/src/src/generators/services/k6-clients/k6-client-generator.ts +0 -515
  576. package/src/src/generators/services/k6-clients/k6-clients-generator.ts +0 -171
  577. package/src/src/generators/services/k6-clients/models.ts +0 -247
  578. package/src/src/generators/services/k6-clients/refs.ts +0 -16
  579. package/src/src/import-collection.ts +0 -236
  580. package/src/src/utils.ts +0 -79
  581. /package/{assets → dist/assets}/client/angular/angular-service.utils.ts +0 -0
  582. /package/{assets → dist/assets}/client/angular/request-builder.ts +0 -0
  583. /package/{assets → dist/assets}/client/fetch/fetch-client.utils.ts +0 -0
  584. /package/{assets → dist/assets}/client/k6/request-builder.js +0 -0
  585. /package/{assets → dist/assets}/client/k6/request-builder.ts +0 -0
  586. /package/{assets → dist/assets}/stubs/easy-network-stub/easy-network-stub.utils.ts +0 -0
  587. /package/{esm → dist}/mod.js +0 -0
  588. /package/{src/src/ast/common.ts → dist/src/ast/common.d.ts} +0 -0
  589. /package/{esm → dist}/src/ast/common.js +0 -0
  590. /package/{esm → dist}/src/ast/index.js +0 -0
  591. /package/{esm → dist}/src/ast/node.js +0 -0
  592. /package/{esm → dist}/src/ast/nodes/types.js +0 -0
  593. /package/{esm → dist}/src/ast/references/angular.js +0 -0
  594. /package/{esm → dist}/src/ast/references/easy-network-stub.js +0 -0
  595. /package/{esm → dist}/src/ast/references/index.js +0 -0
  596. /package/{esm → dist}/src/ast/references/k6.js +0 -0
  597. /package/{esm → dist}/src/ast/references/rxjs.js +0 -0
  598. /package/{esm → dist}/src/ast/references/typescript.js +0 -0
  599. /package/{esm → dist}/src/ast/utils/get-type-script-builder-options.js +0 -0
  600. /package/{esm → dist}/src/ast/utils/to-ts-node.js +0 -0
  601. /package/{esm → dist}/src/ast/utils/write-ts-generic-parameters.js +0 -0
  602. /package/{esm → dist}/src/ast/utils/write-ts-parameters.js +0 -0
  603. /package/{esm → dist}/src/common-results.js +0 -0
  604. /package/{esm → dist}/src/config.js +0 -0
  605. /package/{esm → dist}/src/generators/file-generator.js +0 -0
  606. /package/{esm → dist}/src/generators/index.js +0 -0
  607. /package/{esm → dist}/src/generators/models/index.js +0 -0
  608. /package/{esm → dist}/src/generators/models/models.js +0 -0
  609. /package/{esm → dist}/src/generators/services/angular-services/index.js +0 -0
  610. /package/{esm → dist}/src/generators/services/easy-network-stub/index.js +0 -0
  611. /package/{esm → dist}/src/generators/services/easy-network-stub/models.js +0 -0
  612. /package/{esm → dist}/src/generators/services/easy-network-stub/refs.js +0 -0
  613. /package/{esm → dist}/src/generators/services/fetch-clients/index.js +0 -0
  614. /package/{esm → dist}/src/generators/services/fetch-clients/models.js +0 -0
  615. /package/{esm → dist}/src/generators/services/fetch-clients/refs.js +0 -0
  616. /package/{esm → dist}/src/generators/services/k6-clients/index.js +0 -0
  617. /package/{esm → dist}/src/generators/services/k6-clients/refs.js +0 -0
@@ -1,530 +0,0 @@
1
- import { resolve } from 'node:path';
2
-
3
- import {
4
- type ApiSchema,
5
- type AppendValue,
6
- type AppendValueGroup,
7
- appendValueGroup,
8
- type ArrayLikeApiSchema,
9
- type BasicAppendValue,
10
- type CombinedLikeApiSchema,
11
- DEFAULT_IGNORED_SCHEMA_PROPERTIES,
12
- getSchemaReference,
13
- getSourceDisplayName,
14
- type MaybePromise,
15
- notNullish,
16
- type Nullable,
17
- type ObjectLikeApiSchema,
18
- resolveAnyOfAndAllOf,
19
- type StringLikeApiSchema,
20
- toCasing,
21
- } from '@goast/core';
22
-
23
- import { ts } from '../../ast/index.js';
24
- import type { TypeScriptComponentOutputKind } from '../../common-results.js';
25
- import { TypeScriptFileBuilder } from '../../file-builder.js';
26
- import { getSourceDocLine } from '../../utils.js';
27
- import { TypeScriptFileGenerator } from '../file-generator.js';
28
- import type { TypeScriptModelGeneratorContext, TypeScriptModelGeneratorOutput } from './models.js';
29
-
30
- type Context = TypeScriptModelGeneratorContext;
31
- type Output = TypeScriptModelGeneratorOutput;
32
- type Builder = TypeScriptFileBuilder;
33
-
34
- export interface TypeScriptModelGenerator<TOutput extends Output = Output> {
35
- generate(ctx: Context): MaybePromise<TOutput>;
36
- }
37
-
38
- export class DefaultTypeScriptModelGenerator extends TypeScriptFileGenerator<Context, Output>
39
- implements TypeScriptModelGenerator {
40
- public generate(ctx: Context): MaybePromise<Output> {
41
- if (this.shouldGenerateTypeDeclaration(ctx, ctx.schema)) {
42
- const name = this.getDeclarationTypeName(ctx, ctx.schema);
43
- const filePath = this.getFilePath(ctx, ctx.schema);
44
-
45
- const fileContent = this.getFileContent(ctx);
46
- TypeScriptFileBuilder.generate({
47
- logName: `model ${getSourceDisplayName(ctx.data, ctx.schema)} [${name}]`,
48
- filePath,
49
- options: ctx.config,
50
- generator: (b) => b.append(fileContent),
51
- });
52
-
53
- const exports = fileContent.values.filter(
54
- (x): x is AppendValue<Builder> & { name: string; export: true } =>
55
- typeof x === 'object' && x !== null && 'export' in x && x.export === true && 'name' in x,
56
- );
57
- const node = exports.find((x) => x.name === name);
58
- return {
59
- component: name,
60
- filePath,
61
- imports: [
62
- {
63
- kind: 'file',
64
- name,
65
- modulePath: filePath,
66
- type: node instanceof ts.Interface || node instanceof ts.TypeAlias ? 'type-import' : 'import',
67
- },
68
- ],
69
- additionalExports: exports
70
- .filter((x) => x.name !== name)
71
- .map(
72
- (x) => ({
73
- name: x.name,
74
- type: x instanceof ts.TypeAlias || x instanceof ts.Interface ? 'type-export' : 'export',
75
- } as const),
76
- ),
77
- kind: this.getNodeKind(node),
78
- };
79
- } else {
80
- const builder = new TypeScriptFileBuilder(undefined, ctx.config);
81
- builder.append(this.getType(ctx, ctx.schema));
82
- const imports = builder.imports.imports;
83
- builder.imports.clear();
84
- return { component: builder.toString(false), imports };
85
- }
86
- }
87
-
88
- protected getNodeKind(node: unknown): TypeScriptComponentOutputKind | undefined {
89
- if (node instanceof ts.Interface) return 'interface';
90
- if (node instanceof ts.TypeAlias) return 'type';
91
- if (node instanceof ts.Enum) return 'enum';
92
- if (node instanceof ts.Class) return 'class';
93
- return undefined;
94
- }
95
-
96
- protected getFileContent(ctx: Context): AppendValueGroup<Builder> {
97
- const content = appendValueGroup<Builder>([], '\n');
98
- const interfaceSchema = this.resolveInterfaceSchema(ctx);
99
- if (interfaceSchema) {
100
- content.values.push(this.getInterface(ctx, interfaceSchema));
101
- } else if (
102
- ctx.config.enumGeneration !== 'union' &&
103
- ctx.schema.kind === 'string' &&
104
- ctx.schema.enum !== undefined &&
105
- ctx.schema.enum.length > 0
106
- ) {
107
- content.values.push(this.getEnum(ctx));
108
- } else if (ctx.schema.discriminator && Object.keys(ctx.schema.discriminator.mapping).length > 0) {
109
- content.values.push(
110
- ts.typeAlias(
111
- this.getDiscriminatorTypeName(ctx, ctx.schema),
112
- ts.unionType(Object.keys(ctx.schema.discriminator.mapping).map((x) => ts.string(x))),
113
- ),
114
- ts.typeAlias(
115
- this.getBaseTypeName(ctx, ctx.schema),
116
- this.getType(ctx, ctx.schema, { skipSchemas: true }) ?? this.getAnyType(ctx),
117
- { export: true },
118
- ),
119
- this.getTypeAlias(ctx, ctx.schema),
120
- );
121
- } else {
122
- content.values.push(this.getTypeAlias(ctx, ctx.schema));
123
- if (ctx.schema.enum) {
124
- content.values.push(this.getEnumValuesVariable(ctx, ctx.schema));
125
- }
126
- }
127
- return content;
128
- }
129
-
130
- protected getEnum(ctx: Context): ts.Enum<Builder> {
131
- return ts.enum(this.getDeclarationTypeName(ctx, ctx.schema), {
132
- doc: ts.doc({
133
- description: this.getSchemaDocDescription(ctx, ctx.schema),
134
- tags: [ctx.schema.deprecated ? ts.docTag('deprecated') : null],
135
- }),
136
- export: true,
137
- members: (ctx.schema.enum?.map((x) => String(x)) ?? []).map((x) =>
138
- ts.enumValue(toCasing(x, ctx.config.enumValueNameCasing), { value: ts.string(x) })
139
- ),
140
- });
141
- }
142
-
143
- protected getInterface(ctx: Context, schema: ObjectLikeApiSchema): ts.Interface<Builder> {
144
- return ts.interface(this.getDeclarationTypeName(ctx, ctx.schema), {
145
- export: true,
146
- doc: ts.doc({
147
- description: this.getSchemaDocDescription(ctx, schema as ApiSchema),
148
- tags: [ctx.schema.deprecated ? ts.docTag('deprecated') : null],
149
- }),
150
- members: [...this.getProperties(ctx, schema), this.getIndexer(ctx, schema)],
151
- });
152
- }
153
-
154
- protected getTypeAlias(ctx: Context, schema: ApiSchema): ts.TypeAlias<Builder> {
155
- const hasDiscriminator = schema.discriminator && Object.keys(schema.discriminator.mapping).length > 0;
156
- const result = ts.typeAlias<Builder>(
157
- this.getDeclarationTypeName(ctx, schema),
158
- (hasDiscriminator ? this.getDiscriminatorType(ctx, schema) : this.getType(ctx, schema, { skipSchemas: true })) ??
159
- this.getAnyType(ctx),
160
- {
161
- export: true,
162
- doc: ts.doc({
163
- description: this.getSchemaDocDescription(ctx, schema),
164
- tags: [ctx.schema.deprecated ? ts.docTag('deprecated') : null],
165
- }),
166
- },
167
- );
168
-
169
- if (hasDiscriminator) {
170
- const propertyValue = this.getDiscriminatorTypeName(ctx, ctx.schema);
171
- result.generics.push(
172
- ts.genericParameter(this.getDiscriminatorGenericParamName(ctx, schema), {
173
- constraint: propertyValue,
174
- default: propertyValue,
175
- }),
176
- );
177
- }
178
-
179
- const inheritedSchemas = this.getInheritedSchemas(ctx, schema);
180
- if (inheritedSchemas.length > 0) {
181
- const fixedProperties = inheritedSchemas.reduce((p, c) => {
182
- const mappingValues = Object.entries(c.discriminator.mapping)
183
- .filter(([_, value]) => value.id === schema.id)
184
- .map(([key]) => ts.string(key));
185
- if (c.discriminator.propertyName in p) {
186
- p[c.discriminator.propertyName].types.push(...mappingValues);
187
- } else {
188
- p[c.discriminator.propertyName] = ts.unionType(mappingValues);
189
- }
190
- return p;
191
- }, {} as Record<string, ts.UnionType<Builder>>);
192
- result.type = ts.intersectionType([
193
- ts.refs.omit([result.type, ts.unionType(Object.keys(fixedProperties).map((x) => ts.string(x)))]),
194
- ts.objectType({
195
- members: Object.entries(fixedProperties).map(([key, value]) =>
196
- ts.property(key, { type: value, readonly: ctx.config.immutableTypes })
197
- ),
198
- }),
199
- ]);
200
- }
201
-
202
- return result;
203
- }
204
-
205
- protected getEnumValuesVariable(ctx: Context, schema: ApiSchema): ts.Variable<Builder> {
206
- const enumTypeName = this.getDeclarationTypeName(ctx, schema);
207
- const values = schema.enum?.map((x) => ts.toNode(x)) ?? [];
208
- return ts.variable(toCasing(`${enumTypeName}-Values`, ctx.config.constantNameCasing), {
209
- doc: ts.doc({
210
- description: `All possible values of the enum \`${enumTypeName}\`.`,
211
- }),
212
- export: true,
213
- readonly: true,
214
- value: ts.tuple(values, { asConst: true }),
215
- });
216
- }
217
-
218
- protected getIndexer(ctx: Context, schema: ObjectLikeApiSchema): ts.Indexer<Builder> | null {
219
- return schema.additionalProperties
220
- ? ts.indexer(
221
- ts.refs.string(),
222
- (schema.additionalProperties === true ? null : this.getMemberType(ctx, schema.additionalProperties)) ??
223
- this.getAnyType(ctx),
224
- { readonly: ctx.config.immutableTypes },
225
- )
226
- : null;
227
- }
228
-
229
- protected getProperties(ctx: Context, schema: ObjectLikeApiSchema): ts.Property<Builder>[] {
230
- return Array.from(schema.properties.values()).map((property) => {
231
- return ts.property(property.name, {
232
- doc: ts.doc({
233
- description: this.getSchemaDocDescription(ctx, property.schema),
234
- tags: [property.schema.deprecated ? ts.docTag('deprecated') : null],
235
- }),
236
- readonly: ctx.config.immutableTypes,
237
- optional: !schema.required.has(property.name),
238
- type: ts.unionType([this.getType(ctx, property.schema), property.schema.nullable ? 'null' : null]),
239
- });
240
- });
241
- }
242
-
243
- /**
244
- * The type of a schema used as a *member* of an enclosing type - a composition branch, an array element, an
245
- * `additionalProperties` value - with the schema's own nullability applied.
246
- *
247
- * `getType` renders a schema's type without its `null` on purpose: the two contexts that render a schema's type
248
- * as a whole declare nullability themselves. A property has it added by `getProperties`, and a top-level type
249
- * alias deliberately does not hoist it, because that would change what every declared type means for consumers.
250
- * A member position has neither - nothing downstream can add the `null` back - so unless it is admitted here the
251
- * emitted type cannot represent a value the spec explicitly permits.
252
- */
253
- protected getMemberType(
254
- ctx: Context,
255
- schema: Nullable<ApiSchema>,
256
- options?: { skipSchemas?: boolean; useBaseType?: boolean },
257
- ): ts.Type<Builder> | null {
258
- const type = this.getType(ctx, schema, options);
259
- return type !== null && schema && this.isNullableMember(schema) ? ts.unionType([type, 'null']) : type;
260
- }
261
-
262
- /**
263
- * Whether a schema needs a `null` added to the type `getType` renders for it. A schema that only ever renders as
264
- * `null` (the null type itself) already admits it, and adding a second one would emit `(null) | (null)`.
265
- *
266
- * Nullability is read through the reference chain the same way `getType` reads the type, so a `$ref` to a
267
- * declared nullable schema - whose own declaration does not hoist the `null` - still admits null where it is used.
268
- */
269
- protected isNullableMember(schema: ApiSchema): boolean {
270
- const resolved = getSchemaReference(schema, DEFAULT_IGNORED_SCHEMA_PROPERTIES);
271
- if (resolved.kind === 'null') return false;
272
- return schema.nullable === true || resolved.nullable === true;
273
- }
274
-
275
- protected getType(
276
- ctx: Context,
277
- schema: Nullable<ApiSchema>,
278
- options?: { skipSchemas?: boolean; useBaseType?: boolean },
279
- ): ts.Type<Builder> | null {
280
- if (!schema) return this.getAnyType(ctx);
281
-
282
- schema = getSchemaReference(schema, DEFAULT_IGNORED_SCHEMA_PROPERTIES);
283
-
284
- if (options?.useBaseType && ctx.schema.inheritedSchemas.some((x) => x.id === schema.id)) {
285
- return ts.reference(this.getBaseTypeName(ctx, schema), this.getFilePath(ctx, schema), {
286
- importType: 'type-import',
287
- });
288
- }
289
-
290
- if (!options?.skipSchemas && this.shouldGenerateTypeDeclaration(ctx, schema)) {
291
- if (schema.id === ctx.schema.id) {
292
- return null;
293
- }
294
- return ts.reference(this.getDeclarationTypeName(ctx, schema), this.getFilePath(ctx, schema), {
295
- importType: 'type-import',
296
- });
297
- }
298
-
299
- if (schema.enum) {
300
- return ts.unionType(schema.enum.map((x) => ts.toNode(x)));
301
- }
302
-
303
- switch (schema.kind) {
304
- case 'boolean':
305
- return 'boolean';
306
- case 'integer':
307
- case 'number':
308
- return 'number';
309
- case 'string':
310
- return this.getStringType(ctx, schema);
311
- case 'null':
312
- return 'null';
313
- case 'unknown':
314
- return this.getAnyType(ctx);
315
- case 'array':
316
- return this.getArrayType(ctx, schema);
317
- case 'object':
318
- return this.getObjectType(ctx, schema);
319
- case 'combined':
320
- return this.getCombinedType(ctx, schema);
321
- case 'multi-type':
322
- return this.getMultiType(ctx, schema);
323
- case 'oneOf':
324
- return this.getOneOfType(ctx, schema);
325
- default:
326
- return this.getAnyType(ctx);
327
- }
328
- }
329
-
330
- protected getStringType(ctx: Context, schema: StringLikeApiSchema): ts.Type<Builder> {
331
- if (schema.format === 'binary') {
332
- return ctx.config.binarySchemaType();
333
- }
334
- return 'string';
335
- }
336
-
337
- protected getArrayType(ctx: Context, schema: ArrayLikeApiSchema): ts.Type<Builder> {
338
- return ts.arrayType(this.getMemberType(ctx, schema.items) ?? this.getAnyType(ctx), {
339
- readonly: ctx.config.immutableTypes,
340
- });
341
- }
342
-
343
- protected getObjectType(ctx: Context, schema: ObjectLikeApiSchema): ts.Type<Builder> {
344
- const parts = [
345
- schema.properties.size > 0 ? ts.objectType({ members: this.getProperties(ctx, schema) }) : null,
346
- schema.additionalProperties ? ts.objectType({ members: [this.getIndexer(ctx, schema)] }) : null,
347
- schema.allOf.length > 0 || schema.anyOf.length > 0 ? this.getCombinedType(ctx, schema) : null,
348
- ].filter(notNullish);
349
- if (parts.length === 0) {
350
- parts.push(
351
- ts.objectType({
352
- members: [ts.indexer(ts.refs.string(), ts.refs.never(), { readonly: ctx.config.immutableTypes })],
353
- }),
354
- );
355
- }
356
- return ts.intersectionType(parts);
357
- }
358
-
359
- protected getDiscriminatorType(ctx: Context, schema: ApiSchema): ts.Type<Builder> {
360
- if (schema.discriminator && Object.keys(schema.discriminator.mapping).length > 0) {
361
- const discriminator = schema.discriminator;
362
- return ts.intersectionType([
363
- this.getBaseTypeName(ctx, schema as ApiSchema),
364
- ts.lookupType(
365
- ts.objectType({
366
- members: Object.entries(discriminator.mapping).map(([key, value]) =>
367
- ts.property(key, {
368
- type: ts.intersectionType([
369
- ts.objectType({
370
- members: [
371
- ts.property(discriminator.propertyName, {
372
- type: ts.string(key),
373
- readonly: ctx.config.immutableTypes,
374
- }),
375
- ],
376
- }),
377
- this.getType(ctx, value),
378
- ]),
379
- })
380
- ),
381
- }),
382
- this.getDiscriminatorGenericParamName(ctx, schema as ApiSchema),
383
- ),
384
- ]);
385
- } else {
386
- return ts.refs.unknown();
387
- }
388
- }
389
-
390
- protected getCombinedType(ctx: Context, schema: CombinedLikeApiSchema): ts.Type<Builder> {
391
- if (schema.allOf.length === 0 && schema.anyOf.length === 0) {
392
- return this.getAnyType(ctx);
393
- }
394
- const useBaseType = schema.id === ctx.schema.id;
395
- // allOf branches must all hold at once, i.e. an intersection. anyOf branches only require at least one to hold,
396
- // i.e. a union - TypeScript unions already admit values matching several branches, so no Partial<> wrapper is
397
- // needed to express that overlap. A schema with both intersects the allOf branches with the anyOf union.
398
- return ts.intersectionType([
399
- ...schema.allOf.map((x) => this.getMemberType(ctx, x, { useBaseType })),
400
- schema.anyOf.length > 0
401
- ? ts.unionType(schema.anyOf.map((x) => this.getMemberType(ctx, x, { useBaseType })))
402
- : null,
403
- ]);
404
- }
405
-
406
- protected getOneOfType(ctx: Context, schema: ApiSchema<'oneOf'>): ts.Type<Builder> {
407
- if (schema.oneOf.length === 0) {
408
- return this.getAnyType(ctx);
409
- }
410
- return ts.unionType(schema.oneOf.map((x) => this.getMemberType(ctx, x)));
411
- }
412
-
413
- protected getMultiType(ctx: Context, schema: ApiSchema<'multi-type'>): ts.Type<Builder> {
414
- if (schema.type.length === 0) {
415
- return this.getAnyType(ctx);
416
- }
417
- return ts.unionType(
418
- schema.type.map((x) => {
419
- switch (x) {
420
- case 'string':
421
- return this.getStringType(ctx, schema);
422
- case 'number':
423
- case 'integer':
424
- return 'number';
425
- case 'boolean':
426
- return 'boolean';
427
- case 'null':
428
- return 'null';
429
- case 'array':
430
- return this.getArrayType(ctx, schema);
431
- case 'object':
432
- return this.getObjectType(ctx, schema);
433
- default:
434
- return 'never';
435
- }
436
- }),
437
- );
438
- }
439
-
440
- protected getSchemaDocDescription(ctx: Context, schema: ApiSchema): BasicAppendValue<Builder> {
441
- const docSegments = [schema.description?.trim()];
442
-
443
- if (ctx.config.includeSourceInDocs) {
444
- docSegments.push(getSourceDocLine(schema));
445
- }
446
-
447
- return docSegments.filter(notNullish).join('\n\n');
448
- }
449
-
450
- protected shouldGenerateTypeDeclaration(ctx: Context, schema: ApiSchema): boolean {
451
- // All named schemas should have its own type declaration
452
- if (!schema.isNameGenerated) {
453
- return true;
454
- }
455
-
456
- // All enum types should have its own type declaration
457
- if (schema.enum !== undefined && schema.enum.length > 0) {
458
- return true;
459
- }
460
-
461
- // All primitive types already exist and do not need its own type declaration
462
- if (
463
- schema.kind !== 'array' &&
464
- schema.kind !== 'combined' &&
465
- schema.kind !== 'multi-type' &&
466
- schema.kind !== 'object' &&
467
- schema.kind !== 'oneOf'
468
- ) {
469
- return false;
470
- }
471
-
472
- // Nullable by oneOf schemas do not need their own type declaration
473
- if (schema.kind === 'oneOf' && schema.oneOf?.length === 2 && schema.oneOf.some((x) => x.kind === 'null')) {
474
- return false;
475
- }
476
-
477
- // Dynamically generated schemas do not have its own type declaration
478
- if (!ctx.data.schemas.some((x) => x.id === schema.id)) {
479
- return false;
480
- }
481
-
482
- // Check if "real" schema
483
- if (getSchemaReference(ctx.schema, DEFAULT_IGNORED_SCHEMA_PROPERTIES) !== ctx.schema) {
484
- return false;
485
- }
486
-
487
- // For all other types, check if the user has enabled inline unnamed schemas
488
- return !ctx.config.inlineUnnamedSchemas;
489
- }
490
-
491
- protected resolveInterfaceSchema(ctx: Context): ApiSchema<'object'> | undefined {
492
- if (
493
- ctx.config.typeDeclaration === 'prefer-interface' &&
494
- (ctx.schema.kind === 'object' || ctx.schema.kind === 'combined')
495
- ) {
496
- return resolveAnyOfAndAllOf(ctx.schema, true);
497
- }
498
- return undefined;
499
- }
500
-
501
- protected getDeclarationTypeName(ctx: Context, schema: ApiSchema): string {
502
- return toCasing(schema.name, ctx.config.typeNameCasing);
503
- }
504
-
505
- protected getDiscriminatorGenericParamName(ctx: Context, schema: ApiSchema): string {
506
- return toCasing(schema.discriminator?.propertyName, ctx.config.genericParamNameCasing);
507
- }
508
-
509
- protected getDiscriminatorTypeName(ctx: Context, schema: ApiSchema): string {
510
- return toCasing(schema.name + '_Discriminator', ctx.config.typeNameCasing);
511
- }
512
-
513
- protected getBaseTypeName(ctx: Context, schema: ApiSchema): string {
514
- return toCasing(schema.name, ctx.config.discriminatorBaseTypeCasing);
515
- }
516
-
517
- protected getInheritedSchemas(ctx: Context, schema: ApiSchema): ApiSchema['inheritedSchemas'] {
518
- return schema.inheritedSchemas
519
- .filter((schema) => this.shouldGenerateTypeDeclaration(ctx, schema) && !schema.isNameGenerated)
520
- .filter((item, index, self) => self.indexOf(item) === index);
521
- }
522
-
523
- protected getFilePath(ctx: Context, schema: ApiSchema): string {
524
- return resolve(
525
- ctx.config.outputDir,
526
- ctx.config.modelsDir,
527
- `${toCasing(schema.name, ctx.config.modelFileNameCasing ?? ctx.config.fileNameCasing)}.ts`,
528
- );
529
- }
530
- }
@@ -1,108 +0,0 @@
1
- import { resolve } from 'node:path';
2
-
3
- import {
4
- type ApiSchema,
5
- type AppendValueGroup,
6
- appendValueGroup,
7
- Factory,
8
- type MaybePromise,
9
- type OpenApiGeneratorContext,
10
- OpenApiSchemasGenerationProviderBase,
11
- } from '@goast/core';
12
-
13
- import { ts } from '../../ast/index.js';
14
- import { TypeScriptFileBuilder } from '../../file-builder.js';
15
- import { DefaultTypeScriptModelGenerator, type TypeScriptModelGenerator } from './model-generator.js';
16
- import {
17
- defaultTypeScriptModelsGeneratorConfig,
18
- type TypeScriptModelGeneratorOutput,
19
- type TypeScriptModelsGeneratorConfig,
20
- type TypeScriptModelsGeneratorContext,
21
- type TypeScriptModelsGeneratorInput,
22
- type TypeScriptModelsGeneratorOutput,
23
- } from './models.js';
24
-
25
- type Input = TypeScriptModelsGeneratorInput;
26
- type Output = TypeScriptModelsGeneratorOutput;
27
- type Config = TypeScriptModelsGeneratorConfig;
28
- type SchemaOutput = TypeScriptModelGeneratorOutput;
29
- type Context = TypeScriptModelsGeneratorContext;
30
-
31
- export class TypeScriptModelsGenerator extends OpenApiSchemasGenerationProviderBase<
32
- Input,
33
- Output,
34
- Config,
35
- SchemaOutput,
36
- Context
37
- > {
38
- private readonly _modelGeneratorFactory: Factory<TypeScriptModelGenerator, []>;
39
-
40
- constructor(modelGeneratorFactory?: Factory<TypeScriptModelGenerator, []>) {
41
- super();
42
- this._modelGeneratorFactory = modelGeneratorFactory ?? Factory.fromValue(new DefaultTypeScriptModelGenerator());
43
- }
44
-
45
- protected override initResult(): Output {
46
- return {
47
- typescript: {
48
- models: {},
49
- indexFiles: { models: undefined },
50
- },
51
- };
52
- }
53
-
54
- protected override buildContext(
55
- context: OpenApiGeneratorContext<TypeScriptModelsGeneratorInput>,
56
- config?: Partial<Config> | undefined,
57
- ): Context {
58
- return this.getProviderContext(context, config, defaultTypeScriptModelsGeneratorConfig);
59
- }
60
-
61
- protected override generateAdditionalFiles(ctx: TypeScriptModelsGeneratorContext): MaybePromise<void> {
62
- ctx.output.typescript.indexFiles.models = this.generateIndexFile(ctx);
63
- }
64
-
65
- protected override generateSchema(ctx: Context, schema: ApiSchema): MaybePromise<SchemaOutput> {
66
- const modelGenerator = this._modelGeneratorFactory.create();
67
- return modelGenerator.generate({
68
- ...ctx,
69
- schema,
70
- });
71
- }
72
-
73
- protected override addSchemaResult(ctx: Context, schema: ApiSchema, result: SchemaOutput): void {
74
- ctx.output.typescript.models[schema.id] = result;
75
- }
76
-
77
- protected generateIndexFile(ctx: Context): string | null {
78
- const filePath = this.getIndexFilePath(ctx);
79
- TypeScriptFileBuilder.tryGenerate({
80
- logName: 'model index file',
81
- filePath,
82
- options: ctx.config,
83
- generator: (b) => b.append(this.getIndexFileContent(ctx)),
84
- });
85
- return filePath;
86
- }
87
-
88
- protected getIndexFilePath(ctx: Context): string | null {
89
- return ctx.config.modelsIndexFile ? resolve(ctx.config.outputDir, ctx.config.modelsIndexFile) : null;
90
- }
91
-
92
- protected getIndexFileContent(ctx: Context): AppendValueGroup<TypeScriptFileBuilder> {
93
- return appendValueGroup(
94
- Object.values(ctx.output.typescript.models).flatMap((x) => {
95
- const { filePath } = x;
96
- if (!filePath) return [];
97
- return [
98
- ts.export(x.component, filePath, {
99
- kind: x.kind === 'type' || x.kind === 'interface' ? 'type-export' : 'export',
100
- }),
101
- ...(x.additionalExports?.map((e) =>
102
- typeof e === 'string' ? ts.export(e, filePath) : ts.export(e.name, filePath, { kind: e.type })
103
- ) ?? []),
104
- ];
105
- }),
106
- );
107
- }
108
- }