ts-openapi-codegen 2.1.0-beta.1 → 2.1.0-beta.10

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 (520) hide show
  1. package/README.md +27 -934
  2. package/README.rus.md +27 -934
  3. package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.js +40 -24
  4. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts +2 -0
  5. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts.map +1 -0
  6. package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.js +47 -0
  7. package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.js +17 -7
  8. package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.js +17 -7
  9. package/dist/cli/analyzeDiff/analyzeDiff.d.ts +14 -2
  10. package/dist/cli/analyzeDiff/analyzeDiff.d.ts.map +1 -1
  11. package/dist/cli/analyzeDiff/analyzeDiff.js +58 -15
  12. package/dist/cli/analyzeDiff/ciSummary.d.ts +6 -3
  13. package/dist/cli/analyzeDiff/ciSummary.d.ts.map +1 -1
  14. package/dist/cli/analyzeDiff/ciSummary.js +10 -6
  15. package/dist/cli/analyzeDiff/ignoreRules.d.ts +0 -22
  16. package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -1
  17. package/dist/cli/analyzeDiff/ignoreRules.js +3 -25
  18. package/dist/cli/analyzeDiff/miracles.d.ts +0 -54
  19. package/dist/cli/analyzeDiff/miracles.d.ts.map +1 -1
  20. package/dist/cli/analyzeDiff/miracles.js +1 -219
  21. package/dist/cli/analyzeDiff/specParser.d.ts +0 -13
  22. package/dist/cli/analyzeDiff/specParser.d.ts.map +1 -1
  23. package/dist/cli/analyzeDiff/specParser.js +2 -23
  24. package/dist/cli/analyzeDiff/types.d.ts +0 -42
  25. package/dist/cli/analyzeDiff/types.d.ts.map +1 -1
  26. package/dist/cli/analyzeUsage/analyzeUsage.d.ts +4 -0
  27. package/dist/cli/analyzeUsage/analyzeUsage.d.ts.map +1 -0
  28. package/dist/cli/analyzeUsage/analyzeUsage.js +60 -0
  29. package/dist/cli/analyzeUsage/core/Analyzer.d.ts +9 -0
  30. package/dist/cli/analyzeUsage/core/Analyzer.d.ts.map +1 -0
  31. package/dist/cli/analyzeUsage/core/Analyzer.js +29 -0
  32. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts +10 -0
  33. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts.map +1 -0
  34. package/dist/cli/analyzeUsage/core/ProjectContext.js +58 -0
  35. package/dist/cli/analyzeUsage/core/Scanner.d.ts +23 -0
  36. package/dist/cli/analyzeUsage/core/Scanner.d.ts.map +1 -0
  37. package/dist/cli/analyzeUsage/core/Scanner.js +125 -0
  38. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts +14 -0
  39. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts.map +1 -0
  40. package/dist/cli/analyzeUsage/rules/ClientRule.js +86 -0
  41. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts +7 -0
  42. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts.map +1 -0
  43. package/dist/cli/analyzeUsage/rules/CoverageRule.js +55 -0
  44. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts +6 -0
  45. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts.map +1 -0
  46. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.js +63 -0
  47. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts +6 -0
  48. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts.map +1 -0
  49. package/dist/cli/analyzeUsage/rules/ImportRule.js +50 -0
  50. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts +6 -0
  51. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts.map +1 -0
  52. package/dist/cli/analyzeUsage/rules/ModelRule.js +34 -0
  53. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts +6 -0
  54. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts.map +1 -0
  55. package/dist/cli/analyzeUsage/rules/SchemaRule.js +46 -0
  56. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts +15 -0
  57. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts.map +1 -0
  58. package/dist/cli/analyzeUsage/rules/ServiceRule.js +96 -0
  59. package/dist/cli/analyzeUsage/types.d.ts +52 -0
  60. package/dist/cli/analyzeUsage/types.d.ts.map +1 -0
  61. package/dist/cli/analyzeUsage/types.js +2 -0
  62. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts +5 -0
  63. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts.map +1 -0
  64. package/dist/cli/analyzeUsage/utils/fuzzy.js +38 -0
  65. package/dist/cli/analyzeUsage/utils/report.d.ts +16 -0
  66. package/dist/cli/analyzeUsage/utils/report.d.ts.map +1 -0
  67. package/dist/cli/analyzeUsage/utils/report.js +85 -0
  68. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts +2 -0
  69. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts.map +1 -0
  70. package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.js +53 -0
  71. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts +2 -0
  72. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts.map +1 -0
  73. package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.js +52 -0
  74. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts +2 -1
  75. package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -1
  76. package/dist/cli/checkAndUpdateConfig/checkConfig.js +15 -6
  77. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts +2 -1
  78. package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -1
  79. package/dist/cli/checkAndUpdateConfig/updateConfig.js +8 -5
  80. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts +2 -0
  81. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts.map +1 -0
  82. package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.js +20 -0
  83. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts +2 -0
  84. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts.map +1 -0
  85. package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.js +35 -0
  86. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts +2 -0
  87. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts.map +1 -0
  88. package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.js +59 -0
  89. package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -1
  90. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
  91. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +19 -1
  92. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts +6 -0
  93. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts.map +1 -0
  94. package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.js +55 -0
  95. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +1 -1
  96. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -1
  97. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +1 -1
  98. package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.js +18 -9
  99. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts +2 -5
  100. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  101. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +24 -20
  102. package/dist/cli/index.js +45 -9
  103. package/dist/cli/initOpenApiConfig/Types.d.ts +2 -0
  104. package/dist/cli/initOpenApiConfig/Types.d.ts.map +1 -1
  105. package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts +2 -0
  106. package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts.map +1 -0
  107. package/dist/cli/initOpenApiConfig/__tests__/init.test.js +20 -0
  108. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts +2 -0
  109. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts.map +1 -0
  110. package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.js +49 -0
  111. package/dist/cli/initOpenApiConfig/init.d.ts +2 -1
  112. package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
  113. package/dist/cli/initOpenApiConfig/init.js +52 -20
  114. package/dist/cli/initOpenApiConfig/initConfig.d.ts +5 -0
  115. package/dist/cli/initOpenApiConfig/initConfig.d.ts.map +1 -1
  116. package/dist/cli/initOpenApiConfig/initConfig.js +8 -4
  117. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts +3 -2
  118. package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts.map +1 -1
  119. package/dist/cli/initOpenApiConfig/initCustomRequest.js +36 -10
  120. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts +2 -0
  121. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts.map +1 -0
  122. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.js +93 -0
  123. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts +2 -0
  124. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts.map +1 -0
  125. package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.js +45 -0
  126. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts +2 -0
  127. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts.map +1 -0
  128. package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.js +61 -0
  129. package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts +6 -12
  130. package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts.map +1 -1
  131. package/dist/cli/initOpenApiConfig/utils/buildConfig.js +24 -19
  132. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.d.ts.map +1 -1
  133. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.js +2 -0
  134. package/dist/cli/interactive/constants.d.ts +0 -4
  135. package/dist/cli/interactive/constants.d.ts.map +1 -1
  136. package/dist/cli/interactive/constants.js +1 -5
  137. package/dist/cli/previewChanges/previewChanges.d.ts +2 -1
  138. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  139. package/dist/cli/previewChanges/previewChanges.js +8 -8
  140. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts +2 -0
  141. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts.map +1 -0
  142. package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.js +52 -0
  143. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts +2 -0
  144. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts.map +1 -0
  145. package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.js +43 -0
  146. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts +2 -0
  147. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts.map +1 -0
  148. package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.js +32 -0
  149. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts +2 -0
  150. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts.map +1 -0
  151. package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.js +68 -0
  152. package/dist/cli/previewChanges/utils/formatDiff.d.ts.map +1 -1
  153. package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
  154. package/dist/cli/previewChanges/utils/updateOutputPaths.js +5 -12
  155. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts +2 -0
  156. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts.map +1 -0
  157. package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.js +36 -0
  158. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts +2 -0
  159. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts.map +1 -0
  160. package/dist/cli/schemas/__tests__/generateOptionsSchema.test.js +59 -0
  161. package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts +2 -0
  162. package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts.map +1 -0
  163. package/dist/cli/schemas/__tests__/initOptionsSchema.test.js +43 -0
  164. package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts +2 -0
  165. package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts.map +1 -0
  166. package/dist/cli/schemas/__tests__/previewChangesSchema.test.js +31 -0
  167. package/dist/cli/schemas/analyzeUsage.d.ts +13 -0
  168. package/dist/cli/schemas/analyzeUsage.d.ts.map +1 -0
  169. package/dist/cli/schemas/analyzeUsage.js +41 -0
  170. package/dist/cli/schemas/generate.d.ts +10 -2
  171. package/dist/cli/schemas/generate.d.ts.map +1 -1
  172. package/dist/cli/schemas/generate.js +7 -2
  173. package/dist/cli/schemas/index.d.ts +2 -2
  174. package/dist/cli/schemas/index.d.ts.map +1 -1
  175. package/dist/cli/schemas/index.js +1 -1
  176. package/dist/cli/schemas/init.d.ts +10 -0
  177. package/dist/cli/schemas/init.d.ts.map +1 -1
  178. package/dist/cli/schemas/init.js +3 -1
  179. package/dist/cli/types.d.ts +6 -0
  180. package/dist/cli/types.d.ts.map +1 -0
  181. package/dist/cli/types.js +2 -0
  182. package/dist/common/Consts.d.ts +1 -0
  183. package/dist/common/Consts.d.ts.map +1 -1
  184. package/dist/common/Consts.js +7 -3
  185. package/dist/common/Logger.d.ts.map +1 -1
  186. package/dist/common/Logger.js +3 -3
  187. package/dist/common/LoggerMessages.d.ts +71 -12
  188. package/dist/common/LoggerMessages.d.ts.map +1 -1
  189. package/dist/common/LoggerMessages.js +76 -18
  190. package/dist/common/TEslintFixOptions.d.ts +20 -0
  191. package/dist/common/TEslintFixOptions.d.ts.map +1 -0
  192. package/dist/common/TEslintFixOptions.js +15 -0
  193. package/dist/common/TRawOptions.d.ts.map +1 -1
  194. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
  195. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +2 -4
  196. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
  197. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +1 -1
  198. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
  199. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +1 -2
  200. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  201. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +1 -1
  202. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  203. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +1 -1
  204. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
  205. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +10 -2
  206. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -1
  207. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +15 -5
  208. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +18 -4
  209. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
  210. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +7 -1
  211. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  212. package/dist/common/VersionedSchema/CommonSchemas.js +4 -2
  213. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +1 -1
  214. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  215. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +1 -1
  216. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +1 -1
  217. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  218. package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.d.ts.map +1 -1
  219. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +2 -2
  220. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  221. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +2 -2
  222. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +1 -1
  223. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +1 -1
  224. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
  225. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +7 -1
  226. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +4 -16
  227. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -1
  228. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts +1 -1
  229. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts.map +1 -1
  230. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.js +1 -1
  231. package/dist/common/VersionedSchema/Utils/createTrivialMigration.d.ts.map +1 -1
  232. package/dist/common/VersionedSchema/Utils/createTrivialMigration.js +1 -1
  233. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  234. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +4 -6
  235. package/dist/common/VersionedSchema/Utils/getLatestVersionFromMigrationPlans.d.ts.map +1 -1
  236. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  237. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +6 -8
  238. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.d.ts.map +1 -1
  239. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.js +1 -1
  240. package/dist/common/VersionedSchema/Utils/validateAndSuggestKeyCorrections.d.ts.map +1 -1
  241. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +1 -1
  242. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -1
  243. package/dist/common/utils/__tests__/eslintFix.test.js +25 -67
  244. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts +2 -0
  245. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts.map +1 -0
  246. package/dist/common/utils/__tests__/extractEslintFixOptions.test.js +28 -0
  247. package/dist/common/utils/__tests__/format.test.js +26 -17
  248. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts +2 -0
  249. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts.map +1 -0
  250. package/dist/common/utils/__tests__/prepareTempTsConfig.test.js +78 -0
  251. package/dist/common/utils/codegenTempDir.d.ts +20 -0
  252. package/dist/common/utils/codegenTempDir.d.ts.map +1 -0
  253. package/dist/common/utils/codegenTempDir.js +42 -0
  254. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
  255. package/dist/common/utils/convertArrayToObject.js +3 -8
  256. package/dist/common/utils/eslintFix.d.ts +48 -4
  257. package/dist/common/utils/eslintFix.d.ts.map +1 -1
  258. package/dist/common/utils/eslintFix.js +121 -15
  259. package/dist/common/utils/format.d.ts +1 -1
  260. package/dist/common/utils/format.d.ts.map +1 -1
  261. package/dist/common/utils/format.js +23 -11
  262. package/dist/common/utils/jsonPath.d.ts.map +1 -1
  263. package/dist/common/utils/prepareTempEslintConfig.d.ts +18 -0
  264. package/dist/common/utils/prepareTempEslintConfig.d.ts.map +1 -0
  265. package/dist/common/utils/prepareTempEslintConfig.js +55 -0
  266. package/dist/common/utils/prepareTempTsConfig.d.ts +23 -0
  267. package/dist/common/utils/prepareTempTsConfig.d.ts.map +1 -0
  268. package/dist/common/utils/prepareTempTsConfig.js +105 -0
  269. package/dist/core/Context.d.ts.map +1 -1
  270. package/dist/core/Context.js +2 -6
  271. package/dist/core/OpenApiClient.d.ts +27 -1
  272. package/dist/core/OpenApiClient.d.ts.map +1 -1
  273. package/dist/core/OpenApiClient.js +259 -19
  274. package/dist/core/WriteClient.d.ts +84 -17
  275. package/dist/core/WriteClient.d.ts.map +1 -1
  276. package/dist/core/WriteClient.js +96 -22
  277. package/dist/core/__tests__/WriteClient.test.js +2 -1
  278. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  279. package/dist/core/api/v2/parser/getOperationResponses.js +1 -3
  280. package/dist/core/api/v2/parser/getServiceName.d.ts +1 -1
  281. package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
  282. package/dist/core/api/v3/parser/getOperationParameters.d.ts.map +1 -1
  283. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  284. package/dist/core/api/v3/parser/getOperationResponses.js +1 -3
  285. package/dist/core/api/v3/parser/getServiceName.d.ts +1 -1
  286. package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -1
  287. package/dist/core/governance/evaluateGovernanceRules.js +1 -3
  288. package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -1
  289. package/dist/core/governance/loadGovernanceConfig.js +2 -4
  290. package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -1
  291. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -1
  292. package/dist/core/plugins/getBuiltinPlugins.d.ts.map +1 -1
  293. package/dist/core/plugins/loadGeneratorPlugins.d.ts.map +1 -1
  294. package/dist/core/plugins/loadGeneratorPlugins.js +1 -1
  295. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +79 -21
  296. package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +20 -1
  297. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +58 -6
  298. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -1
  299. package/dist/core/semanticDiff/analyzeOpenApiDiff.js +47 -19
  300. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +8 -3
  301. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -1
  302. package/dist/core/semanticDiff/semanticDiffReportSchema.js +139 -56
  303. package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -1
  304. package/dist/core/types/Consts.js +1 -1
  305. package/dist/core/types/DiffReport.model.d.ts +101 -0
  306. package/dist/core/types/DiffReport.model.d.ts.map +1 -0
  307. package/dist/core/types/DiffReport.model.js +5 -0
  308. package/dist/core/types/base/ClientArtifacts.model.d.ts +3 -3
  309. package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
  310. package/dist/core/types/base/ExportedModel.model.d.ts +1 -1
  311. package/dist/core/types/base/ExportedModel.model.d.ts.map +1 -1
  312. package/dist/core/types/base/ExportedService.model.d.ts.map +1 -1
  313. package/dist/core/types/base/OutputPaths.model.d.ts.map +1 -1
  314. package/dist/core/types/base/PrefixArtifacts.model.d.ts.map +1 -1
  315. package/dist/core/types/base/PropertyGroup.model.d.ts +1 -1
  316. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts +1 -1
  317. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts.map +1 -1
  318. package/dist/core/types/base/Templates.model.d.ts +1 -0
  319. package/dist/core/types/base/Templates.model.d.ts.map +1 -1
  320. package/dist/core/types/shared/Client.model.d.ts +1 -1
  321. package/dist/core/types/shared/Client.model.d.ts.map +1 -1
  322. package/dist/core/types/shared/Model.model.d.ts +37 -1
  323. package/dist/core/types/shared/Model.model.d.ts.map +1 -1
  324. package/dist/core/utils/GenerationCache.d.ts +18 -0
  325. package/dist/core/utils/GenerationCache.d.ts.map +1 -0
  326. package/dist/core/utils/GenerationCache.js +41 -0
  327. package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
  328. package/dist/core/utils/__mocks__/templates.js +1 -0
  329. package/dist/core/utils/__tests__/GenerationCache.test.d.ts +2 -0
  330. package/dist/core/utils/__tests__/GenerationCache.test.d.ts.map +1 -0
  331. package/dist/core/utils/__tests__/GenerationCache.test.js +37 -0
  332. package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +182 -0
  333. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts +2 -0
  334. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts.map +1 -0
  335. package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.js +77 -0
  336. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts +2 -0
  337. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts.map +1 -0
  338. package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.js +159 -0
  339. package/dist/core/utils/__tests__/loadDiffReport.test.d.ts +2 -0
  340. package/dist/core/utils/__tests__/loadDiffReport.test.d.ts.map +1 -0
  341. package/dist/core/utils/__tests__/loadDiffReport.test.js +246 -0
  342. package/dist/core/utils/__tests__/modelHelpers.test.js +27 -9
  343. package/dist/core/utils/__tests__/postProcessModelImports.test.js +1 -4
  344. package/dist/core/utils/__tests__/postProcessServiceImports.test.js +1 -4
  345. package/dist/core/utils/__tests__/prepareDtoModels.test.js +168 -1
  346. package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +27 -0
  347. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts +2 -0
  348. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts.map +1 -0
  349. package/dist/core/utils/__tests__/resolveClassesModeTypes.test.js +111 -0
  350. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts +2 -0
  351. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts.map +1 -0
  352. package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.js +68 -0
  353. package/dist/core/utils/__tests__/serviceHelpers.test.js +10 -11
  354. package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +10 -27
  355. package/dist/core/utils/__tests__/templateRendering.test.d.ts +2 -0
  356. package/dist/core/utils/__tests__/templateRendering.test.d.ts.map +1 -0
  357. package/dist/core/utils/__tests__/templateRendering.test.js +190 -0
  358. package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts +2 -0
  359. package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts.map +1 -0
  360. package/dist/core/utils/__tests__/writeFileIfChanged.test.js +30 -0
  361. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts +2 -0
  362. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts.map +1 -0
  363. package/dist/core/utils/adapters/__tests__/semanticToStructural.test.js +63 -0
  364. package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts +10 -0
  365. package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts.map +1 -0
  366. package/dist/core/utils/adapters/extractMiraclesFromSemantic.js +13 -0
  367. package/dist/core/utils/adapters/index.d.ts +3 -0
  368. package/dist/core/utils/adapters/index.d.ts.map +1 -0
  369. package/dist/core/utils/adapters/index.js +6 -0
  370. package/dist/core/utils/adapters/semanticToStructural.d.ts +12 -0
  371. package/dist/core/utils/adapters/semanticToStructural.d.ts.map +1 -0
  372. package/dist/core/utils/adapters/semanticToStructural.js +36 -0
  373. package/dist/core/utils/applyDiffReportToClient.d.ts +13 -1
  374. package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -1
  375. package/dist/core/utils/applyDiffReportToClient.js +189 -109
  376. package/dist/core/utils/areEqual.d.ts +1 -1
  377. package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts +25 -0
  378. package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts.map +1 -0
  379. package/dist/core/utils/buildMiraclesFromSemanticChanges.js +146 -0
  380. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts +23 -0
  381. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts.map +1 -0
  382. package/dist/core/utils/expandOpenApiRefsForSemanticDiff.js +163 -0
  383. package/dist/core/utils/getOpenApiSpec.d.ts +6 -0
  384. package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
  385. package/dist/core/utils/getOpenApiSpec.js +6 -0
  386. package/dist/core/utils/getOperationErrors.d.ts +2 -2
  387. package/dist/core/utils/getOperationErrors.d.ts.map +1 -1
  388. package/dist/core/utils/getOperationResults.d.ts +1 -1
  389. package/dist/core/utils/getPropertyGroupSimple.d.ts.map +1 -1
  390. package/dist/core/utils/getPropertyGroupSimple.js +1 -3
  391. package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
  392. package/dist/core/utils/loadDiffReport.d.ts +11 -30
  393. package/dist/core/utils/loadDiffReport.d.ts.map +1 -1
  394. package/dist/core/utils/loadDiffReport.js +75 -9
  395. package/dist/core/utils/loadSemanticOpenApiSpec.d.ts +15 -0
  396. package/dist/core/utils/loadSemanticOpenApiSpec.d.ts.map +1 -0
  397. package/dist/core/utils/loadSemanticOpenApiSpec.js +61 -0
  398. package/dist/core/utils/modelHelpers.d.ts +13 -5
  399. package/dist/core/utils/modelHelpers.d.ts.map +1 -1
  400. package/dist/core/utils/modelHelpers.js +28 -23
  401. package/dist/core/utils/normalizeString.d.ts.map +1 -1
  402. package/dist/core/utils/normalizeString.js +1 -5
  403. package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
  404. package/dist/core/utils/postProcessServiceImports.js +1 -3
  405. package/dist/core/utils/precompileTemplates.js +4 -2
  406. package/dist/core/utils/prepareAlias.d.ts +1 -1
  407. package/dist/core/utils/prepareDtoModels.d.ts +5 -0
  408. package/dist/core/utils/prepareDtoModels.d.ts.map +1 -1
  409. package/dist/core/utils/prepareDtoModels.js +57 -20
  410. package/dist/core/utils/registerHandlebarHelpers.d.ts +1 -0
  411. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  412. package/dist/core/utils/registerHandlebarHelpers.js +3 -0
  413. package/dist/core/utils/registerHandlebarTemplates.d.ts +1 -0
  414. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  415. package/dist/core/utils/registerHandlebarTemplates.js +2 -0
  416. package/dist/core/utils/resolveClassesModeTypes.d.ts +8 -0
  417. package/dist/core/utils/resolveClassesModeTypes.d.ts.map +1 -0
  418. package/dist/core/utils/resolveClassesModeTypes.js +77 -0
  419. package/dist/core/utils/semanticChangesToDiffEntries.d.ts +28 -0
  420. package/dist/core/utils/semanticChangesToDiffEntries.d.ts.map +1 -0
  421. package/dist/core/utils/semanticChangesToDiffEntries.js +98 -0
  422. package/dist/core/utils/semanticPointerToJsonPath.d.ts +7 -0
  423. package/dist/core/utils/semanticPointerToJsonPath.d.ts.map +1 -0
  424. package/dist/core/utils/semanticPointerToJsonPath.js +67 -0
  425. package/dist/core/utils/serviceHelpers.d.ts +6 -7
  426. package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
  427. package/dist/core/utils/serviceHelpers.js +8 -25
  428. package/dist/core/utils/sortModelByName.d.ts +1 -1
  429. package/dist/core/utils/validateRawOptions.js +2 -2
  430. package/dist/core/utils/writeClientCore.d.ts +2 -0
  431. package/dist/core/utils/writeClientCore.d.ts.map +1 -1
  432. package/dist/core/utils/writeClientCore.js +43 -21
  433. package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
  434. package/dist/core/utils/writeClientCoreIndex.js +14 -4
  435. package/dist/core/utils/writeClientExecutor.d.ts +1 -3
  436. package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
  437. package/dist/core/utils/writeClientExecutor.js +6 -11
  438. package/dist/core/utils/writeClientFullIndex.js +4 -4
  439. package/dist/core/utils/writeClientModels.d.ts +1 -2
  440. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  441. package/dist/core/utils/writeClientModels.js +14 -16
  442. package/dist/core/utils/writeClientModelsIndex.d.ts +1 -1
  443. package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
  444. package/dist/core/utils/writeClientModelsIndex.js +14 -4
  445. package/dist/core/utils/writeClientSchemas.d.ts +1 -3
  446. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  447. package/dist/core/utils/writeClientSchemas.js +9 -14
  448. package/dist/core/utils/writeClientSchemasIndex.d.ts.map +1 -1
  449. package/dist/core/utils/writeClientSchemasIndex.js +14 -4
  450. package/dist/core/utils/writeClientServices.d.ts +15 -16
  451. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  452. package/dist/core/utils/writeClientServices.js +12 -19
  453. package/dist/core/utils/writeClientServicesIndex.d.ts.map +1 -1
  454. package/dist/core/utils/writeClientServicesIndex.js +14 -4
  455. package/dist/core/utils/writeClientSimpleIndex.js +4 -4
  456. package/dist/core/utils/writeFileIfChanged.d.ts +3 -0
  457. package/dist/core/utils/writeFileIfChanged.d.ts.map +1 -0
  458. package/dist/core/utils/writeFileIfChanged.js +22 -0
  459. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts +8 -0
  460. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts.map +1 -0
  461. package/dist/templatesCompiled/cli/customCreateExecutorAdapter.js +18 -0
  462. package/dist/templatesCompiled/cli/customRequest.js +7 -7
  463. package/dist/templatesCompiled/cli/customRequestExecutor.js +7 -7
  464. package/dist/templatesCompiled/client/core/ApiError.js +1 -1
  465. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts +0 -6
  466. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -1
  467. package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +3 -22
  468. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts +11 -0
  469. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts.map +1 -0
  470. package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.js +28 -0
  471. package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts +2 -0
  472. package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts.map +1 -1
  473. package/dist/templatesCompiled/client/core/executor/requestExecutor.js +8 -2
  474. package/dist/templatesCompiled/client/core/functions/catchErrors.js +1 -1
  475. package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.js +1 -1
  476. package/dist/templatesCompiled/client/core/interceptors/interceptors.js +1 -1
  477. package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +1 -1
  478. package/dist/templatesCompiled/client/exportClient.d.ts +0 -4
  479. package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
  480. package/dist/templatesCompiled/client/exportClient.js +9 -45
  481. package/dist/templatesCompiled/client/exportModels.d.ts +17 -11
  482. package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -1
  483. package/dist/templatesCompiled/client/exportModels.js +96 -49
  484. package/dist/templatesCompiled/client/exportService.d.ts +13 -10
  485. package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
  486. package/dist/templatesCompiled/client/exportService.js +95 -67
  487. package/dist/templatesCompiled/client/indexCore.js +4 -4
  488. package/dist/templatesCompiled/client/indexFull.js +8 -8
  489. package/dist/templatesCompiled/client/indexSimple.js +2 -2
  490. package/dist/templatesCompiled/client/partials/header.d.ts +1 -0
  491. package/dist/templatesCompiled/client/partials/header.d.ts.map +1 -1
  492. package/dist/templatesCompiled/client/partials/header.js +11 -2
  493. package/dist/test/helpers/silenceLoggers.d.ts +11 -0
  494. package/dist/test/helpers/silenceLoggers.d.ts.map +1 -0
  495. package/dist/test/helpers/silenceLoggers.js +88 -0
  496. package/package.json +132 -136
  497. package/dist/cli/analyzeDiff/buildLegacyReport.d.ts +0 -17
  498. package/dist/cli/analyzeDiff/buildLegacyReport.d.ts.map +0 -1
  499. package/dist/cli/analyzeDiff/buildLegacyReport.js +0 -54
  500. package/dist/cli/analyzeDiff/diffEngine.d.ts +0 -54
  501. package/dist/cli/analyzeDiff/diffEngine.d.ts.map +0 -1
  502. package/dist/cli/analyzeDiff/diffEngine.js +0 -209
  503. package/dist/cli/analyzeDiff/logLegacyReport.d.ts +0 -6
  504. package/dist/cli/analyzeDiff/logLegacyReport.d.ts.map +0 -1
  505. package/dist/cli/analyzeDiff/logLegacyReport.js +0 -29
  506. package/dist/cli/analyzeDiff/report.d.ts +0 -3
  507. package/dist/cli/analyzeDiff/report.d.ts.map +0 -1
  508. package/dist/cli/analyzeDiff/report.js +0 -7
  509. package/dist/cli/analyzeDiff/writeLegacyReport.d.ts +0 -6
  510. package/dist/cli/analyzeDiff/writeLegacyReport.d.ts.map +0 -1
  511. package/dist/cli/analyzeDiff/writeLegacyReport.js +0 -21
  512. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts +0 -4
  513. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts.map +0 -1
  514. package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.js +0 -21
  515. package/dist/common/utils/normalizeObject.d.ts +0 -2
  516. package/dist/common/utils/normalizeObject.d.ts.map +0 -1
  517. package/dist/common/utils/normalizeObject.js +0 -63
  518. package/dist/core/utils/appendUniqueLinesToFile.d.ts +0 -2
  519. package/dist/core/utils/appendUniqueLinesToFile.d.ts.map +0 -1
  520. package/dist/core/utils/appendUniqueLinesToFile.js +0 -24
