ts-openapi-codegen 2.1.0-beta.7 → 2.1.0-beta.8

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 (232) hide show
  1. package/README.md +3 -0
  2. package/README.rus.md +3 -0
  3. package/dist/cli/analyzeDiff/ignoreRules.d.ts +0 -6
  4. package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -1
  5. package/dist/cli/analyzeDiff/ignoreRules.js +2 -3
  6. package/dist/cli/analyzeUsage/analyzeUsage.d.ts +2 -2
  7. package/dist/cli/analyzeUsage/analyzeUsage.d.ts.map +1 -1
  8. package/dist/cli/analyzeUsage/analyzeUsage.js +10 -12
  9. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts +1 -1
  10. package/dist/cli/analyzeUsage/core/ProjectContext.d.ts.map +1 -1
  11. package/dist/cli/analyzeUsage/core/ProjectContext.js +5 -10
  12. package/dist/cli/analyzeUsage/core/Scanner.d.ts.map +1 -1
  13. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts +2 -2
  14. package/dist/cli/analyzeUsage/rules/ClientRule.d.ts.map +1 -1
  15. package/dist/cli/analyzeUsage/rules/ClientRule.js +19 -21
  16. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts +2 -2
  17. package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts.map +1 -1
  18. package/dist/cli/analyzeUsage/rules/CoverageRule.js +16 -24
  19. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts.map +1 -1
  20. package/dist/cli/analyzeUsage/rules/DiagnosticsRule.js +4 -1
  21. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts +2 -2
  22. package/dist/cli/analyzeUsage/rules/ImportRule.d.ts.map +1 -1
  23. package/dist/cli/analyzeUsage/rules/ImportRule.js +9 -11
  24. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts +2 -2
  25. package/dist/cli/analyzeUsage/rules/ModelRule.d.ts.map +1 -1
  26. package/dist/cli/analyzeUsage/rules/ModelRule.js +4 -8
  27. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts +2 -2
  28. package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts.map +1 -1
  29. package/dist/cli/analyzeUsage/rules/SchemaRule.js +8 -10
  30. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts +2 -2
  31. package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts.map +1 -1
  32. package/dist/cli/analyzeUsage/rules/ServiceRule.js +17 -23
  33. package/dist/cli/analyzeUsage/types.d.ts +4 -4
  34. package/dist/cli/analyzeUsage/types.d.ts.map +1 -1
  35. package/dist/cli/analyzeUsage/utils/fuzzy.d.ts.map +1 -1
  36. package/dist/cli/analyzeUsage/utils/report.d.ts +1 -1
  37. package/dist/cli/analyzeUsage/utils/report.d.ts.map +1 -1
  38. package/dist/cli/analyzeUsage/utils/report.js +8 -8
  39. package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -1
  40. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
  41. package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +1 -1
  42. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +1 -1
  43. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -1
  44. package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +1 -1
  45. package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
  46. package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +9 -1
  47. package/dist/cli/index.js +3 -2
  48. package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.js +2 -8
  49. package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.d.ts.map +1 -1
  50. package/dist/cli/interactive/constants.d.ts +0 -4
  51. package/dist/cli/interactive/constants.d.ts.map +1 -1
  52. package/dist/cli/interactive/constants.js +1 -5
  53. package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
  54. package/dist/cli/previewChanges/utils/formatDiff.d.ts.map +1 -1
  55. package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
  56. package/dist/cli/previewChanges/utils/updateOutputPaths.js +5 -12
  57. package/dist/cli/schemas/analyzeUsage.d.ts.map +1 -1
  58. package/dist/cli/schemas/analyzeUsage.js +4 -1
  59. package/dist/cli/schemas/generate.d.ts +3 -2
  60. package/dist/cli/schemas/generate.d.ts.map +1 -1
  61. package/dist/cli/schemas/generate.js +3 -2
  62. package/dist/common/Consts.d.ts.map +1 -1
  63. package/dist/common/Consts.js +1 -2
  64. package/dist/common/Logger.d.ts.map +1 -1
  65. package/dist/common/Logger.js +1 -1
  66. package/dist/common/LoggerMessages.d.ts +10 -3
  67. package/dist/common/LoggerMessages.d.ts.map +1 -1
  68. package/dist/common/LoggerMessages.js +14 -7
  69. package/dist/common/TEslintFixOptions.d.ts +20 -0
  70. package/dist/common/TEslintFixOptions.d.ts.map +1 -0
  71. package/dist/common/TEslintFixOptions.js +15 -0
  72. package/dist/common/TRawOptions.d.ts.map +1 -1
  73. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
  74. package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +2 -4
  75. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
  76. package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +1 -1
  77. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
  78. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +1 -2
  79. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
  80. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +1 -1
  81. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
  82. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +1 -1
  83. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
  84. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +3 -2
  85. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -1
  86. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +10 -4
  87. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +4 -4
  88. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
  89. package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +7 -1
  90. package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
  91. package/dist/common/VersionedSchema/CommonSchemas.js +4 -2
  92. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +1 -1
  93. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
  94. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +1 -1
  95. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +1 -1
  96. package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
  97. package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.d.ts.map +1 -1
  98. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +2 -2
  99. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
  100. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +2 -2
  101. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +1 -1
  102. package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +1 -1
  103. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
  104. package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +3 -2
  105. package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +4 -16
  106. package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -1
  107. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts +1 -1
  108. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts.map +1 -1
  109. package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.js +1 -1
  110. package/dist/common/VersionedSchema/Utils/createTrivialMigration.d.ts.map +1 -1
  111. package/dist/common/VersionedSchema/Utils/createTrivialMigration.js +1 -1
  112. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
  113. package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +1 -3
  114. package/dist/common/VersionedSchema/Utils/getLatestVersionFromMigrationPlans.d.ts.map +1 -1
  115. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
  116. package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +1 -3
  117. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.d.ts.map +1 -1
  118. package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.js +1 -1
  119. package/dist/common/VersionedSchema/Utils/validateAndSuggestKeyCorrections.d.ts.map +1 -1
  120. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +1 -1
  121. package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -1
  122. package/dist/common/utils/__tests__/eslintFix.test.js +25 -67
  123. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts +2 -0
  124. package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts.map +1 -0
  125. package/dist/common/utils/__tests__/extractEslintFixOptions.test.js +28 -0
  126. package/dist/common/utils/__tests__/format.test.js +26 -17
  127. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts +2 -0
  128. package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts.map +1 -0
  129. package/dist/common/utils/__tests__/prepareTempTsConfig.test.js +78 -0
  130. package/dist/common/utils/codegenTempDir.d.ts +20 -0
  131. package/dist/common/utils/codegenTempDir.d.ts.map +1 -0
  132. package/dist/common/utils/codegenTempDir.js +42 -0
  133. package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
  134. package/dist/common/utils/convertArrayToObject.js +3 -8
  135. package/dist/common/utils/eslintFix.d.ts +48 -4
  136. package/dist/common/utils/eslintFix.d.ts.map +1 -1
  137. package/dist/common/utils/eslintFix.js +121 -15
  138. package/dist/common/utils/format.d.ts +1 -1
  139. package/dist/common/utils/format.d.ts.map +1 -1
  140. package/dist/common/utils/format.js +23 -11
  141. package/dist/common/utils/jsonPath.d.ts.map +1 -1
  142. package/dist/common/utils/prepareTempEslintConfig.d.ts +18 -0
  143. package/dist/common/utils/prepareTempEslintConfig.d.ts.map +1 -0
  144. package/dist/common/utils/prepareTempEslintConfig.js +55 -0
  145. package/dist/common/utils/prepareTempTsConfig.d.ts +23 -0
  146. package/dist/common/utils/prepareTempTsConfig.d.ts.map +1 -0
  147. package/dist/common/utils/prepareTempTsConfig.js +105 -0
  148. package/dist/core/Context.d.ts.map +1 -1
  149. package/dist/core/Context.js +2 -6
  150. package/dist/core/OpenApiClient.d.ts +7 -0
  151. package/dist/core/OpenApiClient.d.ts.map +1 -1
  152. package/dist/core/OpenApiClient.js +52 -8
  153. package/dist/core/WriteClient.d.ts +21 -2
  154. package/dist/core/WriteClient.d.ts.map +1 -1
  155. package/dist/core/WriteClient.js +36 -14
  156. package/dist/core/__tests__/WriteClient.test.js +1 -1
  157. package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
  158. package/dist/core/api/v2/parser/getOperationResponses.js +1 -3
  159. package/dist/core/api/v2/parser/getServiceName.d.ts +1 -1
  160. package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
  161. package/dist/core/api/v3/parser/getOperationParameters.d.ts.map +1 -1
  162. package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
  163. package/dist/core/api/v3/parser/getOperationResponses.js +1 -3
  164. package/dist/core/api/v3/parser/getServiceName.d.ts +1 -1
  165. package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -1
  166. package/dist/core/governance/evaluateGovernanceRules.js +1 -3
  167. package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -1
  168. package/dist/core/governance/loadGovernanceConfig.js +2 -4
  169. package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -1
  170. package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -1
  171. package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +7 -21
  172. package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -1
  173. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +0 -2
  174. package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -1
  175. package/dist/core/semanticDiff/semanticDiffReportSchema.js +3 -9
  176. package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -1
  177. package/dist/core/types/Consts.js +1 -1
  178. package/dist/core/types/base/ClientArtifacts.model.d.ts +3 -3
  179. package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
  180. package/dist/core/types/base/ExportedModel.model.d.ts +1 -1
  181. package/dist/core/types/base/ExportedModel.model.d.ts.map +1 -1
  182. package/dist/core/types/base/ExportedService.model.d.ts.map +1 -1
  183. package/dist/core/types/base/OutputPaths.model.d.ts.map +1 -1
  184. package/dist/core/types/base/PrefixArtifacts.model.d.ts.map +1 -1
  185. package/dist/core/types/base/PropertyGroup.model.d.ts +1 -1
  186. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts +1 -1
  187. package/dist/core/types/base/SimpleClientArtifacts.model.d.ts.map +1 -1
  188. package/dist/core/utils/__tests__/postProcessModelImports.test.js +1 -4
  189. package/dist/core/utils/__tests__/postProcessServiceImports.test.js +1 -4
  190. package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +27 -0
  191. package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +10 -27
  192. package/dist/core/utils/appendUniqueLinesToFile.js +1 -1
  193. package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -1
  194. package/dist/core/utils/applyDiffReportToClient.js +2 -2
  195. package/dist/core/utils/areEqual.d.ts +1 -1
  196. package/dist/core/utils/getOperationErrors.d.ts +2 -2
  197. package/dist/core/utils/getOperationErrors.d.ts.map +1 -1
  198. package/dist/core/utils/getOperationResults.d.ts +1 -1
  199. package/dist/core/utils/getPropertyGroupSimple.d.ts.map +1 -1
  200. package/dist/core/utils/getPropertyGroupSimple.js +1 -3
  201. package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
  202. package/dist/core/utils/modelHelpers.d.ts.map +1 -1
  203. package/dist/core/utils/normalizeString.d.ts.map +1 -1
  204. package/dist/core/utils/normalizeString.js +1 -5
  205. package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
  206. package/dist/core/utils/postProcessServiceImports.js +1 -3
  207. package/dist/core/utils/precompileTemplates.js +1 -0
  208. package/dist/core/utils/prepareAlias.d.ts +1 -1
  209. package/dist/core/utils/prepareDtoModels.d.ts.map +1 -1
  210. package/dist/core/utils/prepareDtoModels.js +1 -1
  211. package/dist/core/utils/registerHandlebarHelpers.d.ts +1 -0
  212. package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
  213. package/dist/core/utils/registerHandlebarHelpers.js +3 -0
  214. package/dist/core/utils/registerHandlebarTemplates.d.ts +1 -0
  215. package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
  216. package/dist/core/utils/sortModelByName.d.ts +1 -1
  217. package/dist/core/utils/writeClientExecutor.d.ts +1 -2
  218. package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
  219. package/dist/core/utils/writeClientExecutor.js +2 -6
  220. package/dist/core/utils/writeClientModels.d.ts +1 -2
  221. package/dist/core/utils/writeClientModels.d.ts.map +1 -1
  222. package/dist/core/utils/writeClientModels.js +4 -6
  223. package/dist/core/utils/writeClientSchemas.d.ts +1 -3
  224. package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
  225. package/dist/core/utils/writeClientSchemas.js +2 -7
  226. package/dist/core/utils/writeClientServices.d.ts +1 -2
  227. package/dist/core/utils/writeClientServices.d.ts.map +1 -1
  228. package/dist/core/utils/writeClientServices.js +3 -6
  229. package/dist/templatesCompiled/client/partials/header.d.ts +1 -0
  230. package/dist/templatesCompiled/client/partials/header.d.ts.map +1 -1
  231. package/dist/templatesCompiled/client/partials/header.js +11 -2
  232. package/package.json +132 -136
