@goast/core 0.6.0 → 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 (342) hide show
  1. package/README.md +0 -4
  2. package/dist/mod.d.ts +31 -0
  3. package/{script → dist}/src/ast/node.d.ts +3 -4
  4. package/{esm → dist}/src/ast/node.js +3 -9
  5. package/{esm → dist}/src/codegen/config.d.ts +2 -3
  6. package/{script → dist}/src/codegen/endpoints-generator.d.ts +4 -5
  7. package/{esm → dist}/src/codegen/endpoints-generator.js +1 -1
  8. package/{script → dist}/src/codegen/generator.d.ts +7 -8
  9. package/{esm → dist}/src/codegen/generator.js +4 -21
  10. package/{esm → dist}/src/codegen/internal-utils.d.ts +0 -1
  11. package/{esm → dist}/src/codegen/internal-utils.js +0 -1
  12. package/{script → dist}/src/codegen/schemas-generator.d.ts +4 -5
  13. package/{esm → dist}/src/codegen/schemas-generator.js +1 -2
  14. package/{esm → dist}/src/codegen/services-generator.d.ts +4 -5
  15. package/{esm → dist}/src/codegen/services-generator.js +1 -1
  16. package/{script → dist}/src/codegen/types.d.ts +3 -4
  17. package/dist/src/collect/collector.d.ts +4 -0
  18. package/{esm → dist}/src/collect/collector.js +6 -8
  19. package/{esm → dist}/src/collect/helpers.d.ts +2 -3
  20. package/{script → dist}/src/collect/types.d.ts +2 -3
  21. package/{esm → dist}/src/internal-utils.d.ts +0 -1
  22. package/dist/src/parse/deref-proxy.d.ts +3 -0
  23. package/{esm → dist}/src/parse/deref-proxy.js +7 -21
  24. package/{esm → dist}/src/parse/openapi-types.d.ts +0 -1
  25. package/{esm → dist}/src/parse/parser.d.ts +3 -4
  26. package/{esm → dist}/src/parse/parser.js +7 -20
  27. package/{script → dist}/src/parse/types.d.ts +3 -4
  28. package/{script → dist}/src/transform/api-types.d.ts +3 -4
  29. package/{esm → dist}/src/transform/helpers.d.ts +4 -5
  30. package/{esm → dist}/src/transform/helpers.js +5 -15
  31. package/dist/src/transform/transform-document.d.ts +4 -0
  32. package/{esm → dist}/src/transform/transform-document.js +2 -4
  33. package/{esm → dist}/src/transform/transform-endpoint.d.ts +3 -4
  34. package/{esm → dist}/src/transform/transform-endpoint.js +10 -17
  35. package/dist/src/transform/transform-schema.d.ts +5 -0
  36. package/{esm → dist}/src/transform/transform-schema.js +8 -12
  37. package/dist/src/transform/transformer.d.ts +4 -0
  38. package/{esm → dist}/src/transform/types.d.ts +4 -5
  39. package/{script → dist}/src/utils/action-provider.d.ts +2 -3
  40. package/{esm → dist}/src/utils/action-provider.js +3 -7
  41. package/{esm → dist}/src/utils/api-data.utils.d.ts +1 -2
  42. package/{esm → dist}/src/utils/array.utils.d.ts +0 -1
  43. package/{script → dist}/src/utils/asset-manager.d.ts +0 -1
  44. package/{esm → dist}/src/utils/asset-manager.js +2 -8
  45. package/{esm → dist}/src/utils/class.utils.d.ts +0 -1
  46. package/{esm → dist}/src/utils/class.utils.js +0 -1
  47. package/{script → dist}/src/utils/common.utils.d.ts +1 -2
  48. package/{esm → dist}/src/utils/condition.d.ts +0 -1
  49. package/dist/src/utils/endpoint.utils.d.ts +2 -0
  50. package/{esm → dist}/src/utils/error.utils.d.ts +0 -1
  51. package/{esm → dist}/src/utils/factory.d.ts +2 -3
  52. package/{esm → dist}/src/utils/factory.js +3 -7
  53. package/{esm → dist}/src/utils/file-system.utils.d.ts +2 -3
  54. package/{esm → dist}/src/utils/generator.utils.d.ts +0 -1
  55. package/{esm → dist}/src/utils/object.utils.d.ts +0 -1
  56. package/{esm → dist}/src/utils/object.utils.js +2 -11
  57. package/dist/src/utils/schema-factory.d.ts +41 -0
  58. package/dist/src/utils/schema-factory.js +132 -0
  59. package/{esm → dist}/src/utils/schema.utils.d.ts +2 -3
  60. package/{esm → dist}/src/utils/schema.utils.js +1 -5
  61. package/{esm → dist}/src/utils/source-builder.d.ts +5 -6
  62. package/{esm → dist}/src/utils/source-builder.js +19 -54
  63. package/{script → dist}/src/utils/string-builder/options.d.ts +0 -1
  64. package/{script → dist}/src/utils/string-builder/string-builder.d.ts +2 -3
  65. package/{esm → dist}/src/utils/string-builder/string-builder.js +2 -12
  66. package/{esm → dist}/src/utils/string-builder/utils.d.ts +2 -3
  67. package/{esm → dist}/src/utils/string-builder/utils.js +4 -6
  68. package/{script → dist}/src/utils/string.utils.d.ts +2 -3
  69. package/{esm → dist}/src/utils/string.utils.js +9 -15
  70. package/{esm → dist}/src/utils/string.utils.types.d.ts +0 -1
  71. package/{esm → dist}/src/utils/type.utils.d.ts +0 -1
  72. package/{script → dist}/src/utils/yaml-info.d.ts +0 -1
  73. package/{esm → dist}/src/utils/yaml-info.js +9 -6
  74. package/package.json +23 -16
  75. package/esm/_dnt.shims.d.ts +0 -11
  76. package/esm/_dnt.shims.d.ts.map +0 -1
  77. package/esm/_dnt.shims.js +0 -66
  78. package/esm/mod.d.ts +0 -32
  79. package/esm/mod.d.ts.map +0 -1
  80. package/esm/package.json +0 -3
  81. package/esm/src/ast/node.d.ts +0 -17
  82. package/esm/src/ast/node.d.ts.map +0 -1
  83. package/esm/src/codegen/config.d.ts.map +0 -1
  84. package/esm/src/codegen/endpoints-generator.d.ts +0 -18
  85. package/esm/src/codegen/endpoints-generator.d.ts.map +0 -1
  86. package/esm/src/codegen/generator.d.ts +0 -39
  87. package/esm/src/codegen/generator.d.ts.map +0 -1
  88. package/esm/src/codegen/internal-utils.d.ts.map +0 -1
  89. package/esm/src/codegen/schemas-generator.d.ts +0 -19
  90. package/esm/src/codegen/schemas-generator.d.ts.map +0 -1
  91. package/esm/src/codegen/services-generator.d.ts.map +0 -1
  92. package/esm/src/codegen/types.d.ts +0 -19
  93. package/esm/src/codegen/types.d.ts.map +0 -1
  94. package/esm/src/collect/collector.d.ts +0 -5
  95. package/esm/src/collect/collector.d.ts.map +0 -1
  96. package/esm/src/collect/helpers.d.ts.map +0 -1
  97. package/esm/src/collect/types.d.ts +0 -14
  98. package/esm/src/collect/types.d.ts.map +0 -1
  99. package/esm/src/internal-utils.d.ts.map +0 -1
  100. package/esm/src/parse/deref-proxy.d.ts +0 -4
  101. package/esm/src/parse/deref-proxy.d.ts.map +0 -1
  102. package/esm/src/parse/openapi-types.d.ts.map +0 -1
  103. package/esm/src/parse/parser.d.ts.map +0 -1
  104. package/esm/src/parse/types.d.ts +0 -28
  105. package/esm/src/parse/types.d.ts.map +0 -1
  106. package/esm/src/transform/api-types.d.ts +0 -211
  107. package/esm/src/transform/api-types.d.ts.map +0 -1
  108. package/esm/src/transform/helpers.d.ts.map +0 -1
  109. package/esm/src/transform/transform-document.d.ts +0 -5
  110. package/esm/src/transform/transform-document.d.ts.map +0 -1
  111. package/esm/src/transform/transform-endpoint.d.ts.map +0 -1
  112. package/esm/src/transform/transform-schema.d.ts +0 -6
  113. package/esm/src/transform/transform-schema.d.ts.map +0 -1
  114. package/esm/src/transform/transformer.d.ts +0 -5
  115. package/esm/src/transform/transformer.d.ts.map +0 -1
  116. package/esm/src/transform/types.d.ts.map +0 -1
  117. package/esm/src/utils/action-provider.d.ts +0 -29
  118. package/esm/src/utils/action-provider.d.ts.map +0 -1
  119. package/esm/src/utils/api-data.utils.d.ts.map +0 -1
  120. package/esm/src/utils/array.utils.d.ts.map +0 -1
  121. package/esm/src/utils/asset-manager.d.ts +0 -9
  122. package/esm/src/utils/asset-manager.d.ts.map +0 -1
  123. package/esm/src/utils/class.utils.d.ts.map +0 -1
  124. package/esm/src/utils/common.utils.d.ts +0 -16
  125. package/esm/src/utils/common.utils.d.ts.map +0 -1
  126. package/esm/src/utils/condition.d.ts.map +0 -1
  127. package/esm/src/utils/endpoint.utils.d.ts +0 -3
  128. package/esm/src/utils/endpoint.utils.d.ts.map +0 -1
  129. package/esm/src/utils/error.utils.d.ts.map +0 -1
  130. package/esm/src/utils/factory.d.ts.map +0 -1
  131. package/esm/src/utils/file-system.utils.d.ts.map +0 -1
  132. package/esm/src/utils/generator.utils.d.ts.map +0 -1
  133. package/esm/src/utils/object.utils.d.ts.map +0 -1
  134. package/esm/src/utils/schema.utils.d.ts.map +0 -1
  135. package/esm/src/utils/source-builder.d.ts.map +0 -1
  136. package/esm/src/utils/string-builder/options.d.ts +0 -15
  137. package/esm/src/utils/string-builder/options.d.ts.map +0 -1
  138. package/esm/src/utils/string-builder/string-builder.d.ts +0 -73
  139. package/esm/src/utils/string-builder/string-builder.d.ts.map +0 -1
  140. package/esm/src/utils/string-builder/utils.d.ts.map +0 -1
  141. package/esm/src/utils/string.utils.d.ts +0 -149
  142. package/esm/src/utils/string.utils.d.ts.map +0 -1
  143. package/esm/src/utils/string.utils.types.d.ts.map +0 -1
  144. package/esm/src/utils/type.utils.d.ts.map +0 -1
  145. package/esm/src/utils/yaml-info.d.ts +0 -13
  146. package/esm/src/utils/yaml-info.d.ts.map +0 -1
  147. package/script/_dnt.shims.d.ts +0 -11
  148. package/script/_dnt.shims.d.ts.map +0 -1
  149. package/script/_dnt.shims.js +0 -75
  150. package/script/mod.d.ts +0 -32
  151. package/script/mod.d.ts.map +0 -1
  152. package/script/mod.js +0 -36
  153. package/script/package.json +0 -3
  154. package/script/src/ast/node.d.ts.map +0 -1
  155. package/script/src/ast/node.js +0 -33
  156. package/script/src/codegen/config.d.ts +0 -36
  157. package/script/src/codegen/config.d.ts.map +0 -1
  158. package/script/src/codegen/config.js +0 -12
  159. package/script/src/codegen/endpoints-generator.d.ts.map +0 -1
  160. package/script/src/codegen/endpoints-generator.js +0 -35
  161. package/script/src/codegen/generator.d.ts.map +0 -1
  162. package/script/src/codegen/generator.js +0 -134
  163. package/script/src/codegen/internal-utils.d.ts +0 -2
  164. package/script/src/codegen/internal-utils.d.ts.map +0 -1
  165. package/script/src/codegen/internal-utils.js +0 -9
  166. package/script/src/codegen/schemas-generator.d.ts.map +0 -1
  167. package/script/src/codegen/schemas-generator.js +0 -49
  168. package/script/src/codegen/services-generator.d.ts +0 -18
  169. package/script/src/codegen/services-generator.d.ts.map +0 -1
  170. package/script/src/codegen/services-generator.js +0 -35
  171. package/script/src/codegen/types.d.ts.map +0 -1
  172. package/script/src/codegen/types.js +0 -2
  173. package/script/src/collect/collector.d.ts +0 -5
  174. package/script/src/collect/collector.d.ts.map +0 -1
  175. package/script/src/collect/collector.js +0 -122
  176. package/script/src/collect/helpers.d.ts +0 -5
  177. package/script/src/collect/helpers.d.ts.map +0 -1
  178. package/script/src/collect/helpers.js +0 -37
  179. package/script/src/collect/types.d.ts.map +0 -1
  180. package/script/src/collect/types.js +0 -2
  181. package/script/src/internal-utils.d.ts +0 -2
  182. package/script/src/internal-utils.d.ts.map +0 -1
  183. package/script/src/internal-utils.js +0 -6
  184. package/script/src/parse/deref-proxy.d.ts +0 -4
  185. package/script/src/parse/deref-proxy.d.ts.map +0 -1
  186. package/script/src/parse/deref-proxy.js +0 -71
  187. package/script/src/parse/openapi-types.d.ts +0 -902
  188. package/script/src/parse/openapi-types.d.ts.map +0 -1
  189. package/script/src/parse/openapi-types.js +0 -2
  190. package/script/src/parse/parser.d.ts +0 -18
  191. package/script/src/parse/parser.d.ts.map +0 -1
  192. package/script/src/parse/parser.js +0 -183
  193. package/script/src/parse/types.d.ts.map +0 -1
  194. package/script/src/parse/types.js +0 -5
  195. package/script/src/transform/api-types.d.ts.map +0 -1
  196. package/script/src/transform/api-types.js +0 -2
  197. package/script/src/transform/helpers.d.ts +0 -58
  198. package/script/src/transform/helpers.d.ts.map +0 -1
  199. package/script/src/transform/helpers.js +0 -211
  200. package/script/src/transform/transform-document.d.ts +0 -5
  201. package/script/src/transform/transform-document.d.ts.map +0 -1
  202. package/script/src/transform/transform-document.js +0 -34
  203. package/script/src/transform/transform-endpoint.d.ts +0 -5
  204. package/script/src/transform/transform-endpoint.d.ts.map +0 -1
  205. package/script/src/transform/transform-endpoint.js +0 -273
  206. package/script/src/transform/transform-schema.d.ts +0 -6
  207. package/script/src/transform/transform-schema.d.ts.map +0 -1
  208. package/script/src/transform/transform-schema.js +0 -196
  209. package/script/src/transform/transformer.d.ts +0 -5
  210. package/script/src/transform/transformer.d.ts.map +0 -1
  211. package/script/src/transform/transformer.js +0 -45
  212. package/script/src/transform/types.d.ts +0 -36
  213. package/script/src/transform/types.d.ts.map +0 -1
  214. package/script/src/transform/types.js +0 -6
  215. package/script/src/utils/action-provider.d.ts.map +0 -1
  216. package/script/src/utils/action-provider.js +0 -33
  217. package/script/src/utils/api-data.utils.d.ts +0 -3
  218. package/script/src/utils/api-data.utils.d.ts.map +0 -1
  219. package/script/src/utils/api-data.utils.js +0 -42
  220. package/script/src/utils/array.utils.d.ts +0 -2
  221. package/script/src/utils/array.utils.d.ts.map +0 -1
  222. package/script/src/utils/array.utils.js +0 -10
  223. package/script/src/utils/asset-manager.d.ts.map +0 -1
  224. package/script/src/utils/asset-manager.js +0 -55
  225. package/script/src/utils/class.utils.d.ts +0 -8
  226. package/script/src/utils/class.utils.d.ts.map +0 -1
  227. package/script/src/utils/class.utils.js +0 -33
  228. package/script/src/utils/common.utils.d.ts.map +0 -1
  229. package/script/src/utils/common.utils.js +0 -84
  230. package/script/src/utils/condition.d.ts +0 -4
  231. package/script/src/utils/condition.d.ts.map +0 -1
  232. package/script/src/utils/condition.js +0 -7
  233. package/script/src/utils/endpoint.utils.d.ts +0 -3
  234. package/script/src/utils/endpoint.utils.d.ts.map +0 -1
  235. package/script/src/utils/endpoint.utils.js +0 -11
  236. package/script/src/utils/error.utils.d.ts +0 -2
  237. package/script/src/utils/error.utils.d.ts.map +0 -1
  238. package/script/src/utils/error.utils.js +0 -6
  239. package/script/src/utils/factory.d.ts +0 -21
  240. package/script/src/utils/factory.d.ts.map +0 -1
  241. package/script/src/utils/factory.js +0 -33
  242. package/script/src/utils/file-system.utils.d.ts +0 -11
  243. package/script/src/utils/file-system.utils.d.ts.map +0 -1
  244. package/script/src/utils/file-system.utils.js +0 -79
  245. package/script/src/utils/generator.utils.d.ts +0 -2
  246. package/script/src/utils/generator.utils.d.ts.map +0 -1
  247. package/script/src/utils/generator.utils.js +0 -9
  248. package/script/src/utils/object.utils.d.ts +0 -3
  249. package/script/src/utils/object.utils.d.ts.map +0 -1
  250. package/script/src/utils/object.utils.js +0 -40
  251. package/script/src/utils/schema.utils.d.ts +0 -12
  252. package/script/src/utils/schema.utils.d.ts.map +0 -1
  253. package/script/src/utils/schema.utils.js +0 -206
  254. package/script/src/utils/source-builder.d.ts +0 -236
  255. package/script/src/utils/source-builder.d.ts.map +0 -1
  256. package/script/src/utils/source-builder.js +0 -458
  257. package/script/src/utils/string-builder/options.d.ts.map +0 -1
  258. package/script/src/utils/string-builder/options.js +0 -10
  259. package/script/src/utils/string-builder/string-builder.d.ts.map +0 -1
  260. package/script/src/utils/string-builder/string-builder.js +0 -153
  261. package/script/src/utils/string-builder/utils.d.ts +0 -22
  262. package/script/src/utils/string-builder/utils.d.ts.map +0 -1
  263. package/script/src/utils/string-builder/utils.js +0 -37
  264. package/script/src/utils/string.utils.d.ts.map +0 -1
  265. package/script/src/utils/string.utils.js +0 -382
  266. package/script/src/utils/string.utils.types.d.ts +0 -150
  267. package/script/src/utils/string.utils.types.d.ts.map +0 -1
  268. package/script/src/utils/string.utils.types.js +0 -2
  269. package/script/src/utils/type.utils.d.ts +0 -57
  270. package/script/src/utils/type.utils.d.ts.map +0 -1
  271. package/script/src/utils/type.utils.js +0 -10
  272. package/script/src/utils/yaml-info.d.ts.map +0 -1
  273. package/script/src/utils/yaml-info.js +0 -38
  274. package/src/_dnt.shims.ts +0 -69
  275. package/src/mod.ts +0 -35
  276. package/src/src/ast/node.ts +0 -46
  277. package/src/src/codegen/config.ts +0 -50
  278. package/src/src/codegen/endpoints-generator.ts +0 -72
  279. package/src/src/codegen/generator.ts +0 -192
  280. package/src/src/codegen/internal-utils.ts +0 -6
  281. package/src/src/codegen/schemas-generator.ts +0 -87
  282. package/src/src/codegen/services-generator.ts +0 -77
  283. package/src/src/codegen/types.ts +0 -37
  284. package/src/src/collect/collector.ts +0 -142
  285. package/src/src/collect/helpers.ts +0 -36
  286. package/src/src/collect/types.ts +0 -21
  287. package/src/src/internal-utils.ts +0 -5
  288. package/src/src/parse/deref-proxy.ts +0 -70
  289. package/src/src/parse/openapi-types.ts +0 -953
  290. package/src/src/parse/parser.ts +0 -206
  291. package/src/src/parse/types.ts +0 -28
  292. package/src/src/transform/api-types.ts +0 -259
  293. package/src/src/transform/helpers.ts +0 -251
  294. package/src/src/transform/transform-document.ts +0 -35
  295. package/src/src/transform/transform-endpoint.ts +0 -332
  296. package/src/src/transform/transform-schema.ts +0 -232
  297. package/src/src/transform/transformer.ts +0 -53
  298. package/src/src/transform/types.ts +0 -52
  299. package/src/src/utils/action-provider.ts +0 -58
  300. package/src/src/utils/api-data.utils.ts +0 -48
  301. package/src/src/utils/array.utils.ts +0 -7
  302. package/src/src/utils/asset-manager.ts +0 -51
  303. package/src/src/utils/class.utils.ts +0 -40
  304. package/src/src/utils/common.utils.ts +0 -86
  305. package/src/src/utils/condition.ts +0 -7
  306. package/src/src/utils/endpoint.utils.ts +0 -10
  307. package/src/src/utils/error.utils.ts +0 -3
  308. package/src/src/utils/factory.ts +0 -42
  309. package/src/src/utils/file-system.utils.ts +0 -97
  310. package/src/src/utils/generator.utils.ts +0 -6
  311. package/src/src/utils/object.utils.ts +0 -32
  312. package/src/src/utils/schema.utils.ts +0 -240
  313. package/src/src/utils/source-builder.ts +0 -597
  314. package/src/src/utils/string-builder/options.ts +0 -19
  315. package/src/src/utils/string-builder/string-builder.ts +0 -165
  316. package/src/src/utils/string-builder/utils.ts +0 -69
  317. package/src/src/utils/string.utils.ts +0 -394
  318. package/src/src/utils/string.utils.types.ts +0 -179
  319. package/src/src/utils/type.utils.ts +0 -93
  320. package/src/src/utils/yaml-info.ts +0 -48
  321. /package/{esm → dist}/mod.js +0 -0
  322. /package/{esm → dist}/src/codegen/config.js +0 -0
  323. /package/{esm → dist}/src/codegen/types.js +0 -0
  324. /package/{esm → dist}/src/collect/helpers.js +0 -0
  325. /package/{esm → dist}/src/collect/types.js +0 -0
  326. /package/{esm → dist}/src/internal-utils.js +0 -0
  327. /package/{esm → dist}/src/parse/openapi-types.js +0 -0
  328. /package/{esm → dist}/src/parse/types.js +0 -0
  329. /package/{esm → dist}/src/transform/api-types.js +0 -0
  330. /package/{esm → dist}/src/transform/transformer.js +0 -0
  331. /package/{esm → dist}/src/transform/types.js +0 -0
  332. /package/{esm → dist}/src/utils/api-data.utils.js +0 -0
  333. /package/{esm → dist}/src/utils/array.utils.js +0 -0
  334. /package/{esm → dist}/src/utils/common.utils.js +0 -0
  335. /package/{esm → dist}/src/utils/condition.js +0 -0
  336. /package/{esm → dist}/src/utils/endpoint.utils.js +0 -0
  337. /package/{esm → dist}/src/utils/error.utils.js +0 -0
  338. /package/{esm → dist}/src/utils/file-system.utils.js +0 -0
  339. /package/{esm → dist}/src/utils/generator.utils.js +0 -0
  340. /package/{esm → dist}/src/utils/string-builder/options.js +0 -0
  341. /package/{esm → dist}/src/utils/string.utils.types.js +0 -0
  342. /package/{esm → dist}/src/utils/type.utils.js +0 -0