@@ -1,25 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.writeClientServices = writeClientServices;
4
- const eslintFix_1 = require("../../common/utils/eslintFix");
5
- const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
4
+ const LoggerMessages_1 = require("../../common/LoggerMessages");
6
5
  const format_1 = require("../../common/utils/format");
7
6
  const pathHelpers_1 = require("../../common/utils/pathHelpers");
8
7
  /**
9
- * Generate Services using the Handlebar template and write to disk.
10
- * @param services Array of Services to write
11
- * @param templates The loaded handlebar templates
12
- * @param outputServicePath Folder options for generating the core, models, and service part
13
- * @param httpClient The selected httpClient (fetch, xhr or node)
14
- * @param useUnionTypes Use union types instead of enums
15
- * @param useOptions Use options or arguments functions
8
+ * Генерирует сервисы по Handlebars-шаблону и записывает их на диск.
9
+ * @param options параметры записи сервисов
16
10
  */
17
11
  async function writeClientServices(options) {
18
- const { services, templates, outputPaths, httpClient, useUnionTypes, useOptions, useCancelableRequest, useProjectPrettier, useEslintFix } = options;
19
- this.logger.info('Recording of service files begins');
12
+ const { services, templates, outputPaths, httpClient, useUnionTypes, useOptions, useCancelableRequest, modelsMode, prettierConfigPath } = options;
13
+ this.logger.info(LoggerMessages_1.LOGGER_MESSAGES.WRITE_CLIENT.SERVICES_START);
20
14
  for (const service of services) {
21
15
  const file = (0, pathHelpers_1.resolveHelper)(outputPaths.outputServices, `${service.name}.ts`);
22
- this.logger.info(`The recording of the file data begins: ${file}`);
16
+ this.logger.info(LoggerMessages_1.LOGGER_MESSAGES.WRITE_CLIENT.DATA_WRITE_START(file));
23
17
  const templateResult = templates.exports.service({
24
18
  ...service,
25
19
  httpClient,
@@ -28,13 +22,12 @@ async function writeClientServices(options) {
28
22
  outputCore: outputPaths.outputCore,
29
23
  outputModels: outputPaths.outputModels,
30
24
  useCancelableRequest,
25
+ modelsMode,
31
26
  });
32
- const formattedValue = await (0, format_1.format)(templateResult, undefined, useProjectPrettier);
33
- await fileSystemHelpers_1.fileSystemHelpers.writeFile(file, formattedValue);
34
- if (useEslintFix) {
35
- await (0, eslintFix_1.eslintFix)(file);
36
- }
37
- this.logger.info(`File recording completed: ${file}`);
27
+ const formattedValue = await (0, format_1.format)(templateResult, undefined, prettierConfigPath);
28
+ await this.writeOutputFile(file, formattedValue);
29
+ this.registerLintTarget(file, outputPaths.outputServices);
30
+ this.logger.info(LoggerMessages_1.LOGGER_MESSAGES.WRITE_CLIENT.FILE_RECORDED(file));
38
31
  }
39
- this.logger.info('Service file recording completed successfully');
32
+ this.logger.info(LoggerMessages_1.LOGGER_MESSAGES.WRITE_CLIENT.SERVICES_FINISH);
40
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"writeClientServicesIndex.d.ts","sourceRoot":"","sources":["../../../src/core/utils/writeClientServicesIndex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,UAAU,aAAa;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,iBAcvF"}
1
+ {"version":3,"file":"writeClientServicesIndex.d.ts","sourceRoot":"","sources":["../../../src/core/utils/writeClientServicesIndex.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,UAAU,aAAa;IACnB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,iBAuBvF"}
@@ -1,16 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.writeClientServicesIndex = writeClientServicesIndex;
4
+ const LoggerMessages_1 = require("../../common/LoggerMessages");
5
+ const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
4
6
  const pathHelpers_1 = require("../../common/utils/pathHelpers");
5
- const appendUniqueLinesToFile_1 = require("./appendUniqueLinesToFile");
6
7
  async function writeClientServicesIndex(options) {
7
8
  const { services, templates, outputServices, useSeparatedIndexes } = options;
8
9
  if (!useSeparatedIndexes) {
9
10
  return;
10
11
  }
11
12
  const filePath = (0, pathHelpers_1.resolveHelper)(outputServices, 'index.ts');
12
- this.logger.info(`Data has been written to a file: ${filePath}`);
13
+ this.logger.info(LoggerMessages_1.LOGGER_MESSAGES.WRITE_CLIENT.INDEX_DATA_WRITTEN(filePath));
13
14
  const content = templates.indexes.services({ services });
14
- await (0, appendUniqueLinesToFile_1.appendUniqueLinesToFile)(filePath, content);
15
- this.logger.info(`Writing to the file is completed: ${filePath}`);
15
+ let existingContent = '';
16
+ const fileExists = await fileSystemHelpers_1.fileSystemHelpers.exists(filePath);
17
+ if (fileExists) {
18
+ existingContent = await fileSystemHelpers_1.fileSystemHelpers.readFile(filePath, 'utf8');
19
+ }
20
+ const existingLines = existingContent.split(/\r?\n/).filter(Boolean);
21
+ const dataLines = content.split(/\r?\n/).filter(Boolean);
22
+ const linesToAdd = dataLines.filter(line => !existingLines.includes(line.trim()));
23
+ const updatedContent = linesToAdd.length > 0 ? existingContent + linesToAdd.join('\n') + '\n' : existingContent;
24
+ await this.writeOutputFile(filePath, updatedContent);
25
+ this.logger.info(LoggerMessages_1.LOGGER_MESSAGES.WRITE_CLIENT.INDEX_WRITE_COMPLETED(filePath));
16
26
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.writeClientSimpleIndex = writeClientSimpleIndex;
4
- const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
4
+ const LoggerMessages_1 = require("../../common/LoggerMessages");
5
5
  const pathHelpers_1 = require("../../common/utils/pathHelpers");
6
6
  /**
7
7
  * Generate the OpenAPI client index file using the Handlebar template and write it to disk.
@@ -11,12 +11,12 @@ const pathHelpers_1 = require("../../common/utils/pathHelpers");
11
11
  async function writeClientSimpleIndex(options) {
12
12
  const { templates, outputPath, core, models, schemas, services } = options;
13
13
  const resolvePathIndex = (0, pathHelpers_1.resolveHelper)(outputPath, 'index.ts');
14
- this.logger.info(`The recording of the file data begins: ${resolvePathIndex}`);
15
- await fileSystemHelpers_1.fileSystemHelpers.writeFile(resolvePathIndex, templates.indexes.simple({
14
+ this.logger.info(LoggerMessages_1.LOGGER_MESSAGES.WRITE_CLIENT.DATA_WRITE_START(resolvePathIndex));
15
+ await this.writeOutputFile(resolvePathIndex, templates.indexes.simple({
16
16
  core,
17
17
  models,
18
18
  schemas,
19
19
  services,
20
20
  }));
21
- this.logger.info(`File recording completed: ${resolvePathIndex}`);
21
+ this.logger.info(LoggerMessages_1.LOGGER_MESSAGES.WRITE_CLIENT.FILE_RECORDED(resolvePathIndex));
22
22
  }
@@ -0,0 +1,3 @@
1
+ export type WriteFileIfChangedResult = 'written' | 'unchanged';
2
+ export declare function writeFileIfChanged(filePath: string, nextContent: string): Promise<WriteFileIfChangedResult>;
3
+ //# sourceMappingURL=writeFileIfChanged.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeFileIfChanged.d.ts","sourceRoot":"","sources":["../../../src/core/utils/writeFileIfChanged.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,WAAW,CAAC;AAE/D,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAiBjH"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writeFileIfChanged = writeFileIfChanged;
4
+ const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
5
+ async function writeFileIfChanged(filePath, nextContent) {
6
+ try {
7
+ const fileExists = await fileSystemHelpers_1.fileSystemHelpers.exists(filePath);
8
+ if (fileExists) {
9
+ const currentContent = await fileSystemHelpers_1.fileSystemHelpers.readFile(filePath, 'utf8');
10
+ if (currentContent === nextContent) {
11
+ return 'unchanged';
12
+ }
13
+ }
14
+ }
15
+ catch (error) {
16
+ if (error?.code !== 'ENOENT') {
17
+ throw error;
18
+ }
19
+ }
20
+ await fileSystemHelpers_1.fileSystemHelpers.writeFile(filePath, nextContent);
21
+ return 'written';
22
+ }
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ compiler: (string | number)[];
3
+ main: (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
4
+ usePartial: boolean;
5
+ useData: boolean;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=customCreateExecutorAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customCreateExecutorAdapter.d.ts","sourceRoot":"","sources":["../../../src/templatesCompiled/cli/customCreateExecutorAdapter.ts"],"names":[],"mappings":";;;;;;AAMA,wBAUmC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // This is an automatically generated file for the hbs template.
4
+ // You don't need to change it, run npm run build:hbs to update it.
5
+ /* istanbul ignore file */
6
+ /* tslint: disable */
7
+ /* eslint: disable */
8
+ // @ts-nocheck
9
+ exports.default = { "compiler": [8, ">= 4.3.0"], "main": function (container, depth0, helpers, partials, data) {
10
+ var stack1, lookupProperty = container.lookupProperty || function (parent, propertyName) {
11
+ if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
12
+ return parent[propertyName];
13
+ }
14
+ return undefined;
15
+ };
16
+ return ((stack1 = container.invokePartial(lookupProperty(partials, "header"), depth0, { "name": "header", "data": data, "helpers": helpers, "partials": partials, "decorators": container.decorators })) != null ? stack1 : "")
17
+ + "\nimport type { ApiResult } from './ApiResult';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { TOpenAPIConfig } from './OpenAPI';\nimport { OpenAPI } from './OpenAPI';\nimport type { RequestExecutor, RequestConfig } from './executor/requestExecutor';\nimport { request as transportRequest, requestRaw as transportRequestRaw } from './request';\n\n/**\n * Typed per-request options mapped into ApiRequestOptions via mapOptions.\n */\nexport interface MyCustomOptions {\n timeout?: number;\n}\n\nfunction toApiRequestOptions(config: RequestConfig): ApiRequestOptions {\n return {\n method: config.method as ApiRequestOptions['method'],\n path: config.path,\n headers: config.headers,\n query: config.query,\n body: config.body,\n cookies: config.cookies,\n mediaType: config.requestMediaType,\n responseType: config.responseType,\n };\n}\n\n/**\n * Custom createExecutorAdapter for openapi.config.json \"customExecutorPath\".\n * Must export a function named createExecutorAdapter.\n */\nexport function createExecutorAdapter<TRequestOptions extends MyCustomOptions = MyCustomOptions>(\n openApiConfig: TOpenAPIConfig = OpenAPI,\n mapOptions?: (options: TRequestOptions | undefined) => Partial<ApiRequestOptions>,\n): RequestExecutor<TRequestOptions> {\n const toMergedOptions = (config: RequestConfig, options?: TRequestOptions): ApiRequestOptions => ({\n ...toApiRequestOptions(config),\n ...(mapOptions ? mapOptions(options) : {}),\n });\n\n return {\n request<TResponse>(config: RequestConfig, options?: TRequestOptions): Promise<TResponse> {\n return transportRequest<TResponse>(toMergedOptions(config, options), openApiConfig);\n },\n\n requestRaw<TResponse>(config: RequestConfig, options?: TRequestOptions): Promise<ApiResult<TResponse>> {\n return transportRequestRaw<TResponse>(toMergedOptions(config, options), openApiConfig);\n },\n };\n}\n";
18
+ }, "usePartial": true, "useData": true };
@@ -7,11 +7,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  /* eslint: disable */
8
8
  // @ts-nocheck
9
9
  exports.default = { "1": function (container, depth0, helpers, partials, data) {
10
- return "import type { CancelablePromise } from './CancelablePromise';\n";
10
+ return "import { CancelablePromise } from './CancelablePromise';\n";
11
11
  }, "3": function (container, depth0, helpers, partials, data) {
12
- return "export function request<T>(options: ApiRequestOptions, config: TOpenAPIConfig): CancelablePromise<T> {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const abortController = new AbortController();\n \n if (options?.timeout) {\n const timeoutId = setTimeout(() => abortController.abort(), options.timeout);\n onCancel(() => clearTimeout(timeoutId));\n }\n \n onCancel(() => abortController.abort());\n \n if (onCancel.isCancelled) {\n return;\n }\n \n // Ваша пользовательская логика запросов здесь\n const response = await fetch(config.url, {\n method: config.method,\n headers: config.headers,\n body: config.body ? JSON.stringify(config.body) : undefined,\n signal: abortController.signal,\n });\n \n if (!response.ok) {\n throw new Error(`Request failed: ${response.statusText}`);\n }\n \n const data = await response.json();\n resolve(data);\n } catch (error) {\n reject(error);\n }\n });\n};\n";
12
+ return "export function request<T>(options: ApiRequestOptions, config: TOpenAPIConfig): CancelablePromise<T> {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const abortController = new AbortController();\n onCancel(() => abortController.abort());\n\n const url = buildUrl(options, config);\n const response = await fetch(url, {\n method: options.method,\n headers: options.headers as HeadersInit,\n body: options.body ? JSON.stringify(options.body) : undefined,\n signal: abortController.signal,\n });\n\n const body = await response.json().catch(() => null);\n\n if (!response.ok) {\n throw new ApiError({\n status: response.status,\n message: response.statusText,\n body,\n request: toRequestConfig(options),\n });\n }\n\n resolve(body as T);\n } catch (error) {\n reject(error);\n }\n });\n}\n\nexport function requestRaw<T>(options: ApiRequestOptions, config: TOpenAPIConfig): CancelablePromise<ApiResult<T>> {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const abortController = new AbortController();\n onCancel(() => abortController.abort());\n\n const url = buildUrl(options, config);\n const response = await fetch(url, {\n method: options.method,\n headers: options.headers as HeadersInit,\n body: options.body ? JSON.stringify(options.body) : undefined,\n signal: abortController.signal,\n });\n\n const body = await response.json().catch(() => null);\n const result: ApiResult<T> = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: body as T,\n };\n\n if (!response.ok) {\n throw new ApiError({\n status: response.status,\n message: response.statusText,\n body,\n request: toRequestConfig(options),\n });\n }\n\n resolve(result);\n } catch (error) {\n reject(error);\n }\n });\n}\n";
13
13
  }, "5": function (container, depth0, helpers, partials, data) {
14
- return "export async function request<T>(options: ApiRequestOptions, config: TOpenAPIConfig): Promise<T> {\n return new Promise(async (resolve, reject) => {\n try {\n const url = getUrl(options, config);\n const response = await sendRequest(options, url, config);\n const responseBody = getResponseBody(response);\n const responseHeader = getResponseHeader(response, options.responseHeader);\n\n const result: ApiResult = {\n url,\n ok: isSuccess(response.status),\n status: response.status,\n statusText: response.statusText,\n body: responseHeader || responseBody,\n };\n\n catchErrors(options, result);\n resolve(result.body);\n } catch (error) {\n reject(error);\n }\n });\n}\n";
14
+ return "export async function request<T>(options: ApiRequestOptions, config: TOpenAPIConfig): Promise<T> {\n const result = await requestRaw<T>(options, config);\n return result.body;\n}\n\nexport async function requestRaw<T>(options: ApiRequestOptions, config: TOpenAPIConfig): Promise<ApiResult<T>> {\n const url = buildUrl(options, config);\n const response = await fetch(url, {\n method: options.method,\n headers: options.headers as HeadersInit,\n body: options.body ? JSON.stringify(options.body) : undefined,\n });\n\n const body = await response.json().catch(() => null);\n const result: ApiResult<T> = {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body: body as T,\n };\n\n if (!response.ok) {\n throw new ApiError({\n status: response.status,\n message: response.statusText,\n body,\n request: toRequestConfig(options),\n });\n }\n\n return result;\n}\n";
15
15
  }, "compiler": [8, ">= 4.3.0"], "main": function (container, depth0, helpers, partials, data) {
16
16
  var stack1, alias1 = depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function (parent, propertyName) {
17
17
  if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
@@ -20,8 +20,8 @@ exports.default = { "1": function (container, depth0, helpers, partials, data) {
20
20
  return undefined;
21
21
  };
22
22
  return ((stack1 = container.invokePartial(lookupProperty(partials, "header"), depth0, { "name": "header", "data": data, "helpers": helpers, "partials": partials, "decorators": container.decorators })) != null ? stack1 : "")
23
- + "\nimport type { RequestExecutor, RequestConfig } from './request-executor';\n"
24
- + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(depth0, "useCancelableRequest"), { "name": "if", "hash": {}, "fn": container.program(1, data, 0), "inverse": container.noop, "data": data, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 6, "column": 7 } } })) != null ? stack1 : "")
25
- + "\n/**\n * Определите свой тип опций (опционально)\n * Измените этот интерфейс в соответствии с вашими потребностями\n */\ninterface MyCustomOptions {\n timeout?: number;\n retries?: number;\n}\n\n/**\n * Создайте пользовательский executor\n * Реализуйте свою логику запросов здесь\n *\n * @example Пример использования:\n * \n * import { createLegacyExecutor } from './generated/core/legacy-request-adapter';\n * import { SimpleService } from './generated/services/SimpleService';\n *\n * const executorWithOptions = createLegacyExecutor<MyCustomOptions>(OpenAPI, (options) => {\n * // Мапьте ваши пользовательские опции в ApiRequestOptions при необходимости\n * return {\n * // Добавьте любые поля ApiRequestOptions на основе options\n * };\n * });\n * \n * const simpleService = new SimpleService(executorWithOptions);\n * await simpleService.getCallWithoutParametersAndResponse();\n */\n"
26
- + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(depth0, "useCancelableRequest"), { "name": "if", "hash": {}, "fn": container.program(3, data, 0), "inverse": container.program(5, data, 0), "data": data, "loc": { "start": { "line": 36, "column": 0 }, "end": { "line": 96, "column": 7 } } })) != null ? stack1 : "");
23
+ + "\nimport { ApiError } from './ApiError';\nimport type { ApiRequestOptions } from './ApiRequestOptions';\nimport type { ApiResult } from './ApiResult';\nimport type { TOpenAPIConfig } from './OpenAPI';\n"
24
+ + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(depth0, "useCancelableRequest"), { "name": "if", "hash": {}, "fn": container.program(1, data, 0), "inverse": container.noop, "data": data, "loc": { "start": { "line": 7, "column": 0 }, "end": { "line": 9, "column": 7 } } })) != null ? stack1 : "")
25
+ + "\n/**\n * Custom HTTP transport (legacy signature).\n * This file is copied to core/request.ts during generation.\n *\n * After generation, wrap it with createLegacyRequestAdapter from core/executor/legacyRequestAdapter.ts\n * or set \"request\" in openapi.config.json createExecutorAdapter maps RequestConfig automatically.\n */\nfunction buildUrl(options: ApiRequestOptions, config: TOpenAPIConfig): string {\n const path = options.path.replace('{api-version}', config.VERSION);\n return `${config.BASE}${path}`;\n}\n\nfunction toRequestConfig(options: ApiRequestOptions): { method: string; path: string } {\n return { method: options.method, path: options.path };\n}\n\n"
26
+ + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(depth0, "useCancelableRequest"), { "name": "if", "hash": {}, "fn": container.program(3, data, 0), "inverse": container.program(5, data, 0), "data": data, "loc": { "start": { "line": 27, "column": 0 }, "end": { "line": 132, "column": 7 } } })) != null ? stack1 : "");
27
27
  }, "usePartial": true, "useData": true };