@@ -37,26 +37,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const node_assert_1 = __importDefault(require("node:assert"));
40
- const node_path_1 = __importDefault(require("node:path"));
41
40
  const node_test_1 = require("node:test");
42
41
  const Consts_1 = require("../../Consts");
43
- (0, node_test_1.describe)('@unit: eslintFix', () => {
42
+ (0, node_test_1.describe)('@unit: eslintFixBatch', () => {
44
43
  let warnMessages = [];
45
- let infoMessages = [];
46
44
  let errorWithHintCalls = [];
47
45
  const originalWarn = Consts_1.APP_LOGGER.warn.bind(Consts_1.APP_LOGGER);
48
- const originalInfo = Consts_1.APP_LOGGER.info.bind(Consts_1.APP_LOGGER);
49
46
  const originalErrorWithHint = Consts_1.APP_LOGGER.errorWithHint.bind(Consts_1.APP_LOGGER);
50
47
  (0, node_test_1.beforeEach)(() => {
51
48
  warnMessages = [];
52
- infoMessages = [];
53
49
  errorWithHintCalls = [];
54
50
  Consts_1.APP_LOGGER.warn = (msg) => {
55
51
  warnMessages.push(msg);
56
52
  };
57
- Consts_1.APP_LOGGER.info = (msg) => {
58
- infoMessages.push(msg);
59
- };
60
53
  Consts_1.APP_LOGGER.errorWithHint = options => {
61
54
  errorWithHintCalls.push({
62
55
  code: options.code,
@@ -67,68 +60,33 @@ const Consts_1 = require("../../Consts");
67
60
  });
68
61
  (0, node_test_1.afterEach)(() => {
69
62
  Consts_1.APP_LOGGER.warn = originalWarn;
70
- Consts_1.APP_LOGGER.info = originalInfo;
71
63
  Consts_1.APP_LOGGER.errorWithHint = originalErrorWithHint;
72
64
  });
73
- (0, node_test_1.describe)('when eslint is available', () => {
74
- (0, node_test_1.test)('calls lintFiles and outputFixes and logs ESLINT_FIX_APPLIED', async () => {
75
- // We import eslintFix here after mocking APP_LOGGER.
76
- // If ESLint is installed in the project, it will run; otherwise the warn path is tested.
77
- const { eslintFix } = await Promise.resolve().then(() => __importStar(require('../eslintFix')));
78
- const filePath = node_path_1.default.resolve(__dirname, '__fixtures__/dummy.ts');
79
- let threw = false;
80
- try {
81
- await eslintFix(filePath);
82
- }
83
- catch {
84
- threw = true;
85
- }
86
- if (!threw) {
87
- // ESLint is available — it either applied fixes or logged info
88
- const fixApplied = infoMessages.some(m => m.includes('ESLint fix applied') || m.includes(filePath));
89
- const notInstalled = warnMessages.some(m => m.includes('ESLint is not installed'));
90
- node_assert_1.default.ok(fixApplied || notInstalled, 'should log either fix applied or not installed');
91
- }
92
- });
93
- });
94
- (0, node_test_1.describe)('when eslint is NOT available (graceful fallback)', () => {
95
- (0, node_test_1.test)('logs ESLINT_NOT_INSTALLED warning and does not throw', async () => {
96
- // Patch the module by temporarily replacing the tryImportESLint logic
97
- // via an environment variable guard checked in eslintFix
98
- // Since we can't easily mock dynamic import in tsx, we test the exported function
99
- // with a patched internal approach: we verify the module itself handles the error.
100
- // Re-import to get a fresh reference; the real behavior depends on whether eslint is installed.
101
- const { eslintFix } = await Promise.resolve().then(() => __importStar(require('../eslintFix')));
102
- // If eslint is not installed in devDeps, calling eslintFix should warn and not throw.
103
- // If it IS installed, this test is a no-op (covered by the other test).
104
- try {
105
- await eslintFix('/non/existent/path/that/wont/lint.ts');
106
- // Either it runs eslint on the fake path (may fail) or warns about not installed
107
- }
108
- catch {
109
- // If eslint is installed but fails on non-existent path, verify errorWithHint was called
110
- node_assert_1.default.ok(errorWithHintCalls.some(c => c.code === 'ESLINT_FIX_FAILED'), 'should call errorWithHint with ESLINT_FIX_FAILED when eslint throws');
111
- }
65
+ (0, node_test_1.test)('returns null when file list is empty', async () => {
66
+ const { eslintFixBatch } = await Promise.resolve().then(() => __importStar(require('../eslintFix')));
67
+ const result = await eslintFixBatch({
68
+ files: [],
69
+ includeGlobs: ['./generated/**/*.ts'],
70
+ tsconfigPath: './tsconfig.json',
71
+ eslintConfigPath: './eslint.config.mjs',
112
72
  });
73
+ node_assert_1.default.strictEqual(result, null);
113
74
  });
114
- (0, node_test_1.describe)('when eslint throws during fix', () => {
115
- (0, node_test_1.test)('calls APP_LOGGER.errorWithHint with ESLINT_FIX_FAILED and re-throws', async () => {
116
- const { eslintFix } = await Promise.resolve().then(() => __importStar(require('../eslintFix')));
117
- // Pass a path that will cause ESLint to fail if installed
118
- let threw = false;
119
- try {
120
- await eslintFix('/path/does/not/exist/file.ts');
121
- }
122
- catch {
123
- threw = true;
124
- }
125
- if (threw) {
126
- node_assert_1.default.ok(errorWithHintCalls.some(c => c.code === 'ESLINT_FIX_FAILED'), 'should log ESLINT_FIX_FAILED before re-throwing');
127
- }
128
- else {
129
- // ESLint not installed check warn was logged
130
- node_assert_1.default.ok(warnMessages.some(m => m.includes('ESLint is not installed')), 'should warn that ESLint is not installed');
131
- }
132
- });
75
+ (0, node_test_1.test)('does not throw when eslint is unavailable or config is missing', async () => {
76
+ const { eslintFixBatch } = await Promise.resolve().then(() => __importStar(require('../eslintFix')));
77
+ let threw = false;
78
+ try {
79
+ await eslintFixBatch({
80
+ files: ['/non/existent/generated/file.ts'],
81
+ includeGlobs: ['./generated/**/*.ts'],
82
+ tsconfigPath: './tsconfig.json',
83
+ eslintConfigPath: './eslint.config.mjs',
84
+ });
85
+ }
86
+ catch {
87
+ threw = true;
88
+ }
89
+ const warnedNotInstalled = warnMessages.some(message => message.includes('ESLint is not installed'));
90
+ node_assert_1.default.ok(!threw || warnedNotInstalled || errorWithHintCalls.length > 0);
133
91
  });
134
92
  });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=extractEslintFixOptions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractEslintFixOptions.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/extractEslintFixOptions.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_assert_1 = __importDefault(require("node:assert"));
7
+ const node_test_1 = require("node:test");
8
+ const TEslintFixOptions_1 = require("../../TEslintFixOptions");
9
+ (0, node_test_1.describe)('@unit: extractEslintFixOptions', () => {
10
+ (0, node_test_1.test)('reads eslint paths from top-level raw options', () => {
11
+ const result = (0, TEslintFixOptions_1.extractEslintFixOptions)({
12
+ httpClient: 'fetch',
13
+ tsconfigPath: './tsconfig.json',
14
+ eslintConfigPath: './eslint.config.mjs',
15
+ items: [{ input: './a.yaml', output: './out/a' }],
16
+ });
17
+ node_assert_1.default.strictEqual(result.tsconfigPath, './tsconfig.json');
18
+ node_assert_1.default.strictEqual(result.eslintConfigPath, './eslint.config.mjs');
19
+ });
20
+ (0, node_test_1.test)('returns undefined paths when not set', () => {
21
+ const result = (0, TEslintFixOptions_1.extractEslintFixOptions)({
22
+ httpClient: 'fetch',
23
+ items: [{ input: './a.yaml', output: './out/a' }],
24
+ });
25
+ node_assert_1.default.strictEqual(result.tsconfigPath, undefined);
26
+ node_assert_1.default.strictEqual(result.eslintConfigPath, undefined);
27
+ });
28
+ });
@@ -4,6 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const node_assert_1 = __importDefault(require("node:assert"));
7
+ const promises_1 = require("node:fs/promises");
8
+ const node_os_1 = require("node:os");
9
+ const node_path_1 = require("node:path");
7
10
  const node_test_1 = require("node:test");
8
11
  const Consts_1 = require("../../Consts");
9
12
  const format_1 = require("../format");
@@ -11,6 +14,7 @@ const format_1 = require("../format");
11
14
  let warnMessages = [];
12
15
  let infoMessages = [];
13
16
  let errorWithHintCalls = [];
17
+ let tempDir = null;
14
18
  const originalWarn = Consts_1.APP_LOGGER.warn.bind(Consts_1.APP_LOGGER);
15
19
  const originalInfo = Consts_1.APP_LOGGER.info.bind(Consts_1.APP_LOGGER);
16
20
  const originalErrorWithHint = Consts_1.APP_LOGGER.errorWithHint.bind(Consts_1.APP_LOGGER);
@@ -18,6 +22,7 @@ const format_1 = require("../format");
18
22
  warnMessages = [];
19
23
  infoMessages = [];
20
24
  errorWithHintCalls = [];
25
+ tempDir = null;
21
26
  Consts_1.APP_LOGGER.warn = (msg) => {
22
27
  warnMessages.push(msg);
23
28
  };
@@ -32,12 +37,15 @@ const format_1 = require("../format");
32
37
  });
33
38
  };
34
39
  });
35
- (0, node_test_1.afterEach)(() => {
40
+ (0, node_test_1.afterEach)(async () => {
36
41
  Consts_1.APP_LOGGER.warn = originalWarn;
37
42
  Consts_1.APP_LOGGER.info = originalInfo;
38
43
  Consts_1.APP_LOGGER.errorWithHint = originalErrorWithHint;
44
+ if (tempDir) {
45
+ await (0, promises_1.rm)(tempDir, { recursive: true, force: true });
46
+ }
39
47
  });
40
- (0, node_test_1.describe)('default behavior (useProjectConfig=false)', () => {
48
+ (0, node_test_1.describe)('default behavior (no prettierConfigPath)', () => {
41
49
  (0, node_test_1.test)('formats valid TypeScript with built-in options', async () => {
42
50
  const input = `const x={a:1,b:2}`;
43
51
  const result = await (0, format_1.format)(input);
@@ -54,32 +62,33 @@ const format_1 = require("../format");
54
62
  const result = await (0, format_1.format)(input, 'json');
55
63
  node_assert_1.default.ok(result.includes('"key"'), 'should format as JSON');
56
64
  });
57
- (0, node_test_1.test)('does not call warn or info when useProjectConfig is omitted', async () => {
65
+ (0, node_test_1.test)('does not call warn or info when prettierConfigPath is omitted', async () => {
58
66
  await (0, format_1.format)(`const a = 1;`);
59
67
  node_assert_1.default.strictEqual(warnMessages.length, 0, 'should not warn');
60
68
  node_assert_1.default.strictEqual(infoMessages.length, 0, 'should not log info');
61
69
  });
62
70
  });
63
- (0, node_test_1.describe)('useProjectConfig=true', () => {
64
- (0, node_test_1.test)('falls back to built-in options and warns when no project config is found', async () => {
65
- // Running from workspace root which may not have a .prettierrc matching every field;
66
- // the only guaranteed outcome is that the function does not throw and returns formatted code.
67
- const input = `const x = 1;`;
68
- const result = await (0, format_1.format)(input, undefined, true);
69
- node_assert_1.default.ok(result.trim().length > 0, 'should produce non-empty output');
71
+ (0, node_test_1.describe)('prettierConfigPath', () => {
72
+ (0, node_test_1.test)('resolves existing config file and logs info', async () => {
73
+ tempDir = await (0, promises_1.mkdtemp)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'format-test-'));
74
+ const configPath = (0, node_path_1.join)(tempDir, '.prettierrc');
75
+ await (0, promises_1.writeFile)(configPath, JSON.stringify({ singleQuote: false, tabWidth: 2 }));
76
+ const result = await (0, format_1.format)(`const x=1`, undefined, configPath);
77
+ node_assert_1.default.ok(result.includes('const x'), 'should produce formatted output');
78
+ node_assert_1.default.ok(infoMessages.some(m => m.includes('Prettier config resolved')), 'should log resolved config path');
70
79
  });
71
- (0, node_test_1.test)('logs info when project config is resolved, or warns when not found', async () => {
72
- await (0, format_1.format)(`const x = 1;`, undefined, true);
73
- const resolvedSomething = infoMessages.some(m => m.includes('Prettier config resolved')) ||
74
- warnMessages.some(m => m.includes('No project Prettier config'));
75
- node_assert_1.default.ok(resolvedSomething, 'should log either resolved config path or fallback warning');
80
+ (0, node_test_1.test)('falls back to built-in options and warns when config file does not exist', async () => {
81
+ tempDir = await (0, promises_1.mkdtemp)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'format-test-'));
82
+ const missingConfigPath = (0, node_path_1.join)(tempDir, 'missing-prettier.json');
83
+ const result = await (0, format_1.format)(`const x = 1;`, undefined, missingConfigPath);
84
+ node_assert_1.default.ok(result.trim().length > 0, 'should produce non-empty output');
85
+ node_assert_1.default.ok(warnMessages.some(m => m.includes('missing-prettier.json')), 'should warn about missing config path');
76
86
  });
77
87
  });
78
88
  (0, node_test_1.describe)('error handling', () => {
79
89
  (0, node_test_1.test)('throws an Error and calls APP_LOGGER.errorWithHint when prettier fails', async () => {
80
- // Feed an unparseable string with a syntax error that prettier cannot fix
81
90
  const invalidInput = `{{{{{{{ this is not valid typescript ;;; !!!`;
82
- await node_assert_1.default.rejects(() => (0, format_1.format)(invalidInput, 'typescript', false), (err) => {
91
+ await node_assert_1.default.rejects(() => (0, format_1.format)(invalidInput, 'typescript'), (err) => {
83
92
  node_assert_1.default.ok(err instanceof Error, 'should throw an Error');
84
93
  node_assert_1.default.ok(err.message.includes('Could not format'), 'message should mention formatting failure');
85
94
  return true;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prepareTempTsConfig.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepareTempTsConfig.test.d.ts","sourceRoot":"","sources":["../../../../src/common/utils/__tests__/prepareTempTsConfig.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_assert_1 = __importDefault(require("node:assert"));
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_os_1 = __importDefault(require("node:os"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const node_test_1 = require("node:test");
11
+ const codegenTempDir_1 = require("../codegenTempDir");
12
+ const prepareTempTsConfig_1 = require("../prepareTempTsConfig");
13
+ (0, node_test_1.describe)('@unit: prepareTempTsConfig', () => {
14
+ let tempDir;
15
+ (0, node_test_1.afterEach)(async () => {
16
+ if (tempDir) {
17
+ await (0, codegenTempDir_1.cleanupCodegenTempDir)(tempDir);
18
+ node_fs_1.default.rmSync(tempDir, { recursive: true, force: true });
19
+ }
20
+ });
21
+ (0, node_test_1.test)('replaces base include with narrow output globs only', async () => {
22
+ tempDir = node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), 'openapi-eslint-'));
23
+ const baseTsconfigPath = node_path_1.default.join(tempDir, 'tsconfig.json');
24
+ node_fs_1.default.writeFileSync(baseTsconfigPath, JSON.stringify({
25
+ compilerOptions: { target: 'ES2020', strict: true },
26
+ include: ['src/**/*'],
27
+ }));
28
+ const tempPath = await (0, prepareTempTsConfig_1.prepareTempTsConfig)({
29
+ baseTsconfigPath,
30
+ includeGlobs: ['./generated/models/**/*.ts', './generated/services/**/*.ts'],
31
+ cwd: tempDir,
32
+ });
33
+ const parsed = JSON.parse(node_fs_1.default.readFileSync(tempPath, 'utf8'));
34
+ node_assert_1.default.deepStrictEqual(parsed.include, [node_path_1.default.join(tempDir, 'generated/models/**/*.ts'), node_path_1.default.join(tempDir, 'generated/services/**/*.ts')]);
35
+ node_assert_1.default.notDeepEqual(parsed.include, [node_path_1.default.join(tempDir, 'src/**/*')]);
36
+ node_assert_1.default.strictEqual(parsed.compilerOptions.target, 'ES2020');
37
+ node_assert_1.default.strictEqual(parsed.compilerOptions.noEmit, true);
38
+ node_assert_1.default.strictEqual(parsed.compilerOptions.skipLibCheck, true);
39
+ node_assert_1.default.strictEqual(parsed.compilerOptions.incremental, false);
40
+ });
41
+ (0, node_test_1.test)('preserves raw lib entries from the base tsconfig', async () => {
42
+ tempDir = node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), 'openapi-eslint-'));
43
+ const baseTsconfigPath = node_path_1.default.join(tempDir, 'tsconfig.json');
44
+ node_fs_1.default.writeFileSync(baseTsconfigPath, JSON.stringify({
45
+ compilerOptions: {
46
+ target: 'ES2022',
47
+ lib: ['es6', 'es2017', 'dom'],
48
+ },
49
+ }));
50
+ const tempPath = await (0, prepareTempTsConfig_1.prepareTempTsConfig)({
51
+ baseTsconfigPath,
52
+ includeGlobs: ['./generated/**/*.ts'],
53
+ cwd: tempDir,
54
+ });
55
+ const parsed = JSON.parse(node_fs_1.default.readFileSync(tempPath, 'utf8'));
56
+ node_assert_1.default.deepStrictEqual(parsed.compilerOptions.lib, ['es6', 'es2017', 'dom']);
57
+ });
58
+ (0, node_test_1.test)('writes enum compiler options as tsconfig string literals', async () => {
59
+ tempDir = node_fs_1.default.mkdtempSync(node_path_1.default.join(node_os_1.default.tmpdir(), 'openapi-eslint-'));
60
+ const baseTsconfigPath = node_path_1.default.join(tempDir, 'tsconfig.json');
61
+ node_fs_1.default.writeFileSync(baseTsconfigPath, JSON.stringify({
62
+ compilerOptions: {
63
+ target: 'ES2022',
64
+ module: 'commonjs',
65
+ moduleResolution: 'node',
66
+ },
67
+ }));
68
+ const tempPath = await (0, prepareTempTsConfig_1.prepareTempTsConfig)({
69
+ baseTsconfigPath,
70
+ includeGlobs: ['./generated/**/*.ts'],
71
+ cwd: tempDir,
72
+ });
73
+ const parsed = JSON.parse(node_fs_1.default.readFileSync(tempPath, 'utf8'));
74
+ node_assert_1.default.strictEqual(parsed.compilerOptions.target, 'ES2022');
75
+ node_assert_1.default.strictEqual(parsed.compilerOptions.module, 'commonjs');
76
+ node_assert_1.default.strictEqual(parsed.compilerOptions.moduleResolution, 'node');
77
+ });
78
+ });
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Returns the absolute path to the temporary codegen directory.
3
+ *
4
+ * @param cwd - Project root (defaults to process.cwd()).
5
+ */
6
+ export declare function getCodegenTempDir(cwd?: string): string;
7
+ /**
8
+ * Creates the temporary codegen directory if it does not exist.
9
+ *
10
+ * @param cwd - Project root (defaults to process.cwd()).
11
+ * @returns Absolute path to .openapi-codegen.
12
+ */
13
+ export declare function ensureCodegenTempDir(cwd?: string): Promise<string>;
14
+ /**
15
+ * Recursively removes the temporary codegen directory.
16
+ *
17
+ * @param cwd - Project root (defaults to process.cwd()).
18
+ */
19
+ export declare function cleanupCodegenTempDir(cwd?: string): Promise<void>;
20
+ //# sourceMappingURL=codegenTempDir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegenTempDir.d.ts","sourceRoot":"","sources":["../../../src/common/utils/codegenTempDir.ts"],"names":[],"mappings":"AAOA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAErE;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAIvF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtF"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getCodegenTempDir = getCodegenTempDir;
7
+ exports.ensureCodegenTempDir = ensureCodegenTempDir;
8
+ exports.cleanupCodegenTempDir = cleanupCodegenTempDir;
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const fileSystemHelpers_1 = require("./fileSystemHelpers");
11
+ /** Directory name under the project root for temporary codegen configs. */
12
+ const TEMP_DIR_NAME = '.openapi-codegen';
13
+ /**
14
+ * Returns the absolute path to the temporary codegen directory.
15
+ *
16
+ * @param cwd - Project root (defaults to process.cwd()).
17
+ */
18
+ function getCodegenTempDir(cwd = process.cwd()) {
19
+ return node_path_1.default.join(cwd, TEMP_DIR_NAME);
20
+ }
21
+ /**
22
+ * Creates the temporary codegen directory if it does not exist.
23
+ *
24
+ * @param cwd - Project root (defaults to process.cwd()).
25
+ * @returns Absolute path to .openapi-codegen.
26
+ */
27
+ async function ensureCodegenTempDir(cwd = process.cwd()) {
28
+ const dir = getCodegenTempDir(cwd);
29
+ await fileSystemHelpers_1.fileSystemHelpers.mkdir(dir);
30
+ return dir;
31
+ }
32
+ /**
33
+ * Recursively removes the temporary codegen directory.
34
+ *
35
+ * @param cwd - Project root (defaults to process.cwd()).
36
+ */
37
+ async function cleanupCodegenTempDir(cwd = process.cwd()) {
38
+ const dir = getCodegenTempDir(cwd);
39
+ if (await fileSystemHelpers_1.fileSystemHelpers.exists(dir)) {
40
+ await fileSystemHelpers_1.fileSystemHelpers.rmdir(dir);
41
+ }
42
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"convertArrayToObject.d.ts","sourceRoot":"","sources":["../../../src/common/utils/convertArrayToObject.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAgHxH"}
1
+ {"version":3,"file":"convertArrayToObject.d.ts","sourceRoot":"","sources":["../../../src/common/utils/convertArrayToObject.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAyGxH"}
@@ -44,24 +44,19 @@ function convertArrayToObject(optionsArr) {
44
44
  return item[field];
45
45
  };
46
46
  const getRootValueOrThrow = (field) => {
47
- const definedValues = optionsArr
48
- .map(item => getNormalizedFieldValue(item, field))
49
- .filter(value => value !== undefined);
47
+ const definedValues = optionsArr.map(item => getNormalizedFieldValue(item, field)).filter(value => value !== undefined);
50
48
  if (definedValues.length === 0) {
51
49
  return undefined;
52
50
  }
53
51
  const firstValue = definedValues[0];
54
52
  const hasConflict = definedValues.some(value => value !== firstValue);
55
53
  if (hasConflict) {
56
- throw new Error(`Legacy array config has conflicting "${field}" values. ` +
57
- `This option must have the same value for all array items.`);
54
+ throw new Error(`Legacy array config has conflicting "${field}" values. ` + `This option must have the same value for all array items.`);
58
55
  }
59
56
  return firstValue;
60
57
  };
61
58
  const getCommonOptionalRootValue = (field) => {
62
- const definedValues = optionsArr
63
- .map(item => item[field])
64
- .filter(value => value !== undefined);
59
+ const definedValues = optionsArr.map(item => item[field]).filter(value => value !== undefined);
65
60
  if (definedValues.length === 0) {
66
61
  return undefined;
67
62
  }
@@ -1,7 +1,51 @@
1
+ /** Single ESLint diagnostic stored in {@link EslintFixReport} (no source/output). */
2
+ export interface EslintFixReportMessage {
3
+ filePath: string;
4
+ ruleId: string | null;
5
+ line: number;
6
+ column: number;
7
+ message: string;
8
+ severity: number;
9
+ }
10
+ /** Per-file lint messages in {@link EslintFixReport}. */
11
+ export interface EslintFixReportFile {
12
+ filePath: string;
13
+ messages: EslintFixReportMessage[];
14
+ }
15
+ /** Aggregated batch ESLint results written to eslint-fix-report.json. */
16
+ export interface EslintFixReport {
17
+ summary: {
18
+ totalFiles: number;
19
+ errorCount: number;
20
+ warningCount: number;
21
+ fixableErrorCount: number;
22
+ fixableWarningCount: number;
23
+ };
24
+ files: EslintFixReportFile[];
25
+ }
26
+ /** Options for {@link eslintFixBatch}. */
27
+ export interface EslintFixBatchOptions {
28
+ /** Absolute or cwd-relative paths to generated TypeScript files. */
29
+ files: string[];
30
+ /** Narrow include globs for the temporary tsconfig (models/services output). */
31
+ includeGlobs: string[];
32
+ /** Path to the host project's base tsconfig.json. */
33
+ tsconfigPath: string;
34
+ /** Path to the host project's ESLint config. */
35
+ eslintConfigPath: string;
36
+ /** Project root (defaults to process.cwd()). */
37
+ cwd?: string;
38
+ /** Number of files per lintFiles call (default 50, or ESLINT_FIX_BATCH_SIZE env). */
39
+ batchSize?: number;
40
+ }
1
41
  /**
2
- * Runs ESLint --fix on the given file using the user's project ESLint config.
3
- * Silently skips if ESLint is not installed.
4
- * Logs an error and re-throws if ESLint fails during the fix.
42
+ * Runs ESLint --fix in memory-safe batches on an explicit file list.
43
+ *
44
+ * Creates temporary configs under .openapi-codegen/, lints in chunks, applies fixes,
45
+ * writes eslint-fix-report.json, then removes temp files. Does not use projectService.
46
+ *
47
+ * @param options - File paths, globs, and host project config paths.
48
+ * @returns Lint report, or null when there are no files or ESLint is not installed.
5
49
  */
6
- export declare function eslintFix(filePath: string): Promise<void>;
50
+ export declare function eslintFixBatch(options: EslintFixBatchOptions): Promise<EslintFixReport | null>;
7
51
  //# sourceMappingURL=eslintFix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslintFix.d.ts","sourceRoot":"","sources":["../../../src/common/utils/eslintFix.ts"],"names":[],"mappings":"AAiCA;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB/D"}
1
+ {"version":3,"file":"eslintFix.d.ts","sourceRoot":"","sources":["../../../src/common/utils/eslintFix.ts"],"names":[],"mappings":"AAYA,qFAAqF;AACrF,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACtC;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IAClC,oEAAoE;IACpE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gFAAgF;IAChF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAyGD;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAiEpG"}