@@ -1,37 +0,0 @@
1
- import type { ApiData } from '../transform/api-types.js';
2
- import type { MaybePromise } from '../utils/type.utils.js';
3
- import type { OpenApiGeneratorConfig } from './config.js';
4
-
5
- export type AnyConfig = Readonly<Record<string, unknown>>;
6
- export type OpenApiGeneratorInput = Record<string, unknown>;
7
- export type OpenApiGeneratorOutput = Record<string, unknown> | undefined;
8
- export type OpenApiGeneratorContext<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput> = {
9
- data: ApiData;
10
- input: TInput;
11
- config: OpenApiGeneratorConfig;
12
- };
13
-
14
- export type OpenApiGenerationProviderContext<TInput extends OpenApiGeneratorInput, TConfig extends AnyConfig> =
15
- & Omit<
16
- OpenApiGeneratorContext<TInput>,
17
- 'config'
18
- >
19
- & {
20
- config: OpenApiGeneratorConfig & TConfig;
21
- };
22
-
23
- export interface OpenApiGenerationProvider<
24
- TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput,
25
- TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput,
26
- TConfig extends AnyConfig = AnyConfig,
27
- > {
28
- generate(
29
- ...args: Parameters<OpenApiGenerationProviderFn<TInput, TOutput, TConfig>>
30
- ): ReturnType<OpenApiGenerationProviderFn<TInput, TOutput, TConfig>>;
31
- }
32
-
33
- export type OpenApiGenerationProviderFn<
34
- TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput,
35
- TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput,
36
- TConfig extends AnyConfig = AnyConfig,
37
- > = (context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig>) => MaybePromise<TOutput>;
@@ -1,142 +0,0 @@
1
- import type {
2
- OpenApiDocument,
3
- OpenApiHeader,
4
- OpenApiMediaType,
5
- OpenApiParameter,
6
- OpenApiPathItem,
7
- OpenApiRequestBody,
8
- OpenApiResponse,
9
- OpenApiSchema,
10
- } from '../parse/openapi-types.js';
11
- import type { Deref } from '../parse/types.js';
12
- import { collect, collectRecord } from './helpers.js';
13
- import type { OpenApiCollectorData } from './types.js';
14
-
15
- type Collect<T> = Deref<T> | Deref<T>[] | undefined;
16
-
17
- export function collectOpenApi(apis: Deref<OpenApiDocument>[]): OpenApiCollectorData {
18
- const data: OpenApiCollectorData = {
19
- documents: [],
20
- schemas: new Map(),
21
- endpoints: new Map(),
22
- };
23
-
24
- collectDocument(data, apis);
25
-
26
- return data;
27
- }
28
-
29
- const jsonSchemaProperties = ['$id', 'allOf', 'anyOf', 'oneOf', 'enum', 'not', 'properties', 'title', 'type'];
30
-
31
- function collectDocument(data: OpenApiCollectorData, documents: Collect<OpenApiDocument>) {
32
- collect(data, documents, (data, document) => {
33
- data.documents.push(document);
34
- collectPaths(data, document.paths);
35
- collectRecord<Deref<OpenApiSchema>>(data, document.components?.schemas, collectSchema);
36
- collectRecord<Deref<OpenApiSchema>>(data, document.definitions, collectSchema);
37
- collectRecord<Deref<OpenApiParameter>>(data, document.components?.parameters, collectParameter);
38
- collectRecord<Deref<OpenApiParameter>>(data, document.parameters, collectParameter);
39
- collectRecord<Deref<OpenApiRequestBody>>(data, document.components?.requestBodies, collectRequestBody);
40
- collectRecord<Deref<OpenApiResponse>>(data, document.components?.responses, collectResponse);
41
- collectRecord<Deref<OpenApiResponse>>(data, document.responses, collectResponse);
42
- collectRecord<Deref<OpenApiHeader>>(data, document.components?.headers, collectHeader);
43
-
44
- if (Object.keys(document).some((key) => jsonSchemaProperties.includes(key))) {
45
- collectSchema(data, document as Deref<OpenApiSchema>);
46
- }
47
- });
48
- }
49
-
50
- function collectPaths(data: OpenApiCollectorData, paths: Collect<Record<string, OpenApiPathItem>>) {
51
- collect(data, paths, (data, path) => {
52
- collectRecord<Deref<OpenApiPathItem>>(data, path, collectPathItem);
53
- });
54
- }
55
-
56
- function collectPathItem(data: OpenApiCollectorData, pathItems: Collect<OpenApiPathItem>, path: string) {
57
- collect(data, pathItems, (data, pathItem) => {
58
- collectParameter(data, pathItem.parameters);
59
- for (const m of ['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace'] as const) {
60
- const operation = pathItem[m];
61
- if (!operation) continue;
62
- const key = `${operation.$src.file}#${operation.$src.path}`;
63
- if (data.endpoints.has(key)) continue;
64
- data.endpoints.set(key, {
65
- path,
66
- method: m,
67
- pathItem,
68
- operation,
69
- });
70
- collectParameter(data, operation.parameters);
71
- collectRequestBody(data, operation.requestBody);
72
- collectRecord<Deref<OpenApiResponse>>(data, operation.responses, collectResponse);
73
- }
74
- });
75
- }
76
-
77
- function collectSchema(data: OpenApiCollectorData, schemas: Collect<OpenApiSchema>) {
78
- collect(data, schemas, (data, schema) => {
79
- const key = `${schema.$src.file}#${schema.$src.path}`;
80
- if (data.schemas.has(key)) return;
81
- data.schemas.set(key, schema);
82
- collectSchema(data, schema.allOf);
83
- collectSchema(data, schema.anyOf);
84
- collectSchema(data, schema.oneOf);
85
- collectSchema(data, schema.items);
86
- collectSchema(data, schema.not);
87
- collectRecord<Deref<OpenApiSchema>>(data, schema.properties, collectSchema);
88
- collectRecord<Deref<OpenApiSchema>>(data, schema.patternProperties, collectSchema);
89
- collectRecord<Deref<OpenApiSchema>>(data, schema.dependencies, collectSchema);
90
- collectRecord<Deref<OpenApiSchema>>(data, schema.definitions, collectSchema);
91
- if (typeof schema.additionalProperties === 'object') {
92
- collectSchema(data, schema.additionalProperties);
93
- }
94
- if (typeof schema.additionalItems === 'object') {
95
- collectSchema(data, schema.additionalItems);
96
- }
97
- if (typeof schema.discriminator === 'object') {
98
- collectRecord<Deref<OpenApiSchema>>(data, schema.discriminator?.mapping, collectSchema);
99
- }
100
- });
101
- }
102
-
103
- function collectParameter(data: OpenApiCollectorData, parameters: Collect<OpenApiParameter>) {
104
- collect(data, parameters, (data, parameter) => {
105
- collectSchema(data, parameter.schema);
106
- });
107
- }
108
-
109
- function collectMediaType(data: OpenApiCollectorData, mediaTypes: Collect<OpenApiMediaType>) {
110
- collect(data, mediaTypes, (data, mediaType) => {
111
- collectSchema(data, mediaType.schema);
112
- });
113
- }
114
-
115
- function collectRequestBody(data: OpenApiCollectorData, requestBody: Collect<OpenApiRequestBody>) {
116
- collect(data, requestBody, (data, requestBody) => {
117
- collectRecord<Deref<OpenApiMediaType>>(data, requestBody.content, collectMediaType);
118
- });
119
- }
120
-
121
- function isSchema(obj: Record<string, unknown>): obj is Deref<OpenApiSchema> {
122
- return obj && typeof obj === 'object' && obj['type'] !== undefined;
123
- }
124
-
125
- function collectResponse(data: OpenApiCollectorData, responses: Collect<OpenApiResponse>) {
126
- collect(data, responses, (data, responses) => {
127
- collectRecord<Deref<OpenApiMediaType>>(data, responses.content, collectMediaType);
128
- collect(data, responses.headers, (data, header) => {
129
- if (isSchema(header)) {
130
- collectSchema(data, header);
131
- } else {
132
- collectHeader(data, header);
133
- }
134
- });
135
- });
136
- }
137
-
138
- function collectHeader(data: OpenApiCollectorData, headers: Collect<OpenApiHeader>) {
139
- collect(data, headers, (data, headers) => {
140
- collectSchema(data, headers.schema);
141
- });
142
- }
@@ -1,36 +0,0 @@
1
- import { isOpenApiObjectProperty } from '../internal-utils.js';
2
- import type { Nullable } from '../utils/type.utils.js';
3
- import type { OpenApiCollectorData } from './types.js';
4
-
5
- export function collect<T extends Record<`x-${string}`, unknown>>(
6
- data: OpenApiCollectorData,
7
- obj: Nullable<T | Nullable<T>[]>,
8
- func: (data: OpenApiCollectorData, obj: NonNullable<T>) => void,
9
- ) {
10
- if (!obj) return;
11
- if (Array.isArray(obj)) {
12
- for (const o of obj) {
13
- if (!o) continue;
14
- if (o['x-ignore']) continue;
15
- func(data, o);
16
- }
17
- } else {
18
- if (obj['x-ignore']) return;
19
- func(data, obj);
20
- }
21
- }
22
-
23
- export function collectRecord<T extends Record<`x-${string}`, unknown>>(
24
- data: OpenApiCollectorData,
25
- obj: Nullable<Record<string, Nullable<T>>>,
26
- func: (data: OpenApiCollectorData, obj: NonNullable<T>, key: string) => void,
27
- ) {
28
- if (!obj) return;
29
- for (const key in obj) {
30
- if (!isOpenApiObjectProperty(key)) continue;
31
- const value = obj[key];
32
- if (!value) continue;
33
- if (value['x-ignore']) continue;
34
- func(data, value, key);
35
- }
36
- }
@@ -1,21 +0,0 @@
1
- import type {
2
- OpenApiDocument,
3
- OpenApiHttpMethod,
4
- OpenApiOperation,
5
- OpenApiPathItem,
6
- OpenApiSchema,
7
- } from '../parse/openapi-types.js';
8
- import type { Deref } from '../parse/types.js';
9
-
10
- export type OpenApiCollectorEndpointInfo = {
11
- path: string;
12
- method: OpenApiHttpMethod;
13
- pathItem: Deref<OpenApiPathItem>;
14
- operation: Deref<OpenApiOperation>;
15
- };
16
-
17
- export type OpenApiCollectorData = {
18
- documents: Deref<OpenApiDocument>[];
19
- schemas: Map<string, Deref<OpenApiSchema>>;
20
- endpoints: Map<string, OpenApiCollectorEndpointInfo>;
21
- };
@@ -1,5 +0,0 @@
1
- export function isOpenApiObjectProperty<T extends string>(
2
- propertyName: T,
3
- ): propertyName is Exclude<T, `$${string}` | `x-${string}`> {
4
- return !propertyName.startsWith('$') && !propertyName.startsWith('x-');
5
- }
@@ -1,70 +0,0 @@
1
- import { isNullish } from '../utils/common.utils.js';
2
- import type { OpenApiObject } from './openapi-types.js';
3
- import type { Deref, DerefSource } from './types.js';
4
-
5
- export function createDerefProxy<T extends OpenApiObject<string>>(
6
- obj: T,
7
- source: DerefSource<T>,
8
- ref?: Deref<T>,
9
- ): Deref<T> {
10
- return new Proxy(obj, new DerefProxyHandler(source, ref)) as Deref<T>;
11
- }
12
-
13
- const propertiesNotDerivedFromRef: PropertyKey[] = ['title'];
14
-
15
- class DerefProxyHandler<T extends OpenApiObject<string>> implements ProxyHandler<T> {
16
- private readonly _overwrittenValues: Record<PropertyKey, unknown> = {};
17
-
18
- constructor(
19
- private readonly _source: DerefSource<T>,
20
- private _ref?: Deref<T>,
21
- ) {}
22
-
23
- public get(target: T, prop: PropertyKey): unknown {
24
- if (prop === '$ref') {
25
- return this._ref;
26
- } else if (prop === '$src') {
27
- return this._source;
28
- }
29
-
30
- if (this._overwrittenValues[prop] !== undefined) {
31
- return this._overwrittenValues[prop];
32
- }
33
- if ((target as Record<PropertyKey, unknown>)[prop] !== undefined) {
34
- return (target as Record<PropertyKey, unknown>)[prop];
35
- }
36
-
37
- return propertiesNotDerivedFromRef.includes(prop)
38
- ? undefined
39
- : (this._ref as Record<PropertyKey, unknown> | undefined)?.[prop];
40
- }
41
-
42
- public set(_target: T, prop: PropertyKey, value: unknown): boolean {
43
- if (prop === '$ref' && (typeof value === 'object' || typeof value === 'undefined')) {
44
- this._ref = !value ? undefined : (value as Deref<T>);
45
- return true;
46
- }
47
- if (prop === '$src') {
48
- return false;
49
- }
50
-
51
- this._overwrittenValues[prop] = value;
52
- return true;
53
- }
54
-
55
- public has(target: T, prop: PropertyKey): boolean {
56
- return prop in target || (!isNullish(this._ref) && prop in this._ref);
57
- }
58
-
59
- public ownKeys(target: T): ArrayLike<string | symbol> {
60
- return Array.from(
61
- new Set([
62
- ...Object.getOwnPropertyNames(target),
63
- ...Object.getOwnPropertySymbols(target),
64
- ...(!isNullish(this._ref) ? Object.keys(this._ref) : []),
65
- '$ref',
66
- '$src',
67
- ]),
68
- );
69
- }
70
- }