@@ -7,11 +7,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  /* eslint: disable */
8
8
  // @ts-nocheck
9
9
  exports.default = { "1": function (container, depth0, helpers, partials, data) {
10
- return "import type { CancelablePromise } from './CancelablePromise';\n";
10
+ return "import { CancelablePromise } from './CancelablePromise';\n";
11
11
  }, "3": function (container, depth0, helpers, partials, data) {
12
- return "export const customExecutor: RequestExecutor<MyCustomOptions> = {\n async request<TResponse>(config: RequestConfig, options?: MyCustomOptions): CancelablePromise<TResponse> {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const abortController = new AbortController();\n \n if (options?.timeout) {\n const timeoutId = setTimeout(() => abortController.abort(), options.timeout);\n onCancel(() => clearTimeout(timeoutId));\n }\n \n onCancel(() => abortController.abort());\n \n if (onCancel.isCancelled) {\n return;\n }\n \n // Ваша пользовательская логика запросов здесь\n const response = await fetch(config.url, {\n method: config.method,\n headers: config.headers,\n body: config.body ? JSON.stringify(config.body) : undefined,\n signal: abortController.signal,\n });\n \n if (!response.ok) {\n throw new Error(`Request failed: ${response.statusText}`);\n }\n \n const data = await response.json();\n resolve(data);\n } catch (error) {\n reject(error);\n }\n });\n },\n};\n";
12
+ return "export const customExecutor: RequestExecutor<MyCustomOptions> = {\n request<TResponse>(config: RequestConfig, options?: MyCustomOptions): CancelablePromise<TResponse> {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const abortController = new AbortController();\n if (options?.timeout) {\n const timeoutId = setTimeout(() => abortController.abort(), options.timeout);\n onCancel(() => clearTimeout(timeoutId));\n }\n onCancel(() => abortController.abort());\n\n const response = await fetch(buildUrl(config), {\n method: config.method,\n headers: config.headers,\n body: config.body ? JSON.stringify(config.body) : undefined,\n signal: abortController.signal,\n });\n\n if (!response.ok) {\n throw new Error(`Request failed: ${response.status} ${response.statusText}`);\n }\n\n resolve((await response.json()) as TResponse);\n } catch (error) {\n reject(error);\n }\n });\n },\n\n requestRaw<TResponse>(config: RequestConfig, options?: MyCustomOptions): CancelablePromise<ApiResult<TResponse>> {\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n try {\n const abortController = new AbortController();\n if (options?.timeout) {\n const timeoutId = setTimeout(() => abortController.abort(), options.timeout);\n onCancel(() => clearTimeout(timeoutId));\n }\n onCancel(() => abortController.abort());\n\n const url = buildUrl(config);\n const response = await fetch(url, {\n method: config.method,\n headers: config.headers,\n body: config.body ? JSON.stringify(config.body) : undefined,\n signal: abortController.signal,\n });\n\n const body = (await response.json().catch(() => null)) as TResponse;\n resolve({\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body,\n });\n } catch (error) {\n reject(error);\n }\n });\n },\n};\n";
13
13
  }, "5": function (container, depth0, helpers, partials, data) {
14
- return "export const customExecutor: RequestExecutor<MyCustomOptions> = {\n async request<TResponse>(config: RequestConfig, options?: MyCustomOptions): Promise<TResponse> {\n // Ваша пользовательская логика запросов здесь\n const response = await fetch(config.url, {\n method: config.method,\n headers: config.headers,\n body: config.body ? JSON.stringify(config.body) : undefined,\n signal: options?.timeout ? AbortSignal.timeout(options.timeout) : undefined,\n });\n \n if (!response.ok) {\n throw new Error(`Request failed: ${response.statusText}`);\n }\n \n return response.json();\n },\n};\n";
14
+ return "export const customExecutor: RequestExecutor<MyCustomOptions> = {\n async request<TResponse>(config: RequestConfig, options?: MyCustomOptions): Promise<TResponse> {\n const response = await fetch(buildUrl(config), {\n method: config.method,\n headers: config.headers,\n body: config.body ? JSON.stringify(config.body) : undefined,\n signal: options?.timeout ? AbortSignal.timeout(options.timeout) : undefined,\n });\n\n if (!response.ok) {\n throw new Error(`Request failed: ${response.status} ${response.statusText}`);\n }\n\n return response.json() as Promise<TResponse>;\n },\n\n async requestRaw<TResponse>(config: RequestConfig, options?: MyCustomOptions): Promise<ApiResult<TResponse>> {\n const url = buildUrl(config);\n const response = await fetch(url, {\n method: config.method,\n headers: config.headers,\n body: config.body ? JSON.stringify(config.body) : undefined,\n signal: options?.timeout ? AbortSignal.timeout(options.timeout) : undefined,\n });\n\n const body = (await response.json().catch(() => null)) as TResponse;\n return {\n url,\n ok: response.ok,\n status: response.status,\n statusText: response.statusText,\n body,\n };\n },\n};\n";
15
15
  }, "compiler": [8, ">= 4.3.0"], "main": function (container, depth0, helpers, partials, data) {
16
16
  var stack1, alias1 = depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function (parent, propertyName) {
17
17
  if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
@@ -20,8 +20,8 @@ exports.default = { "1": function (container, depth0, helpers, partials, data) {
20
20
  return undefined;
21
21
  };
22
22
  return ((stack1 = container.invokePartial(lookupProperty(partials, "header"), depth0, { "name": "header", "data": data, "helpers": helpers, "partials": partials, "decorators": container.decorators })) != null ? stack1 : "")
23
- + "\nimport type { RequestExecutor, RequestConfig } from './request-executor';\n"
24
- + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(depth0, "useCancelableRequest"), { "name": "if", "hash": {}, "fn": container.program(1, data, 0), "inverse": container.noop, "data": data, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 6, "column": 7 } } })) != null ? stack1 : "")
25
- + "\n/**\n * Определите свой тип опций (опционально)\n * Измените этот интерфейс в соответствии с вашими потребностями\n */\ninterface MyCustomOptions {\n timeout?: number;\n retries?: number;\n}\n\n/**\n * Создайте пользовательский executor\n * Реализуйте свою логику запросов здесь\n *\n * @example Пример использования:\n * \n * import { SimpleService } from './generated/services/SimpleService';\n * \n * const simpleService = new SimpleService<MyCustomOptions>(customExecutor);\n * await simpleService.getCallWithoutParametersAndResponse({ timeout: 5000, retries: 3 });\n */\n"
26
- + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(depth0, "useCancelableRequest"), { "name": "if", "hash": {}, "fn": container.program(3, data, 0), "inverse": container.program(5, data, 0), "data": data, "loc": { "start": { "line": 28, "column": 0 }, "end": { "line": 84, "column": 7 } } })) != null ? stack1 : "");
23
+ + "\nimport type { ApiResult } from './ApiResult';\nimport type { TOpenAPIConfig } from './OpenAPI';\nimport { OpenAPI } from './OpenAPI';\nimport type { RequestExecutor, RequestConfig } from './executor/requestExecutor';\n"
24
+ + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(depth0, "useCancelableRequest"), { "name": "if", "hash": {}, "fn": container.program(1, data, 0), "inverse": container.noop, "data": data, "loc": { "start": { "line": 7, "column": 0 }, "end": { "line": 9, "column": 7 } } })) != null ? stack1 : "")
25
+ + "\n/**\n * Typed per-request options (customize as needed).\n */\nexport interface MyCustomOptions {\n timeout?: number;\n retries?: number;\n}\n\nfunction buildUrl(config: RequestConfig, openApiConfig: TOpenAPIConfig = OpenAPI): string {\n const path = config.path.replace('{api-version}', openApiConfig.VERSION);\n return `${openApiConfig.BASE}${path}`;\n}\n\n/**\n * Custom RequestExecutor for direct service injection:\n * const service = new SimpleService<MyCustomOptions>(customExecutor);\n *\n * For createClient integration use customExecutorPath with createExecutorAdapter scaffold instead.\n */\n"
26
+ + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(depth0, "useCancelableRequest"), { "name": "if", "hash": {}, "fn": container.program(3, data, 0), "inverse": container.program(5, data, 0), "data": data, "loc": { "start": { "line": 30, "column": 0 }, "end": { "line": 128, "column": 7 } } })) != null ? stack1 : "");
27
27
  }, "usePartial": true, "useData": true };
@@ -14,5 +14,5 @@ exports.default = { "compiler": [8, ">= 4.3.0"], "main": function (container, de
14
14
  return undefined;
15
15
  };
16
16
  return ((stack1 = container.invokePartial(lookupProperty(partials, "header"), depth0, { "name": "header", "data": data, "helpers": helpers, "partials": partials, "decorators": container.decorators })) != null ? stack1 : "")
17
- + "\nimport { RequestConfig } from './executor/requestExecutor';\n\nexport class ApiError<TBody = unknown> extends Error {\n readonly status: number;\n readonly body?: TBody;\n readonly headers?: Record<string, string>;\n readonly request: RequestConfig;\n\n constructor(params: { status: number; message: string; body?: TBody; headers?: Record<string, string>; request: RequestConfig }) {\n super(params.message);\n this.name = 'ApiError';\n this.status = params.status;\n this.body = params.body;\n this.headers = params.headers;\n this.request = params.request;\n }\n}\n";
17
+ + "\nimport type { RequestConfig } from './executor/requestExecutor';\n\nexport class ApiError<TBody = unknown> extends Error {\n readonly status: number;\n readonly body?: TBody;\n readonly headers?: Record<string, string>;\n readonly request: RequestConfig;\n\n constructor(params: { status: number; message: string; body?: TBody; headers?: Record<string, string>; request: RequestConfig }) {\n super(params.message);\n this.name = 'ApiError';\n this.status = params.status;\n this.body = params.body;\n this.headers = params.headers;\n this.request = params.request;\n }\n}\n";
18
18
  }, "usePartial": true, "useData": true };
@@ -1,10 +1,4 @@
1
1
  declare const _default: {
2
- "1": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
3
- "3": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
4
- "5": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
5
- "7": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
6
- "9": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
7
- "11": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
8
2
  compiler: (string | number)[];
9
3
  main: (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
10
4
  usePartial: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"createExecutorAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/templatesCompiled/client/core/executor/createExecutorAdapter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,wBA6BmC"}
1
+ {"version":3,"file":"createExecutorAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/templatesCompiled/client/core/executor/createExecutorAdapter.ts"],"names":[],"mappings":";;;;;;AAMA,wBAUmC"}
@@ -6,32 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  /* tslint: disable */
7
7
  /* eslint: disable */
8
8
  // @ts-nocheck
9
- exports.default = { "1": function (container, depth0, helpers, partials, data) {
10
- return "import type { ApiRequestOptions } from '../ApiRequestOptions';\nimport type { TOpenAPIConfig } from '../OpenAPI';\nimport { OpenAPI } from '../OpenAPI';\n";
11
- }, "3": function (container, depth0, helpers, partials, data) {
12
- return "import { request as __request } from '../request';\n";
13
- }, "5": function (container, depth0, helpers, partials, data) {
14
- return "import { request as __request, requestRaw as __requestRaw } from '../request';\n";
15
- }, "7": function (container, depth0, helpers, partials, data) {
16
- return " openApiConfig: TOpenAPIConfig = OpenAPI,\n mapOptions?: (options: TRequestOptions | undefined) => Partial<ApiRequestOptions>,\n";
17
- }, "9": function (container, depth0, helpers, partials, data) {
18
- return " requestRaw<TResponse>(config: RequestConfig, options?: TRequestOptions): Promise<ApiResult<TResponse>> {\n return __request(config, options) as Promise<ApiResult<TResponse>>;\n },\n request<TResponse>(config: RequestConfig, options?: TRequestOptions): Promise<TResponse> {\n return __request(config, options) as Promise<TResponse>;\n },\n";
19
- }, "11": function (container, depth0, helpers, partials, data) {
20
- return " requestRaw<TResponse>(config: RequestConfig, options?: TRequestOptions): Promise<ApiResult<TResponse>> {\n const baseOptions: ApiRequestOptions = {\n method: config.method as ApiRequestOptions['method'],\n path: config.path,\n headers: config.headers,\n query: config.query,\n body: config.body,\n cookies: config.cookies,\n mediaType: config.requestMediaType,\n responseType: config.responseType,\n };\n\n const mergedOptions: ApiRequestOptions = {\n ...baseOptions,\n ...(mapOptions ? mapOptions(options) : {}),\n };\n\n return __requestRaw<TResponse>(mergedOptions, openApiConfig);\n },\n request<TResponse>(config: RequestConfig, options?: TRequestOptions): Promise<TResponse> {\n const baseOptions: ApiRequestOptions = {\n method: config.method as ApiRequestOptions['method'],\n path: config.path,\n headers: config.headers,\n query: config.query,\n body: config.body,\n cookies: config.cookies,\n mediaType: config.requestMediaType,\n responseType: config.responseType,\n };\n\n const mergedOptions: ApiRequestOptions = {\n ...baseOptions,\n ...(mapOptions ? mapOptions(options) : {}),\n };\n\n return __request<TResponse>(mergedOptions, openApiConfig);\n },\n";
21
- }, "compiler": [8, ">= 4.3.0"], "main": function (container, depth0, helpers, partials, data) {
22
- var stack1, alias1 = depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function (parent, propertyName) {
9
+ exports.default = { "compiler": [8, ">= 4.3.0"], "main": function (container, depth0, helpers, partials, data) {
10
+ var stack1, lookupProperty = container.lookupProperty || function (parent, propertyName) {
23
11
  if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
24
12
  return parent[propertyName];
25
13
  }
26
14
  return undefined;
27
15
  };
28
16
  return ((stack1 = container.invokePartial(lookupProperty(partials, "header"), depth0, { "name": "header", "data": data, "helpers": helpers, "partials": partials, "decorators": container.decorators })) != null ? stack1 : "")
29
- + "\nimport type { ApiResult } from '../ApiResult';\nimport type { RequestExecutor, RequestConfig } from './requestExecutor';\n"
30
- + ((stack1 = lookupProperty(helpers, "unless").call(alias1, lookupProperty(lookupProperty(data, "root"), "useCustomRequest"), { "name": "unless", "hash": {}, "fn": container.program(1, data, 0), "inverse": container.noop, "data": data, "loc": { "start": { "line": 5, "column": 0 }, "end": { "line": 9, "column": 11 } } })) != null ? stack1 : "")
31
- + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(lookupProperty(data, "root"), "useCustomRequest"), { "name": "if", "hash": {}, "fn": container.program(3, data, 0), "inverse": container.program(5, data, 0), "data": data, "loc": { "start": { "line": 10, "column": 0 }, "end": { "line": 14, "column": 7 } } })) != null ? stack1 : "")
32
- + "\nexport function createExecutorAdapter<TRequestOptions extends Record<string, any>>(\n"
33
- + ((stack1 = lookupProperty(helpers, "unless").call(alias1, lookupProperty(lookupProperty(data, "root"), "useCustomRequest"), { "name": "unless", "hash": {}, "fn": container.program(7, data, 0), "inverse": container.noop, "data": data, "loc": { "start": { "line": 17, "column": 0 }, "end": { "line": 20, "column": 11 } } })) != null ? stack1 : "")
34
- + "): RequestExecutor<TRequestOptions> {\n return {\n"
35
- + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(lookupProperty(data, "root"), "useCustomRequest"), { "name": "if", "hash": {}, "fn": container.program(9, data, 0), "inverse": container.program(11, data, 0), "data": data, "loc": { "start": { "line": 23, "column": 8 }, "end": { "line": 69, "column": 15 } } })) != null ? stack1 : "")
36
- + " };\n}\n";
17
+ + "\nimport type { ApiResult } from '../ApiResult';\nimport type { RequestExecutor, RequestConfig } from './requestExecutor';\nimport type { ApiRequestOptions } from '../ApiRequestOptions';\nimport type { TOpenAPIConfig } from '../OpenAPI';\nimport { OpenAPI } from '../OpenAPI';\nimport { request as __request, requestRaw as __requestRaw } from '../request';\n\nfunction toApiRequestOptions(config: RequestConfig): ApiRequestOptions {\n return {\n method: config.method as ApiRequestOptions['method'],\n path: config.path,\n headers: config.headers,\n query: config.query,\n body: config.body,\n cookies: config.cookies,\n mediaType: config.requestMediaType,\n responseType: config.responseType,\n };\n}\n\n/**\n * Creates the default RequestExecutor bridging RequestConfig to the HTTP transport.\n *\n * @param openApiConfig - Runtime OpenAPI settings (BASE, TOKEN, HEADERS, etc.)\n * @param mapOptions - Maps typed per-request options (TRequestOptions) into transport-specific ApiRequestOptions\n */\nexport function createExecutorAdapter<TRequestOptions extends Record<string, any>>(\n openApiConfig: TOpenAPIConfig = OpenAPI,\n mapOptions?: (options: TRequestOptions | undefined) => Partial<ApiRequestOptions>,\n): RequestExecutor<TRequestOptions> {\n const toMergedOptions = (config: RequestConfig, options?: TRequestOptions): ApiRequestOptions => ({\n ...toApiRequestOptions(config),\n ...(mapOptions ? mapOptions(options) : {}),\n });\n\n return {\n requestRaw<TResponse>(config: RequestConfig, options?: TRequestOptions): Promise<ApiResult<TResponse>> {\n return __requestRaw<TResponse>(toMergedOptions(config, options), openApiConfig);\n },\n request<TResponse>(config: RequestConfig, options?: TRequestOptions): Promise<TResponse> {\n return __request<TResponse>(toMergedOptions(config, options), openApiConfig);\n },\n };\n}\n";
37
18
  }, "usePartial": true, "useData": true };
@@ -0,0 +1,11 @@
1
+ declare const _default: {
2
+ "1": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
3
+ "3": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
4
+ "5": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
5
+ compiler: (string | number)[];
6
+ main: (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
7
+ usePartial: boolean;
8
+ useData: boolean;
9
+ };
10
+ export default _default;
11
+ //# sourceMappingURL=legacyRequestAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyRequestAdapter.d.ts","sourceRoot":"","sources":["../../../../../src/templatesCompiled/client/core/executor/legacyRequestAdapter.ts"],"names":[],"mappings":";;;;;;;;;AAMA,wBAoBmC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // This is an automatically generated file for the hbs template.
4
+ // You don't need to change it, run npm run build:hbs to update it.
5
+ /* istanbul ignore file */
6
+ /* tslint: disable */
7
+ /* eslint: disable */
8
+ // @ts-nocheck
9
+ exports.default = { "1": function (container, depth0, helpers, partials, data) {
10
+ return "import { requestRaw as legacyRequestRaw } from '../request';\n";
11
+ }, "3": function (container, depth0, helpers, partials, data) {
12
+ return " return legacyRequestRaw<TResponse>(toMergedOptions(config, options), openApiConfig);\n";
13
+ }, "5": function (container, depth0, helpers, partials, data) {
14
+ return " return legacyRequest<TResponse>(toMergedOptions(config, options), openApiConfig).then((body) => ({\n url: `${openApiConfig.BASE}${config.path}`,\n ok: true,\n status: 200,\n statusText: 'OK',\n body: body as TResponse,\n }));\n";
15
+ }, "compiler": [8, ">= 4.3.0"], "main": function (container, depth0, helpers, partials, data) {
16
+ var stack1, alias1 = depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty = container.lookupProperty || function (parent, propertyName) {
17
+ if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
18
+ return parent[propertyName];
19
+ }
20
+ return undefined;
21
+ };
22
+ return ((stack1 = container.invokePartial(lookupProperty(partials, "header"), depth0, { "name": "header", "data": data, "helpers": helpers, "partials": partials, "decorators": container.decorators })) != null ? stack1 : "")
23
+ + "\nimport type { ApiResult } from '../ApiResult';\nimport type { ApiRequestOptions } from '../ApiRequestOptions';\nimport type { TOpenAPIConfig } from '../OpenAPI';\nimport { OpenAPI } from '../OpenAPI';\nimport { request as legacyRequest } from '../request';\n"
24
+ + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(lookupProperty(data, "root"), "useCustomRequestRaw"), { "name": "if", "hash": {}, "fn": container.program(1, data, 0), "inverse": container.noop, "data": data, "loc": { "start": { "line": 8, "column": 0 }, "end": { "line": 10, "column": 7 } } })) != null ? stack1 : "")
25
+ + "import type { RequestExecutor, RequestConfig } from './requestExecutor';\n\nfunction toApiRequestOptions(config: RequestConfig): ApiRequestOptions {\n return {\n method: config.method as ApiRequestOptions['method'],\n path: config.path,\n headers: config.headers,\n query: config.query,\n body: config.body,\n cookies: config.cookies,\n mediaType: config.requestMediaType,\n responseType: config.responseType,\n };\n}\n\n/**\n * Adapts legacy request(options, config) transport to the RequestExecutor contract.\n * Use via createClient({ executorFactory: ({ openApiConfig }) => createLegacyRequestAdapter(openApiConfig) }).\n */\nexport function createLegacyRequestAdapter<TRequestOptions extends Record<string, any>>(\n openApiConfig: TOpenAPIConfig = OpenAPI,\n mapOptions?: (options: TRequestOptions | undefined) => Partial<ApiRequestOptions>,\n): RequestExecutor<TRequestOptions> {\n const toMergedOptions = (config: RequestConfig, options?: TRequestOptions): ApiRequestOptions => ({\n ...toApiRequestOptions(config),\n ...(mapOptions ? mapOptions(options) : {}),\n });\n\n return {\n request<TResponse>(config: RequestConfig, options?: TRequestOptions): Promise<TResponse> {\n return legacyRequest<TResponse>(toMergedOptions(config, options), openApiConfig);\n },\n\n requestRaw<TResponse>(config: RequestConfig, options?: TRequestOptions): Promise<ApiResult<TResponse>> {\n"
26
+ + ((stack1 = lookupProperty(helpers, "if").call(alias1, lookupProperty(lookupProperty(data, "root"), "useCustomRequestRaw"), { "name": "if", "hash": {}, "fn": container.program(3, data, 0), "inverse": container.program(5, data, 0), "data": data, "loc": { "start": { "line": 45, "column": 12 }, "end": { "line": 55, "column": 19 } } })) != null ? stack1 : "")
27
+ + " },\n };\n}\n";
28
+ }, "usePartial": true, "useData": true };
@@ -1,4 +1,6 @@
1
1
  declare const _default: {
2
+ "1": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
3
+ "3": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
2
4
  compiler: (string | number)[];
3
5
  main: (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
4
6
  usePartial: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"requestExecutor.d.ts","sourceRoot":"","sources":["../../../../../src/templatesCompiled/client/core/executor/requestExecutor.ts"],"names":[],"mappings":";;;;;;AAMA,wBAUmC"}
1
+ {"version":3,"file":"requestExecutor.d.ts","sourceRoot":"","sources":["../../../../../src/templatesCompiled/client/core/executor/requestExecutor.ts"],"names":[],"mappings":";;;;;;;;AAMA,wBAgBmC"}
@@ -6,7 +6,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  /* tslint: disable */
7
7
  /* eslint: disable */
8
8
  // @ts-nocheck
9
- exports.default = { "compiler": [8, ">= 4.3.0"], "main": function (container, depth0, helpers, partials, data) {
9
+ exports.default = { "1": function (container, depth0, helpers, partials, data) {
10
+ return "import type { CancelablePromise } from '../CancelablePromise';\n\ntype ExecutorReturn<T> = CancelablePromise<T>;\n";
11
+ }, "3": function (container, depth0, helpers, partials, data) {
12
+ return "type ExecutorReturn<T> = Promise<T>;\n";
13
+ }, "compiler": [8, ">= 4.3.0"], "main": function (container, depth0, helpers, partials, data) {
10
14
  var stack1, lookupProperty = container.lookupProperty || function (parent, propertyName) {
11
15
  if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
12
16
  return parent[propertyName];
@@ -14,5 +18,7 @@ exports.default = { "compiler": [8, ">= 4.3.0"], "main": function (container, de
14
18
  return undefined;
15
19
  };
16
20
  return ((stack1 = container.invokePartial(lookupProperty(partials, "header"), depth0, { "name": "header", "data": data, "helpers": helpers, "partials": partials, "decorators": container.decorators })) != null ? stack1 : "")
17
- + "\nimport type { ApiResult } from '../ApiResult';\n\nexport interface RequestConfig {\n method: string;\n path: string;\n\n headers?: Record<string, string>;\n query?: Record<string, any>;\n body?: unknown;\n\n requestMediaType?: string;\n responseType?: 'blob';\n cookies?: Record<string, string>;\n}\n\nexport interface RequestExecutor<TOptions = unknown> {\n request<TResponse>(\n config: RequestConfig,\n options?: TOptions\n ): Promise<TResponse>;\n\n requestRaw<TResponse>(\n config: RequestConfig,\n options?: TOptions\n ): Promise<ApiResult<TResponse>>;\n}\n";
21
+ + "\nimport type { ApiResult } from '../ApiResult';\n"
22
+ + ((stack1 = lookupProperty(helpers, "if").call(depth0 != null ? depth0 : (container.nullContext || {}), lookupProperty(lookupProperty(data, "root"), "useCancelableRequest"), { "name": "if", "hash": {}, "fn": container.program(1, data, 0), "inverse": container.program(3, data, 0), "data": data, "loc": { "start": { "line": 4, "column": 0 }, "end": { "line": 10, "column": 7 } } })) != null ? stack1 : "")
23
+ + "\nexport interface RequestConfig {\n method: string;\n path: string;\n\n headers?: Record<string, string>;\n query?: Record<string, any>;\n body?: unknown;\n\n requestMediaType?: string;\n responseType?: 'blob';\n cookies?: Record<string, string>;\n}\n\nexport interface RequestExecutor<TOptions = unknown> {\n request<TResponse>(\n config: RequestConfig,\n options?: TOptions\n ): ExecutorReturn<TResponse>;\n\n requestRaw<TResponse>(\n config: RequestConfig,\n options?: TOptions\n ): ExecutorReturn<ApiResult<TResponse>>;\n}\n";
18
24
  }, "usePartial": true, "useData": true };
@@ -7,5 +7,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  /* eslint: disable */
8
8
  // @ts-nocheck
9
9
  exports.default = { "compiler": [8, ">= 4.3.0"], "main": function (container, depth0, helpers, partials, data) {
10
- return "function catchErrors(options: ApiRequestOptions, result: ApiResult<unknown>): void {\n const errors: Record<string, string> = {\n [EHTTP_STATUS_CODES.BAD_GATEWAY]: EHTTP_STATUS_NAME.BAD_GATEWAY,\n [EHTTP_STATUS_CODES.BAD_REQUEST]: EHTTP_STATUS_NAME.BAD_REQUEST,\n [EHTTP_STATUS_CODES.FORBIDDEN]: EHTTP_STATUS_NAME.FORBIDDEN,\n [EHTTP_STATUS_CODES.INTERNAL_SERVER_ERROR]: EHTTP_STATUS_NAME.INTERNAL_SERVER_ERROR,\n [EHTTP_STATUS_CODES.NOT_FOUND]: EHTTP_STATUS_NAME.NOT_FOUND,\n [EHTTP_STATUS_CODES.SERVICE_UNAVAILABLE]: EHTTP_STATUS_NAME.SERVICE_UNAVAILABLE,\n [EHTTP_STATUS_CODES.UNAUTHORIZED]: EHTTP_STATUS_NAME.UNAUTHORIZED,\n ...options.errors,\n }\n\n const error = errors[result.status];\n if (error) {\n throw new ApiError({\n message: result.statusText,\n status: result.status,\n request: options,\n });\n }\n\n if (!result.ok) {\n throw new ApiError({\n message: 'Generic Error',\n status: result.status,\n request: options,\n });\n }\n}\n";
10
+ return "function toRequestConfig(options: ApiRequestOptions): { method: string; path: string; headers?: Record<string, string>; query?: Record<string, any>; body?: unknown } {\n return {\n method: options.method,\n path: options.path,\n headers: options.headers,\n query: options.query,\n body: options.body,\n };\n}\n\nfunction catchErrors(options: ApiRequestOptions, result: ApiResult<unknown>): void {\n const errors: Record<string, string> = {\n [EHTTP_STATUS_CODES.BAD_GATEWAY]: EHTTP_STATUS_NAME.BAD_GATEWAY,\n [EHTTP_STATUS_CODES.BAD_REQUEST]: EHTTP_STATUS_NAME.BAD_REQUEST,\n [EHTTP_STATUS_CODES.FORBIDDEN]: EHTTP_STATUS_NAME.FORBIDDEN,\n [EHTTP_STATUS_CODES.INTERNAL_SERVER_ERROR]: EHTTP_STATUS_NAME.INTERNAL_SERVER_ERROR,\n [EHTTP_STATUS_CODES.NOT_FOUND]: EHTTP_STATUS_NAME.NOT_FOUND,\n [EHTTP_STATUS_CODES.SERVICE_UNAVAILABLE]: EHTTP_STATUS_NAME.SERVICE_UNAVAILABLE,\n [EHTTP_STATUS_CODES.UNAUTHORIZED]: EHTTP_STATUS_NAME.UNAUTHORIZED,\n ...options.errors,\n }\n\n const error = errors[result.status];\n if (error) {\n throw new ApiError({\n message: result.statusText,\n status: result.status,\n body: result.body,\n request: toRequestConfig(options),\n });\n }\n\n if (!result.ok) {\n throw new ApiError({\n message: 'Generic Error',\n status: result.status,\n body: result.body,\n request: toRequestConfig(options),\n });\n }\n}\n";
11
11
  }, "useData": true };
@@ -14,5 +14,5 @@ exports.default = { "compiler": [8, ">= 4.3.0"], "main": function (container, de
14
14
  return undefined;
15
15
  };
16
16
  return ((stack1 = container.invokePartial(lookupProperty(partials, "header"), depth0, { "name": "header", "data": data, "helpers": helpers, "partials": partials, "decorators": container.decorators })) != null ? stack1 : "")
17
- + "\nimport { ErrorInterceptor } from './interceptors';\nimport { ApiError } from '../ApiError';\n\ninterface ExecutorError {\n status: number;\n body?: unknown;\n headers?: Record<string, string>;\n}\n\nexport const apiErrorInterceptor: ErrorInterceptor = (error, request) => {\n if (typeof error === 'object' && error && 'status' in error) {\n const e = error as ExecutorError;\n\n throw new ApiError({\n status: e.status,\n message: `Request failed with status ${e.status}`,\n body: e.body,\n headers: e.headers,\n request,\n });\n }\n\n throw error;\n};";
17
+ + "\nimport type { ErrorInterceptor } from './interceptors';\nimport { ApiError } from '../ApiError';\n\ninterface ExecutorError {\n status: number;\n body?: unknown;\n headers?: Record<string, string>;\n}\n\nexport const apiErrorInterceptor: ErrorInterceptor = (error, request) => {\n if (error instanceof ApiError) {\n throw error;\n }\n\n if (typeof error === 'object' && error && 'status' in error) {\n const e = error as ExecutorError;\n\n throw new ApiError({\n status: e.status,\n message: `Request failed with status ${e.status}`,\n body: e.body,\n headers: e.headers,\n request,\n });\n }\n\n throw error;\n};\n";
18
18
  }, "usePartial": true, "useData": true };
@@ -14,5 +14,5 @@ exports.default = { "compiler": [8, ">= 4.3.0"], "main": function (container, de
14
14
  return undefined;
15
15
  };
16
16
  return ((stack1 = container.invokePartial(lookupProperty(partials, "header"), depth0, { "name": "header", "data": data, "helpers": helpers, "partials": partials, "decorators": container.decorators })) != null ? stack1 : "")
17
- + "\nimport { RequestConfig } from '../executor/requestExecutor';\n\nexport type RequestInterceptor =\n (config: RequestConfig) => RequestConfig | Promise<RequestConfig>;\n\nexport type ResponseInterceptor<T = unknown> =\n (response: T, context: RequestConfig) => T | Promise<T>;\n\nexport type ErrorInterceptor =\n (error: unknown, context: RequestConfig) => unknown | Promise<unknown>;";
17
+ + "\nimport type { RequestConfig } from '../executor/requestExecutor';\n\nexport type RequestInterceptor =\n (config: RequestConfig) => RequestConfig | Promise<RequestConfig>;\n\nexport type ResponseInterceptor<T = unknown> =\n (response: T, context: RequestConfig) => T | Promise<T>;\n\nexport type ErrorInterceptor =\n (error: unknown, context: RequestConfig) => unknown | Promise<unknown>;\n\nconst REQUEST_RECOVERY_BRAND = Symbol.for('@openapi-codegen/RequestRecovery');\n\n/**\n * Return from an ErrorInterceptor to recover from a failed request instead of re-throwing.\n * The recovered value is passed through onResponse interceptors.\n */\nexport class RequestRecovery<T = unknown> {\n constructor(public readonly value: T) {\n Object.defineProperty(this, REQUEST_RECOVERY_BRAND, { value: true, enumerable: false });\n }\n}\n\nexport function isRequestRecovery(value: unknown): value is RequestRecovery {\n return typeof value === 'object' && value !== null && REQUEST_RECOVERY_BRAND in value;\n}\n";
18
18
  }, "usePartial": true, "useData": true };
@@ -14,5 +14,5 @@ exports.default = { "compiler": [8, ">= 4.3.0"], "main": function (container, de
14
14
  return undefined;
15
15
  };
16
16
  return ((stack1 = container.invokePartial(lookupProperty(partials, "header"), depth0, { "name": "header", "data": data, "helpers": helpers, "partials": partials, "decorators": container.decorators })) != null ? stack1 : "")
17
- + "\nimport type { ApiResult } from '../ApiResult';\nimport { RequestInterceptor, ResponseInterceptor, ErrorInterceptor } from './interceptors';\nimport { RequestConfig, RequestExecutor } from '../executor/requestExecutor';\n\nexport function withInterceptors<TOptions extends Record<string, any> = Record<string, never>>(\n executor: RequestExecutor<TOptions>,\n interceptors: {\n onRequest?: RequestInterceptor[];\n onResponse?: ResponseInterceptor[];\n onError?: ErrorInterceptor[];\n }\n): RequestExecutor<TOptions> {\n const runRequestInterceptors = async (config: RequestConfig): Promise<RequestConfig> => {\n let currentConfig = config;\n\n for (const interceptor of interceptors.onRequest ?? []) {\n currentConfig = await interceptor(currentConfig);\n }\n\n return currentConfig;\n };\n\n const runResponseInterceptors = async <TResponse>(\n response: TResponse,\n config: RequestConfig\n ): Promise<TResponse> => {\n let currentResponse = response;\n\n for (const interceptor of interceptors.onResponse ?? []) {\n currentResponse = (await interceptor(currentResponse, config)) as TResponse;\n }\n\n return currentResponse;\n };\n\n return {\n async request<TResponse>(config: RequestConfig, options?: TOptions): Promise<TResponse> {\n try {\n const currentConfig = await runRequestInterceptors(config);\n const response = await executor.request<TResponse>(currentConfig, options);\n\n return runResponseInterceptors(response, currentConfig);\n } catch (caught) {\n let error = caught;\n const currentConfig = config;\n\n for (const interceptor of interceptors.onError ?? []) {\n error = await interceptor(error, currentConfig);\n }\n\n throw error;\n }\n },\n async requestRaw<TResponse>(config: RequestConfig, options?: TOptions): Promise<ApiResult<TResponse>> {\n try {\n const currentConfig = await runRequestInterceptors(config);\n const response = await executor.requestRaw<TResponse>(currentConfig, options);\n\n return runResponseInterceptors(response, currentConfig);\n } catch (caught) {\n let error = caught;\n const currentConfig = config;\n\n for (const interceptor of interceptors.onError ?? []) {\n error = await interceptor(error, currentConfig);\n }\n\n throw error;\n }\n },\n };\n}\n";
17
+ + "\nimport type { ApiResult } from '../ApiResult';\nimport type { RequestInterceptor, ResponseInterceptor, ErrorInterceptor } from './interceptors';\nimport { isRequestRecovery } from './interceptors';\nimport type { RequestConfig, RequestExecutor } from '../executor/requestExecutor';\n\nexport function withInterceptors<TOptions extends Record<string, any> = Record<string, never>>(\n executor: RequestExecutor<TOptions>,\n interceptors: {\n onRequest?: RequestInterceptor[];\n onResponse?: ResponseInterceptor[];\n onError?: ErrorInterceptor[];\n }\n): RequestExecutor<TOptions> {\n const runRequestInterceptors = async (config: RequestConfig): Promise<RequestConfig> => {\n let currentConfig = config;\n\n for (const interceptor of interceptors.onRequest ?? []) {\n currentConfig = await interceptor(currentConfig);\n }\n\n return currentConfig;\n };\n\n const runResponseInterceptors = async <TResponse>(\n response: TResponse,\n config: RequestConfig\n ): Promise<TResponse> => {\n let currentResponse = response;\n\n for (const interceptor of interceptors.onResponse ?? []) {\n currentResponse = (await interceptor(currentResponse, config)) as TResponse;\n }\n\n return currentResponse;\n };\n\n return {\n async request<TResponse>(config: RequestConfig, options?: TOptions): Promise<TResponse> {\n let currentConfig = config;\n\n try {\n currentConfig = await runRequestInterceptors(config);\n const response = await executor.request<TResponse>(currentConfig, options);\n\n return runResponseInterceptors(response, currentConfig);\n } catch (caught) {\n let error = caught;\n\n for (const interceptor of interceptors.onError ?? []) {\n const result = await interceptor(error, currentConfig);\n\n if (isRequestRecovery(result)) {\n return runResponseInterceptors(result.value as TResponse, currentConfig);\n }\n\n error = result;\n }\n\n throw error;\n }\n },\n async requestRaw<TResponse>(config: RequestConfig, options?: TOptions): Promise<ApiResult<TResponse>> {\n let currentConfig = config;\n\n try {\n currentConfig = await runRequestInterceptors(config);\n const response = await executor.requestRaw<TResponse>(currentConfig, options);\n\n return runResponseInterceptors(response, currentConfig);\n } catch (caught) {\n let error = caught;\n\n for (const interceptor of interceptors.onError ?? []) {\n const result = await interceptor(error, currentConfig);\n\n if (isRequestRecovery(result)) {\n return runResponseInterceptors(result.value as ApiResult<TResponse>, currentConfig);\n }\n\n error = result;\n }\n\n throw error;\n }\n },\n };\n}\n";
18
18
  }, "usePartial": true, "useData": true };
@@ -1,10 +1,6 @@
1
1
  declare const _default: {
2
2
  "1": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
3
3
  "3": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
4
- "5": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
5
- "6": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
6
- "8": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
7
- "10": (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
8
4
  compiler: (string | number)[];
9
5
  main: (container: any, depth0: any, helpers: any, partials: any, data: any) => string;
10
6
  usePartial: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"exportClient.d.ts","sourceRoot":"","sources":["../../../src/templatesCompiled/client/exportClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAMA,wBAwFmC"}
1
+ {"version":3,"file":"exportClient.d.ts","sourceRoot":"","sources":["../../../src/templatesCompiled/client/exportClient.ts"],"names":[],"mappings":";;;;;;;;AAMA,wBAiDmC"}