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.
- package/README.md +27 -934
- package/README.rus.md +27 -934
- package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.js +40 -24
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts +2 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffLomMiracles.test.js +47 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.js +17 -7
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.js +17 -7
- package/dist/cli/analyzeDiff/analyzeDiff.d.ts +14 -2
- package/dist/cli/analyzeDiff/analyzeDiff.d.ts.map +1 -1
- package/dist/cli/analyzeDiff/analyzeDiff.js +58 -15
- package/dist/cli/analyzeDiff/ciSummary.d.ts +6 -3
- package/dist/cli/analyzeDiff/ciSummary.d.ts.map +1 -1
- package/dist/cli/analyzeDiff/ciSummary.js +10 -6
- package/dist/cli/analyzeDiff/ignoreRules.d.ts +0 -22
- package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -1
- package/dist/cli/analyzeDiff/ignoreRules.js +3 -25
- package/dist/cli/analyzeDiff/miracles.d.ts +0 -54
- package/dist/cli/analyzeDiff/miracles.d.ts.map +1 -1
- package/dist/cli/analyzeDiff/miracles.js +1 -219
- package/dist/cli/analyzeDiff/specParser.d.ts +0 -13
- package/dist/cli/analyzeDiff/specParser.d.ts.map +1 -1
- package/dist/cli/analyzeDiff/specParser.js +2 -23
- package/dist/cli/analyzeDiff/types.d.ts +0 -42
- package/dist/cli/analyzeDiff/types.d.ts.map +1 -1
- package/dist/cli/analyzeUsage/analyzeUsage.d.ts +4 -0
- package/dist/cli/analyzeUsage/analyzeUsage.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/analyzeUsage.js +60 -0
- package/dist/cli/analyzeUsage/core/Analyzer.d.ts +9 -0
- package/dist/cli/analyzeUsage/core/Analyzer.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/core/Analyzer.js +29 -0
- package/dist/cli/analyzeUsage/core/ProjectContext.d.ts +10 -0
- package/dist/cli/analyzeUsage/core/ProjectContext.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/core/ProjectContext.js +58 -0
- package/dist/cli/analyzeUsage/core/Scanner.d.ts +23 -0
- package/dist/cli/analyzeUsage/core/Scanner.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/core/Scanner.js +125 -0
- package/dist/cli/analyzeUsage/rules/ClientRule.d.ts +14 -0
- package/dist/cli/analyzeUsage/rules/ClientRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/ClientRule.js +86 -0
- package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts +7 -0
- package/dist/cli/analyzeUsage/rules/CoverageRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/CoverageRule.js +55 -0
- package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts +6 -0
- package/dist/cli/analyzeUsage/rules/DiagnosticsRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/DiagnosticsRule.js +63 -0
- package/dist/cli/analyzeUsage/rules/ImportRule.d.ts +6 -0
- package/dist/cli/analyzeUsage/rules/ImportRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/ImportRule.js +50 -0
- package/dist/cli/analyzeUsage/rules/ModelRule.d.ts +6 -0
- package/dist/cli/analyzeUsage/rules/ModelRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/ModelRule.js +34 -0
- package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts +6 -0
- package/dist/cli/analyzeUsage/rules/SchemaRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/SchemaRule.js +46 -0
- package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts +15 -0
- package/dist/cli/analyzeUsage/rules/ServiceRule.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/rules/ServiceRule.js +96 -0
- package/dist/cli/analyzeUsage/types.d.ts +52 -0
- package/dist/cli/analyzeUsage/types.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/types.js +2 -0
- package/dist/cli/analyzeUsage/utils/fuzzy.d.ts +5 -0
- package/dist/cli/analyzeUsage/utils/fuzzy.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/utils/fuzzy.js +38 -0
- package/dist/cli/analyzeUsage/utils/report.d.ts +16 -0
- package/dist/cli/analyzeUsage/utils/report.d.ts.map +1 -0
- package/dist/cli/analyzeUsage/utils/report.js +85 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/checkConfig.test.js +53 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/__tests__/updateConfig.test.js +52 -0
- package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts +2 -1
- package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/checkConfig.js +15 -6
- package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts +2 -1
- package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/updateConfig.js +8 -5
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/prepareConfigData.test.js +20 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/removeDefaultConfigValues.test.js +35 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts +2 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/__tests__/validateAndMigrateConfigData.test.js +59 -0
- package/dist/cli/checkAndUpdateConfig/utils/removeDefaultConfigValues.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +19 -1
- package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts +6 -0
- package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.d.ts.map +1 -0
- package/dist/cli/checkAndUpdateConfig/utils/validateExecutorSetup.js +55 -0
- package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/writeConfigFile.js +1 -1
- package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.js +18 -9
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts +2 -5
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +24 -20
- package/dist/cli/index.js +45 -9
- package/dist/cli/initOpenApiConfig/Types.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/Types.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/__tests__/init.test.d.ts.map +1 -0
- package/dist/cli/initOpenApiConfig/__tests__/init.test.js +20 -0
- package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.d.ts.map +1 -0
- package/dist/cli/initOpenApiConfig/__tests__/initConfig.test.js +49 -0
- package/dist/cli/initOpenApiConfig/init.d.ts +2 -1
- package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/init.js +52 -20
- package/dist/cli/initOpenApiConfig/initConfig.d.ts +5 -0
- package/dist/cli/initOpenApiConfig/initConfig.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/initConfig.js +8 -4
- package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts +3 -2
- package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/initCustomRequest.js +36 -10
- package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.d.ts.map +1 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/buildConfig.test.js +93 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.d.ts.map +1 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/findSpecFiles.test.js +45 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts +2 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.d.ts.map +1 -0
- package/dist/cli/initOpenApiConfig/utils/__tests__/validateSpecFiles.test.js +61 -0
- package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts +6 -12
- package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/utils/buildConfig.js +24 -19
- package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/utils/registerHandlebarTemplates.js +2 -0
- package/dist/cli/interactive/constants.d.ts +0 -4
- package/dist/cli/interactive/constants.d.ts.map +1 -1
- package/dist/cli/interactive/constants.js +1 -5
- package/dist/cli/previewChanges/previewChanges.d.ts +2 -1
- package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
- package/dist/cli/previewChanges/previewChanges.js +8 -8
- package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts +2 -0
- package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.d.ts.map +1 -0
- package/dist/cli/previewChanges/utils/__tests__/compareFiles.test.js +52 -0
- package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts +2 -0
- package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.d.ts.map +1 -0
- package/dist/cli/previewChanges/utils/__tests__/isDirectoryEmpty.test.js +43 -0
- package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts +2 -0
- package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.d.ts.map +1 -0
- package/dist/cli/previewChanges/utils/__tests__/readDirectoryRecursive.test.js +32 -0
- package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts +2 -0
- package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.d.ts.map +1 -0
- package/dist/cli/previewChanges/utils/__tests__/updateOutputPaths.test.js +68 -0
- package/dist/cli/previewChanges/utils/formatDiff.d.ts.map +1 -1
- package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
- package/dist/cli/previewChanges/utils/updateOutputPaths.js +5 -12
- package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts +2 -0
- package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.d.ts.map +1 -0
- package/dist/cli/schemas/__tests__/checkConfigAndUpdate.test.js +36 -0
- package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts +2 -0
- package/dist/cli/schemas/__tests__/generateOptionsSchema.test.d.ts.map +1 -0
- package/dist/cli/schemas/__tests__/generateOptionsSchema.test.js +59 -0
- package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts +2 -0
- package/dist/cli/schemas/__tests__/initOptionsSchema.test.d.ts.map +1 -0
- package/dist/cli/schemas/__tests__/initOptionsSchema.test.js +43 -0
- package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts +2 -0
- package/dist/cli/schemas/__tests__/previewChangesSchema.test.d.ts.map +1 -0
- package/dist/cli/schemas/__tests__/previewChangesSchema.test.js +31 -0
- package/dist/cli/schemas/analyzeUsage.d.ts +13 -0
- package/dist/cli/schemas/analyzeUsage.d.ts.map +1 -0
- package/dist/cli/schemas/analyzeUsage.js +41 -0
- package/dist/cli/schemas/generate.d.ts +10 -2
- package/dist/cli/schemas/generate.d.ts.map +1 -1
- package/dist/cli/schemas/generate.js +7 -2
- package/dist/cli/schemas/index.d.ts +2 -2
- package/dist/cli/schemas/index.d.ts.map +1 -1
- package/dist/cli/schemas/index.js +1 -1
- package/dist/cli/schemas/init.d.ts +10 -0
- package/dist/cli/schemas/init.d.ts.map +1 -1
- package/dist/cli/schemas/init.js +3 -1
- package/dist/cli/types.d.ts +6 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +2 -0
- package/dist/common/Consts.d.ts +1 -0
- package/dist/common/Consts.d.ts.map +1 -1
- package/dist/common/Consts.js +7 -3
- package/dist/common/Logger.d.ts.map +1 -1
- package/dist/common/Logger.js +3 -3
- package/dist/common/LoggerMessages.d.ts +71 -12
- package/dist/common/LoggerMessages.d.ts.map +1 -1
- package/dist/common/LoggerMessages.js +76 -18
- package/dist/common/TEslintFixOptions.d.ts +20 -0
- package/dist/common/TEslintFixOptions.d.ts.map +1 -0
- package/dist/common/TEslintFixOptions.js +15 -0
- package/dist/common/TRawOptions.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +2 -4
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +1 -2
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +10 -2
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +15 -5
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +18 -4
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +7 -1
- package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/CommonSchemas.js +4 -2
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsMigrationPlans.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +2 -2
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +2 -2
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +1 -1
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +7 -1
- package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +4 -16
- package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts +1 -1
- package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/createDefaultFieldsMigration.js +1 -1
- package/dist/common/VersionedSchema/Utils/createTrivialMigration.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/createTrivialMigration.js +1 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +4 -6
- package/dist/common/VersionedSchema/Utils/getLatestVersionFromMigrationPlans.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +6 -8
- package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/replaceInvalidKeysWithMappedNames.js +1 -1
- package/dist/common/VersionedSchema/Utils/validateAndSuggestKeyCorrections.d.ts.map +1 -1
- package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +1 -1
- package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -1
- package/dist/common/utils/__tests__/eslintFix.test.js +25 -67
- package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts +2 -0
- package/dist/common/utils/__tests__/extractEslintFixOptions.test.d.ts.map +1 -0
- package/dist/common/utils/__tests__/extractEslintFixOptions.test.js +28 -0
- package/dist/common/utils/__tests__/format.test.js +26 -17
- package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts +2 -0
- package/dist/common/utils/__tests__/prepareTempTsConfig.test.d.ts.map +1 -0
- package/dist/common/utils/__tests__/prepareTempTsConfig.test.js +78 -0
- package/dist/common/utils/codegenTempDir.d.ts +20 -0
- package/dist/common/utils/codegenTempDir.d.ts.map +1 -0
- package/dist/common/utils/codegenTempDir.js +42 -0
- package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
- package/dist/common/utils/convertArrayToObject.js +3 -8
- package/dist/common/utils/eslintFix.d.ts +48 -4
- package/dist/common/utils/eslintFix.d.ts.map +1 -1
- package/dist/common/utils/eslintFix.js +121 -15
- package/dist/common/utils/format.d.ts +1 -1
- package/dist/common/utils/format.d.ts.map +1 -1
- package/dist/common/utils/format.js +23 -11
- package/dist/common/utils/jsonPath.d.ts.map +1 -1
- package/dist/common/utils/prepareTempEslintConfig.d.ts +18 -0
- package/dist/common/utils/prepareTempEslintConfig.d.ts.map +1 -0
- package/dist/common/utils/prepareTempEslintConfig.js +55 -0
- package/dist/common/utils/prepareTempTsConfig.d.ts +23 -0
- package/dist/common/utils/prepareTempTsConfig.d.ts.map +1 -0
- package/dist/common/utils/prepareTempTsConfig.js +105 -0
- package/dist/core/Context.d.ts.map +1 -1
- package/dist/core/Context.js +2 -6
- package/dist/core/OpenApiClient.d.ts +27 -1
- package/dist/core/OpenApiClient.d.ts.map +1 -1
- package/dist/core/OpenApiClient.js +259 -19
- package/dist/core/WriteClient.d.ts +84 -17
- package/dist/core/WriteClient.d.ts.map +1 -1
- package/dist/core/WriteClient.js +96 -22
- package/dist/core/__tests__/WriteClient.test.js +2 -1
- package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationResponses.js +1 -3
- package/dist/core/api/v2/parser/getServiceName.d.ts +1 -1
- package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationParameters.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationResponses.js +1 -3
- package/dist/core/api/v3/parser/getServiceName.d.ts +1 -1
- package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -1
- package/dist/core/governance/evaluateGovernanceRules.js +1 -3
- package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -1
- package/dist/core/governance/loadGovernanceConfig.js +2 -4
- package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -1
- package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -1
- package/dist/core/plugins/getBuiltinPlugins.d.ts.map +1 -1
- package/dist/core/plugins/loadGeneratorPlugins.d.ts.map +1 -1
- package/dist/core/plugins/loadGeneratorPlugins.js +1 -1
- package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +79 -21
- package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +20 -1
- package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +58 -6
- package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -1
- package/dist/core/semanticDiff/analyzeOpenApiDiff.js +47 -19
- package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +8 -3
- package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -1
- package/dist/core/semanticDiff/semanticDiffReportSchema.js +139 -56
- package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -1
- package/dist/core/types/Consts.js +1 -1
- package/dist/core/types/DiffReport.model.d.ts +101 -0
- package/dist/core/types/DiffReport.model.d.ts.map +1 -0
- package/dist/core/types/DiffReport.model.js +5 -0
- package/dist/core/types/base/ClientArtifacts.model.d.ts +3 -3
- package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
- package/dist/core/types/base/ExportedModel.model.d.ts +1 -1
- package/dist/core/types/base/ExportedModel.model.d.ts.map +1 -1
- package/dist/core/types/base/ExportedService.model.d.ts.map +1 -1
- package/dist/core/types/base/OutputPaths.model.d.ts.map +1 -1
- package/dist/core/types/base/PrefixArtifacts.model.d.ts.map +1 -1
- package/dist/core/types/base/PropertyGroup.model.d.ts +1 -1
- package/dist/core/types/base/SimpleClientArtifacts.model.d.ts +1 -1
- package/dist/core/types/base/SimpleClientArtifacts.model.d.ts.map +1 -1
- package/dist/core/types/base/Templates.model.d.ts +1 -0
- package/dist/core/types/base/Templates.model.d.ts.map +1 -1
- package/dist/core/types/shared/Client.model.d.ts +1 -1
- package/dist/core/types/shared/Client.model.d.ts.map +1 -1
- package/dist/core/types/shared/Model.model.d.ts +37 -1
- package/dist/core/types/shared/Model.model.d.ts.map +1 -1
- package/dist/core/utils/GenerationCache.d.ts +18 -0
- package/dist/core/utils/GenerationCache.d.ts.map +1 -0
- package/dist/core/utils/GenerationCache.js +41 -0
- package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
- package/dist/core/utils/__mocks__/templates.js +1 -0
- package/dist/core/utils/__tests__/GenerationCache.test.d.ts +2 -0
- package/dist/core/utils/__tests__/GenerationCache.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/GenerationCache.test.js +37 -0
- package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +182 -0
- package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts +2 -0
- package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/buildMiraclesFromSemanticChanges.test.js +77 -0
- package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts +2 -0
- package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/expandOpenApiRefsForSemanticDiff.test.js +159 -0
- package/dist/core/utils/__tests__/loadDiffReport.test.d.ts +2 -0
- package/dist/core/utils/__tests__/loadDiffReport.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/loadDiffReport.test.js +246 -0
- package/dist/core/utils/__tests__/modelHelpers.test.js +27 -9
- package/dist/core/utils/__tests__/postProcessModelImports.test.js +1 -4
- package/dist/core/utils/__tests__/postProcessServiceImports.test.js +1 -4
- package/dist/core/utils/__tests__/prepareDtoModels.test.js +168 -1
- package/dist/core/utils/__tests__/registerHandlebarHelpers.test.js +27 -0
- package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts +2 -0
- package/dist/core/utils/__tests__/resolveClassesModeTypes.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/resolveClassesModeTypes.test.js +111 -0
- package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts +2 -0
- package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/semanticChangesToDiffEntries.test.js +68 -0
- package/dist/core/utils/__tests__/serviceHelpers.test.js +10 -11
- package/dist/core/utils/__tests__/sortByRequiredExtended.test.js +10 -27
- package/dist/core/utils/__tests__/templateRendering.test.d.ts +2 -0
- package/dist/core/utils/__tests__/templateRendering.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/templateRendering.test.js +190 -0
- package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts +2 -0
- package/dist/core/utils/__tests__/writeFileIfChanged.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/writeFileIfChanged.test.js +30 -0
- package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts +2 -0
- package/dist/core/utils/adapters/__tests__/semanticToStructural.test.d.ts.map +1 -0
- package/dist/core/utils/adapters/__tests__/semanticToStructural.test.js +63 -0
- package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts +10 -0
- package/dist/core/utils/adapters/extractMiraclesFromSemantic.d.ts.map +1 -0
- package/dist/core/utils/adapters/extractMiraclesFromSemantic.js +13 -0
- package/dist/core/utils/adapters/index.d.ts +3 -0
- package/dist/core/utils/adapters/index.d.ts.map +1 -0
- package/dist/core/utils/adapters/index.js +6 -0
- package/dist/core/utils/adapters/semanticToStructural.d.ts +12 -0
- package/dist/core/utils/adapters/semanticToStructural.d.ts.map +1 -0
- package/dist/core/utils/adapters/semanticToStructural.js +36 -0
- package/dist/core/utils/applyDiffReportToClient.d.ts +13 -1
- package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -1
- package/dist/core/utils/applyDiffReportToClient.js +189 -109
- package/dist/core/utils/areEqual.d.ts +1 -1
- package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts +25 -0
- package/dist/core/utils/buildMiraclesFromSemanticChanges.d.ts.map +1 -0
- package/dist/core/utils/buildMiraclesFromSemanticChanges.js +146 -0
- package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts +23 -0
- package/dist/core/utils/expandOpenApiRefsForSemanticDiff.d.ts.map +1 -0
- package/dist/core/utils/expandOpenApiRefsForSemanticDiff.js +163 -0
- package/dist/core/utils/getOpenApiSpec.d.ts +6 -0
- package/dist/core/utils/getOpenApiSpec.d.ts.map +1 -1
- package/dist/core/utils/getOpenApiSpec.js +6 -0
- package/dist/core/utils/getOperationErrors.d.ts +2 -2
- package/dist/core/utils/getOperationErrors.d.ts.map +1 -1
- package/dist/core/utils/getOperationResults.d.ts +1 -1
- package/dist/core/utils/getPropertyGroupSimple.d.ts.map +1 -1
- package/dist/core/utils/getPropertyGroupSimple.js +1 -3
- package/dist/core/utils/isSubdirectory.d.ts.map +1 -1
- package/dist/core/utils/loadDiffReport.d.ts +11 -30
- package/dist/core/utils/loadDiffReport.d.ts.map +1 -1
- package/dist/core/utils/loadDiffReport.js +75 -9
- package/dist/core/utils/loadSemanticOpenApiSpec.d.ts +15 -0
- package/dist/core/utils/loadSemanticOpenApiSpec.d.ts.map +1 -0
- package/dist/core/utils/loadSemanticOpenApiSpec.js +61 -0
- package/dist/core/utils/modelHelpers.d.ts +13 -5
- package/dist/core/utils/modelHelpers.d.ts.map +1 -1
- package/dist/core/utils/modelHelpers.js +28 -23
- package/dist/core/utils/normalizeString.d.ts.map +1 -1
- package/dist/core/utils/normalizeString.js +1 -5
- package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
- package/dist/core/utils/postProcessServiceImports.js +1 -3
- package/dist/core/utils/precompileTemplates.js +4 -2
- package/dist/core/utils/prepareAlias.d.ts +1 -1
- package/dist/core/utils/prepareDtoModels.d.ts +5 -0
- package/dist/core/utils/prepareDtoModels.d.ts.map +1 -1
- package/dist/core/utils/prepareDtoModels.js +57 -20
- package/dist/core/utils/registerHandlebarHelpers.d.ts +1 -0
- package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
- package/dist/core/utils/registerHandlebarHelpers.js +3 -0
- package/dist/core/utils/registerHandlebarTemplates.d.ts +1 -0
- package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
- package/dist/core/utils/registerHandlebarTemplates.js +2 -0
- package/dist/core/utils/resolveClassesModeTypes.d.ts +8 -0
- package/dist/core/utils/resolveClassesModeTypes.d.ts.map +1 -0
- package/dist/core/utils/resolveClassesModeTypes.js +77 -0
- package/dist/core/utils/semanticChangesToDiffEntries.d.ts +28 -0
- package/dist/core/utils/semanticChangesToDiffEntries.d.ts.map +1 -0
- package/dist/core/utils/semanticChangesToDiffEntries.js +98 -0
- package/dist/core/utils/semanticPointerToJsonPath.d.ts +7 -0
- package/dist/core/utils/semanticPointerToJsonPath.d.ts.map +1 -0
- package/dist/core/utils/semanticPointerToJsonPath.js +67 -0
- package/dist/core/utils/serviceHelpers.d.ts +6 -7
- package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
- package/dist/core/utils/serviceHelpers.js +8 -25
- package/dist/core/utils/sortModelByName.d.ts +1 -1
- package/dist/core/utils/validateRawOptions.js +2 -2
- package/dist/core/utils/writeClientCore.d.ts +2 -0
- package/dist/core/utils/writeClientCore.d.ts.map +1 -1
- package/dist/core/utils/writeClientCore.js +43 -21
- package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientCoreIndex.js +14 -4
- package/dist/core/utils/writeClientExecutor.d.ts +1 -3
- package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
- package/dist/core/utils/writeClientExecutor.js +6 -11
- package/dist/core/utils/writeClientFullIndex.js +4 -4
- package/dist/core/utils/writeClientModels.d.ts +1 -2
- package/dist/core/utils/writeClientModels.d.ts.map +1 -1
- package/dist/core/utils/writeClientModels.js +14 -16
- package/dist/core/utils/writeClientModelsIndex.d.ts +1 -1
- package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientModelsIndex.js +14 -4
- package/dist/core/utils/writeClientSchemas.d.ts +1 -3
- package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
- package/dist/core/utils/writeClientSchemas.js +9 -14
- package/dist/core/utils/writeClientSchemasIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientSchemasIndex.js +14 -4
- package/dist/core/utils/writeClientServices.d.ts +15 -16
- package/dist/core/utils/writeClientServices.d.ts.map +1 -1
- package/dist/core/utils/writeClientServices.js +12 -19
- package/dist/core/utils/writeClientServicesIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientServicesIndex.js +14 -4
- package/dist/core/utils/writeClientSimpleIndex.js +4 -4
- package/dist/core/utils/writeFileIfChanged.d.ts +3 -0
- package/dist/core/utils/writeFileIfChanged.d.ts.map +1 -0
- package/dist/core/utils/writeFileIfChanged.js +22 -0
- package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts +8 -0
- package/dist/templatesCompiled/cli/customCreateExecutorAdapter.d.ts.map +1 -0
- package/dist/templatesCompiled/cli/customCreateExecutorAdapter.js +18 -0
- package/dist/templatesCompiled/cli/customRequest.js +7 -7
- package/dist/templatesCompiled/cli/customRequestExecutor.js +7 -7
- package/dist/templatesCompiled/client/core/ApiError.js +1 -1
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts +0 -6
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -1
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +3 -22
- package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts +11 -0
- package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/executor/legacyRequestAdapter.js +28 -0
- package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts +2 -0
- package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts.map +1 -1
- package/dist/templatesCompiled/client/core/executor/requestExecutor.js +8 -2
- package/dist/templatesCompiled/client/core/functions/catchErrors.js +1 -1
- package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.js +1 -1
- package/dist/templatesCompiled/client/core/interceptors/interceptors.js +1 -1
- package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +1 -1
- package/dist/templatesCompiled/client/exportClient.d.ts +0 -4
- package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportClient.js +9 -45
- package/dist/templatesCompiled/client/exportModels.d.ts +17 -11
- package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportModels.js +96 -49
- package/dist/templatesCompiled/client/exportService.d.ts +13 -10
- package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportService.js +95 -67
- package/dist/templatesCompiled/client/indexCore.js +4 -4
- package/dist/templatesCompiled/client/indexFull.js +8 -8
- package/dist/templatesCompiled/client/indexSimple.js +2 -2
- package/dist/templatesCompiled/client/partials/header.d.ts +1 -0
- package/dist/templatesCompiled/client/partials/header.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/header.js +11 -2
- package/dist/test/helpers/silenceLoggers.d.ts +11 -0
- package/dist/test/helpers/silenceLoggers.d.ts.map +1 -0
- package/dist/test/helpers/silenceLoggers.js +88 -0
- package/package.json +132 -136
- package/dist/cli/analyzeDiff/buildLegacyReport.d.ts +0 -17
- package/dist/cli/analyzeDiff/buildLegacyReport.d.ts.map +0 -1
- package/dist/cli/analyzeDiff/buildLegacyReport.js +0 -54
- package/dist/cli/analyzeDiff/diffEngine.d.ts +0 -54
- package/dist/cli/analyzeDiff/diffEngine.d.ts.map +0 -1
- package/dist/cli/analyzeDiff/diffEngine.js +0 -209
- package/dist/cli/analyzeDiff/logLegacyReport.d.ts +0 -6
- package/dist/cli/analyzeDiff/logLegacyReport.d.ts.map +0 -1
- package/dist/cli/analyzeDiff/logLegacyReport.js +0 -29
- package/dist/cli/analyzeDiff/report.d.ts +0 -3
- package/dist/cli/analyzeDiff/report.d.ts.map +0 -1
- package/dist/cli/analyzeDiff/report.js +0 -7
- package/dist/cli/analyzeDiff/writeLegacyReport.d.ts +0 -6
- package/dist/cli/analyzeDiff/writeLegacyReport.d.ts.map +0 -1
- package/dist/cli/analyzeDiff/writeLegacyReport.js +0 -21
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts +0 -4
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts.map +0 -1
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.js +0 -21
- package/dist/common/utils/normalizeObject.d.ts +0 -2
- package/dist/common/utils/normalizeObject.d.ts.map +0 -1
- package/dist/common/utils/normalizeObject.js +0 -63
- package/dist/core/utils/appendUniqueLinesToFile.d.ts +0 -2
- package/dist/core/utils/appendUniqueLinesToFile.d.ts.map +0 -1
- package/dist/core/utils/appendUniqueLinesToFile.js +0 -24
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OpenApiClient = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
4
5
|
const Consts_1 = require("../common/Consts");
|
|
5
6
|
const Logger_1 = require("../common/Logger");
|
|
6
7
|
const LoggerMessages_1 = require("../common/LoggerMessages");
|
|
8
|
+
const TEslintFixOptions_1 = require("../common/TEslintFixOptions");
|
|
9
|
+
const eslintFix_1 = require("../common/utils/eslintFix");
|
|
7
10
|
const fileSystemHelpers_1 = require("../common/utils/fileSystemHelpers");
|
|
8
11
|
const pathHelpers_1 = require("../common/utils/pathHelpers");
|
|
9
12
|
const Parser_1 = require("./api/v2/Parser");
|
|
@@ -16,6 +19,7 @@ const EmptySchemaStrategy_enum_1 = require("./types/enums/EmptySchemaStrategy.en
|
|
|
16
19
|
const ModelsMode_enum_1 = require("./types/enums/ModelsMode.enum");
|
|
17
20
|
const ValidationLibrary_enum_1 = require("./types/enums/ValidationLibrary.enum");
|
|
18
21
|
const applyDiffReportToClient_1 = require("./utils/applyDiffReportToClient");
|
|
22
|
+
const GenerationCache_1 = require("./utils/GenerationCache");
|
|
19
23
|
const getOpenApiSpec_1 = require("./utils/getOpenApiSpec");
|
|
20
24
|
const getOpenApiVersion_1 = require("./utils/getOpenApiVersion");
|
|
21
25
|
const getOutputPaths_1 = require("./utils/getOutputPaths");
|
|
@@ -23,9 +27,18 @@ const loadDiffReport_1 = require("./utils/loadDiffReport");
|
|
|
23
27
|
const postProcessClient_1 = require("./utils/postProcessClient");
|
|
24
28
|
const prepareDtoModels_1 = require("./utils/prepareDtoModels");
|
|
25
29
|
const registerHandlebarTemplates_1 = require("./utils/registerHandlebarTemplates");
|
|
30
|
+
const resolveClassesModeTypes_1 = require("./utils/resolveClassesModeTypes");
|
|
26
31
|
const WriteClient_1 = require("./WriteClient");
|
|
32
|
+
/**
|
|
33
|
+
* Оркестратор генерации OpenAPI-клиента: парсинг спецификации, применение diff-отчёта и запись артефактов.
|
|
34
|
+
*/
|
|
27
35
|
class OpenApiClient {
|
|
36
|
+
static CACHE_FINGERPRINT_VERSION = 1;
|
|
37
|
+
static DEFAULT_CACHE_FILENAME = '.openapi-codegen-cache.json';
|
|
28
38
|
_writeClient = null;
|
|
39
|
+
/** ESLint paths from top-level rawOptions (not per items[] entry). */
|
|
40
|
+
eslintFixOptions = {};
|
|
41
|
+
/** Экземпляр WriteClient для записи сгенерированных файлов. */
|
|
29
42
|
get writeClient() {
|
|
30
43
|
if (!this._writeClient) {
|
|
31
44
|
throw new Error('WriteClient must be initialized');
|
|
@@ -64,6 +77,11 @@ class OpenApiClient {
|
|
|
64
77
|
strictOpenapi: rawOptions.strictOpenapi,
|
|
65
78
|
reportFile: rawOptions.reportFile,
|
|
66
79
|
governanceConfig: rawOptions.governanceConfig,
|
|
80
|
+
cache: rawOptions.cache,
|
|
81
|
+
cachePath: rawOptions.cachePath,
|
|
82
|
+
cacheStrategy: rawOptions.cacheStrategy,
|
|
83
|
+
cacheDebug: rawOptions.cacheDebug,
|
|
84
|
+
prettierConfigPath: rawOptions.prettierConfigPath,
|
|
67
85
|
}));
|
|
68
86
|
}
|
|
69
87
|
else {
|
|
@@ -100,6 +118,11 @@ class OpenApiClient {
|
|
|
100
118
|
strictOpenapi: rawOptions.strictOpenapi,
|
|
101
119
|
reportFile: rawOptions.reportFile,
|
|
102
120
|
governanceConfig: rawOptions.governanceConfig,
|
|
121
|
+
cache: rawOptions.cache,
|
|
122
|
+
cachePath: rawOptions.cachePath,
|
|
123
|
+
cacheStrategy: rawOptions.cacheStrategy,
|
|
124
|
+
cacheDebug: rawOptions.cacheDebug,
|
|
125
|
+
prettierConfigPath: rawOptions.prettierConfigPath,
|
|
103
126
|
},
|
|
104
127
|
];
|
|
105
128
|
}
|
|
@@ -138,18 +161,57 @@ class OpenApiClient {
|
|
|
138
161
|
miracles: item.miracles || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.miracles,
|
|
139
162
|
strictOpenapi: item.strictOpenapi ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.strictOpenapi,
|
|
140
163
|
reportFile: item.reportFile || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.reportFile,
|
|
141
|
-
|
|
142
|
-
useEslintFix: item.useEslintFix ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.useEslintFix,
|
|
164
|
+
prettierConfigPath: item.prettierConfigPath ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.prettierConfigPath,
|
|
143
165
|
governanceConfig: item.governanceConfig || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.governanceConfig,
|
|
166
|
+
cache: item.cache ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.cache,
|
|
167
|
+
cachePath: item.cachePath || Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.cachePath,
|
|
168
|
+
cacheStrategy: item.cacheStrategy ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.cacheStrategy,
|
|
169
|
+
cacheDebug: item.cacheDebug ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.cacheDebug,
|
|
144
170
|
};
|
|
145
171
|
}
|
|
146
|
-
|
|
147
|
-
const
|
|
148
|
-
for (const
|
|
149
|
-
|
|
150
|
-
|
|
172
|
+
getOutputRoots(items) {
|
|
173
|
+
const roots = new Set();
|
|
174
|
+
for (const item of items) {
|
|
175
|
+
const outputDirs = [item.output, item.outputCore, item.outputSchemas, item.outputModels, item.outputServices];
|
|
176
|
+
for (const dir of outputDirs) {
|
|
177
|
+
if (dir) {
|
|
178
|
+
roots.add((0, pathHelpers_1.resolveHelper)(process.cwd(), dir));
|
|
179
|
+
}
|
|
151
180
|
}
|
|
152
181
|
}
|
|
182
|
+
return Array.from(roots);
|
|
183
|
+
}
|
|
184
|
+
async cleanupStaleOutputs(items) {
|
|
185
|
+
const outputRoots = this.getOutputRoots(items);
|
|
186
|
+
const expectedFiles = this.writeClient.getExpectedOutputFiles();
|
|
187
|
+
for (const root of outputRoots) {
|
|
188
|
+
await this.removeStaleFilesInDirectory(root, expectedFiles);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
async removeStaleFilesInDirectory(path, expectedFiles) {
|
|
192
|
+
const stats = await fs_1.promises.stat(path).catch(() => null);
|
|
193
|
+
if (!stats) {
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
if (stats.isFile()) {
|
|
197
|
+
if (!expectedFiles.has(path)) {
|
|
198
|
+
await fileSystemHelpers_1.fileSystemHelpers.rmdir(path);
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
const entries = await fs_1.promises.readdir(path);
|
|
204
|
+
let hasAnyFile = false;
|
|
205
|
+
for (const entry of entries) {
|
|
206
|
+
const childPath = (0, pathHelpers_1.resolveHelper)(path, entry);
|
|
207
|
+
const childHasFiles = await this.removeStaleFilesInDirectory(childPath, expectedFiles);
|
|
208
|
+
hasAnyFile = hasAnyFile || childHasFiles;
|
|
209
|
+
}
|
|
210
|
+
if (!hasAnyFile) {
|
|
211
|
+
await fileSystemHelpers_1.fileSystemHelpers.rmdir(path);
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
return true;
|
|
153
215
|
}
|
|
154
216
|
async generateCodeForItems(items) {
|
|
155
217
|
if (items.length === 0) {
|
|
@@ -158,12 +220,27 @@ class OpenApiClient {
|
|
|
158
220
|
this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.STARTED(items.length));
|
|
159
221
|
try {
|
|
160
222
|
const start = process.hrtime.bigint();
|
|
161
|
-
|
|
162
|
-
|
|
223
|
+
const cacheEnabled = items[0]?.cache === true;
|
|
224
|
+
const generationCaches = new Map();
|
|
225
|
+
if (!cacheEnabled) {
|
|
226
|
+
this.warnOnSharedOutputsWithoutCache(items);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
for (const outputRoot of this.getUniqueResolvedOutputs(items)) {
|
|
230
|
+
const sampleItem = items.find(item => this.resolveOutputRoot(item.output) === outputRoot);
|
|
231
|
+
if (!sampleItem) {
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
const cachePath = this.resolveCachePathForOutput(sampleItem.output, sampleItem.cachePath);
|
|
235
|
+
const generationCache = new GenerationCache_1.GenerationCache(cachePath);
|
|
236
|
+
await generationCache.load();
|
|
237
|
+
generationCaches.set(outputRoot, generationCache);
|
|
238
|
+
}
|
|
163
239
|
}
|
|
164
240
|
for (const option of items) {
|
|
165
241
|
const fileStart = process.hrtime.bigint();
|
|
166
|
-
|
|
242
|
+
const generationCache = cacheEnabled ? (generationCaches.get(this.resolveOutputRoot(option.output)) ?? null) : null;
|
|
243
|
+
await this.generateSingle(option, generationCache);
|
|
167
244
|
const fileEnd = process.hrtime.bigint();
|
|
168
245
|
const fileDurationInSeconds = Number(fileEnd - fileStart) / 1e9;
|
|
169
246
|
this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.DURATION_FOR_FILE(option.input, fileDurationInSeconds.toFixed(3)));
|
|
@@ -174,6 +251,15 @@ class OpenApiClient {
|
|
|
174
251
|
else {
|
|
175
252
|
await this.writeClient.combineAndWrite();
|
|
176
253
|
}
|
|
254
|
+
await this.cleanupStaleOutputs(items);
|
|
255
|
+
if (cacheEnabled) {
|
|
256
|
+
for (const generationCache of generationCaches.values()) {
|
|
257
|
+
await generationCache.save();
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
const writeStats = this.writeClient.getWriteStats();
|
|
261
|
+
this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.WRITE_STATS(writeStats.written, writeStats.unchanged));
|
|
262
|
+
await this.runBatchEslintFixIfEnabled();
|
|
177
263
|
this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.FINISHED);
|
|
178
264
|
const end = process.hrtime.bigint();
|
|
179
265
|
const durationInSeconds = Number(end - start) / 1e9;
|
|
@@ -185,8 +271,34 @@ class OpenApiClient {
|
|
|
185
271
|
}
|
|
186
272
|
this.writeClient.logger.shutdownLogger();
|
|
187
273
|
}
|
|
188
|
-
|
|
189
|
-
|
|
274
|
+
getUniqueResolvedOutputs(items) {
|
|
275
|
+
return Array.from(new Set(items.map(item => this.resolveOutputRoot(item.output))));
|
|
276
|
+
}
|
|
277
|
+
resolveOutputRoot(output) {
|
|
278
|
+
return (0, pathHelpers_1.resolveHelper)(process.cwd(), output);
|
|
279
|
+
}
|
|
280
|
+
resolveCachePathForOutput(output, cachePath) {
|
|
281
|
+
if (cachePath.startsWith('/') || /^[A-Za-z]:[\\/]/.test(cachePath)) {
|
|
282
|
+
return cachePath;
|
|
283
|
+
}
|
|
284
|
+
return (0, pathHelpers_1.resolveHelper)(this.resolveOutputRoot(output), cachePath || OpenApiClient.DEFAULT_CACHE_FILENAME);
|
|
285
|
+
}
|
|
286
|
+
warnOnSharedOutputsWithoutCache(items) {
|
|
287
|
+
const countByOutput = new Map();
|
|
288
|
+
for (const item of items) {
|
|
289
|
+
const output = this.resolveOutputRoot(item.output);
|
|
290
|
+
countByOutput.set(output, (countByOutput.get(output) ?? 0) + 1);
|
|
291
|
+
}
|
|
292
|
+
const duplicatedOutputs = Array.from(countByOutput.entries())
|
|
293
|
+
.filter(([, count]) => count > 1)
|
|
294
|
+
.map(([output]) => output);
|
|
295
|
+
if (duplicatedOutputs.length === 0) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
this.writeClient.logger.warn(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.CACHE_SHARED_OUTPUT_WARNING(duplicatedOutputs.map(output => `- ${output}`).join('\n')));
|
|
299
|
+
}
|
|
300
|
+
async generateSingle(item, generationCache) {
|
|
301
|
+
const { input, output, outputCore, outputServices, outputModels, outputSchemas, httpClient, useOptions, useUnionTypes, excludeCoreServiceFiles, request, plugins, customExecutorPath, interfacePrefix, enumPrefix, typePrefix, useCancelableRequest, sortByRequired, useSeparatedIndexes, validationLibrary = ValidationLibrary_enum_1.ValidationLibrary.NONE, emptySchemaStrategy = EmptySchemaStrategy_enum_1.EmptySchemaStrategy.KEEP, useHistory, diffReport, modelsMode = ModelsMode_enum_1.ModelsMode.INTERFACES, strictOpenapi, reportFile, prettierConfigPath, governanceConfig, } = item;
|
|
190
302
|
const outputPaths = (0, getOutputPaths_1.getOutputPaths)({
|
|
191
303
|
output,
|
|
192
304
|
outputCore,
|
|
@@ -195,6 +307,28 @@ class OpenApiClient {
|
|
|
195
307
|
outputSchemas,
|
|
196
308
|
});
|
|
197
309
|
const absoluteInput = (0, pathHelpers_1.resolveHelper)(process.cwd(), input);
|
|
310
|
+
const cacheKey = this.getCacheKey(item, absoluteInput);
|
|
311
|
+
const cacheFingerprint = await this.getCacheFingerprint(item, absoluteInput);
|
|
312
|
+
const useEntityCache = item.cache && item.cacheStrategy === 'entity' && generationCache !== null;
|
|
313
|
+
if (useEntityCache) {
|
|
314
|
+
const cachedEntry = generationCache.get(cacheKey);
|
|
315
|
+
if (cachedEntry && cachedEntry.fingerprint === cacheFingerprint) {
|
|
316
|
+
const allFilesExist = await this.filesExist(cachedEntry.files);
|
|
317
|
+
if (allFilesExist) {
|
|
318
|
+
for (const filePath of cachedEntry.files) {
|
|
319
|
+
this.writeClient.registerOutputFile(filePath);
|
|
320
|
+
}
|
|
321
|
+
if (item.cacheDebug) {
|
|
322
|
+
this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.CACHE_HIT(input));
|
|
323
|
+
}
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
if (item.cacheDebug) {
|
|
328
|
+
this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.CACHE_MISS(input));
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
const knownFilesBefore = new Set(this.writeClient.getExpectedOutputFilesArray());
|
|
198
332
|
const generatorPlugins = await (0, loadGeneratorPlugins_1.loadGeneratorPlugins)(plugins);
|
|
199
333
|
const context = new Context_1.Context({
|
|
200
334
|
input: absoluteInput,
|
|
@@ -214,7 +348,7 @@ class OpenApiClient {
|
|
|
214
348
|
governanceConfig: governancePolicy,
|
|
215
349
|
});
|
|
216
350
|
const reportPath = await (0, validateOpenApiStrict_1.writeOpenApiStrictReport)(strictReport, reportFile);
|
|
217
|
-
this.writeClient.logger.forceInfo(
|
|
351
|
+
this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.GENERATION.STRICT_REPORT_CREATED(reportPath));
|
|
218
352
|
if (strictReport.summary.errors > 0) {
|
|
219
353
|
throw new Error(`Strict OpenAPI validation failed with ${strictReport.summary.errors} error(s). Report: ${reportPath}`);
|
|
220
354
|
}
|
|
@@ -225,12 +359,17 @@ class OpenApiClient {
|
|
|
225
359
|
useUnionTypes,
|
|
226
360
|
useOptions,
|
|
227
361
|
validationLibrary,
|
|
362
|
+
useBatchEslintFix: Boolean(this.eslintFixOptions.tsconfigPath && this.eslintFixOptions.eslintConfigPath),
|
|
228
363
|
});
|
|
229
364
|
const diffReportData = await this.loadDiffReportIfNeeded({
|
|
230
365
|
useHistory,
|
|
231
366
|
diffReport,
|
|
232
367
|
inputPath: absoluteInput,
|
|
233
368
|
});
|
|
369
|
+
if (useHistory && !diffReportData) {
|
|
370
|
+
const reportPath = diffReport || Consts_1.DEFAULT_ANALYZE_DIFF_REPORT_PATH;
|
|
371
|
+
this.writeClient.logger.warn(LoggerMessages_1.LOGGER_MESSAGES.DIFF_REPORT.USE_HISTORY_NO_REPORT(reportPath));
|
|
372
|
+
}
|
|
234
373
|
this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.OPENAPI.DEFINING_VERSION);
|
|
235
374
|
switch (openApiVersion) {
|
|
236
375
|
case getOpenApiVersion_1.OpenApiVersion.V2: {
|
|
@@ -245,7 +384,7 @@ class OpenApiClient {
|
|
|
245
384
|
context,
|
|
246
385
|
});
|
|
247
386
|
const clientFinal = (0, postProcessClient_1.postProcessClient)(clientWithDiff);
|
|
248
|
-
const clientPrepared = modelsMode === ModelsMode_enum_1.ModelsMode.CLASSES ? (0, prepareDtoModels_1.prepareDtoModels)(clientFinal) : clientFinal;
|
|
387
|
+
const clientPrepared = modelsMode === ModelsMode_enum_1.ModelsMode.CLASSES ? (0, resolveClassesModeTypes_1.resolveClassesModeTypes)((0, prepareDtoModels_1.prepareDtoModels)(clientFinal)) : clientFinal;
|
|
249
388
|
this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.OPENAPI.WRITING_V2);
|
|
250
389
|
await this.writeClient.writeClient({
|
|
251
390
|
client: clientPrepared,
|
|
@@ -262,8 +401,7 @@ class OpenApiClient {
|
|
|
262
401
|
validationLibrary,
|
|
263
402
|
emptySchemaStrategy,
|
|
264
403
|
modelsMode,
|
|
265
|
-
|
|
266
|
-
useEslintFix,
|
|
404
|
+
prettierConfigPath,
|
|
267
405
|
});
|
|
268
406
|
break;
|
|
269
407
|
}
|
|
@@ -279,7 +417,7 @@ class OpenApiClient {
|
|
|
279
417
|
context,
|
|
280
418
|
});
|
|
281
419
|
const clientFinal = (0, postProcessClient_1.postProcessClient)(clientWithDiff);
|
|
282
|
-
const clientPrepared = modelsMode === ModelsMode_enum_1.ModelsMode.CLASSES ? (0, prepareDtoModels_1.prepareDtoModels)(clientFinal) : clientFinal;
|
|
420
|
+
const clientPrepared = modelsMode === ModelsMode_enum_1.ModelsMode.CLASSES ? (0, resolveClassesModeTypes_1.resolveClassesModeTypes)((0, prepareDtoModels_1.prepareDtoModels)(clientFinal)) : clientFinal;
|
|
283
421
|
this.writeClient.logger.info(LoggerMessages_1.LOGGER_MESSAGES.OPENAPI.WRITING_V3);
|
|
284
422
|
await this.writeClient.writeClient({
|
|
285
423
|
client: clientPrepared,
|
|
@@ -296,12 +434,108 @@ class OpenApiClient {
|
|
|
296
434
|
validationLibrary,
|
|
297
435
|
emptySchemaStrategy,
|
|
298
436
|
modelsMode,
|
|
299
|
-
|
|
300
|
-
useEslintFix,
|
|
437
|
+
prettierConfigPath,
|
|
301
438
|
});
|
|
302
439
|
break;
|
|
303
440
|
}
|
|
304
441
|
}
|
|
442
|
+
const generatedFiles = this.writeClient.getExpectedOutputFilesArray().filter(filePath => !knownFilesBefore.has(filePath));
|
|
443
|
+
if (item.cache && generationCache) {
|
|
444
|
+
generationCache.set({
|
|
445
|
+
key: cacheKey,
|
|
446
|
+
fingerprint: cacheFingerprint,
|
|
447
|
+
files: generatedFiles,
|
|
448
|
+
updatedAt: Date.now(),
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
getCacheKey(item, absoluteInput) {
|
|
453
|
+
return GenerationCache_1.GenerationCache.hash(JSON.stringify({
|
|
454
|
+
input: absoluteInput,
|
|
455
|
+
output: item.output,
|
|
456
|
+
outputCore: item.outputCore,
|
|
457
|
+
outputServices: item.outputServices,
|
|
458
|
+
outputModels: item.outputModels,
|
|
459
|
+
outputSchemas: item.outputSchemas,
|
|
460
|
+
}));
|
|
461
|
+
}
|
|
462
|
+
async getCacheFingerprint(item, absoluteInput) {
|
|
463
|
+
const specContent = await fileSystemHelpers_1.fileSystemHelpers.readFile(absoluteInput, 'utf8');
|
|
464
|
+
const fingerprint = {
|
|
465
|
+
cacheFingerprintVersion: OpenApiClient.CACHE_FINGERPRINT_VERSION,
|
|
466
|
+
generatorVersion: process.env.npm_package_version || 'dev',
|
|
467
|
+
specHash: GenerationCache_1.GenerationCache.hash(specContent),
|
|
468
|
+
options: {
|
|
469
|
+
httpClient: item.httpClient,
|
|
470
|
+
useOptions: item.useOptions,
|
|
471
|
+
useUnionTypes: item.useUnionTypes,
|
|
472
|
+
includeSchemasFiles: item.includeSchemasFiles,
|
|
473
|
+
excludeCoreServiceFiles: item.excludeCoreServiceFiles,
|
|
474
|
+
request: item.request,
|
|
475
|
+
plugins: item.plugins,
|
|
476
|
+
customExecutorPath: item.customExecutorPath,
|
|
477
|
+
interfacePrefix: item.interfacePrefix,
|
|
478
|
+
enumPrefix: item.enumPrefix,
|
|
479
|
+
typePrefix: item.typePrefix,
|
|
480
|
+
useCancelableRequest: item.useCancelableRequest,
|
|
481
|
+
sortByRequired: item.sortByRequired,
|
|
482
|
+
useSeparatedIndexes: item.useSeparatedIndexes,
|
|
483
|
+
validationLibrary: item.validationLibrary,
|
|
484
|
+
emptySchemaStrategy: item.emptySchemaStrategy,
|
|
485
|
+
useHistory: item.useHistory,
|
|
486
|
+
diffReport: item.diffReport,
|
|
487
|
+
modelsMode: item.modelsMode,
|
|
488
|
+
strictOpenapi: item.strictOpenapi,
|
|
489
|
+
},
|
|
490
|
+
};
|
|
491
|
+
return GenerationCache_1.GenerationCache.hash(JSON.stringify(fingerprint));
|
|
492
|
+
}
|
|
493
|
+
async filesExist(paths) {
|
|
494
|
+
for (const filePath of paths) {
|
|
495
|
+
const exists = await fileSystemHelpers_1.fileSystemHelpers.exists(filePath);
|
|
496
|
+
if (!exists) {
|
|
497
|
+
return false;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
return true;
|
|
501
|
+
}
|
|
502
|
+
/**
|
|
503
|
+
* Runs batch ESLint fix after combineAndWrite / combineAndWrightSimple when both paths are set.
|
|
504
|
+
* Warns and skips when only one path is provided; always clears the WriteClient lint registry.
|
|
505
|
+
*/
|
|
506
|
+
async runBatchEslintFixIfEnabled() {
|
|
507
|
+
const opts = this.eslintFixOptions;
|
|
508
|
+
const hasTsconfig = !!opts.tsconfigPath;
|
|
509
|
+
const hasEslintConfig = !!opts.eslintConfigPath;
|
|
510
|
+
if (!hasTsconfig && !hasEslintConfig) {
|
|
511
|
+
this.writeClient.clearLintTargets();
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
if (!hasTsconfig || !hasEslintConfig) {
|
|
515
|
+
this.writeClient.logger.warn(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_PATHS_MISSING);
|
|
516
|
+
this.writeClient.clearLintTargets();
|
|
517
|
+
return;
|
|
518
|
+
}
|
|
519
|
+
try {
|
|
520
|
+
const { files, includeGlobs } = this.writeClient.getLintTargets();
|
|
521
|
+
if (files.length === 0) {
|
|
522
|
+
return;
|
|
523
|
+
}
|
|
524
|
+
const fixStart = process.hrtime.bigint();
|
|
525
|
+
this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_BATCH_STARTED);
|
|
526
|
+
await (0, eslintFix_1.eslintFixBatch)({
|
|
527
|
+
files,
|
|
528
|
+
includeGlobs,
|
|
529
|
+
tsconfigPath: opts.tsconfigPath,
|
|
530
|
+
eslintConfigPath: opts.eslintConfigPath,
|
|
531
|
+
});
|
|
532
|
+
const fixEnd = process.hrtime.bigint();
|
|
533
|
+
const durationInSeconds = Number(fixEnd - fixStart) / 1e9;
|
|
534
|
+
this.writeClient.logger.forceInfo(LoggerMessages_1.LOGGER_MESSAGES.FORMATTING.ESLINT_BATCH_FINISHED(durationInSeconds.toFixed(3)));
|
|
535
|
+
}
|
|
536
|
+
finally {
|
|
537
|
+
this.writeClient.clearLintTargets();
|
|
538
|
+
}
|
|
305
539
|
}
|
|
306
540
|
async loadDiffReportIfNeeded(params) {
|
|
307
541
|
return (0, loadDiffReport_1.loadDiffReport)({
|
|
@@ -321,8 +555,13 @@ class OpenApiClient {
|
|
|
321
555
|
openApiVersion: params.openApiVersion,
|
|
322
556
|
diffReport: params.diffReport,
|
|
323
557
|
prefix: params.context.prefix,
|
|
558
|
+
context: params.context,
|
|
324
559
|
});
|
|
325
560
|
}
|
|
561
|
+
/**
|
|
562
|
+
* Запускает генерацию клиента по опциям CLI или конфигурации.
|
|
563
|
+
* @param rawOptions сырые опции генерации
|
|
564
|
+
*/
|
|
326
565
|
async generate(rawOptions) {
|
|
327
566
|
const logger = new Logger_1.Logger({
|
|
328
567
|
level: rawOptions.logLevel ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.logLevel,
|
|
@@ -330,6 +569,7 @@ class OpenApiClient {
|
|
|
330
569
|
logOutput: rawOptions.logTarget ?? Consts_1.COMMON_DEFAULT_OPTIONS_VALUES.logTarget,
|
|
331
570
|
});
|
|
332
571
|
this._writeClient = new WriteClient_1.WriteClient(logger);
|
|
572
|
+
this.eslintFixOptions = (0, TEslintFixOptions_1.extractEslintFixOptions)(rawOptions);
|
|
333
573
|
const items = this.normalizeOptions(rawOptions).map(item => this.addDefaultValues(item));
|
|
334
574
|
await this.generateCodeForItems(items);
|
|
335
575
|
}
|
|
@@ -18,18 +18,25 @@ import { writeClientSchemasIndex } from './utils/writeClientSchemasIndex';
|
|
|
18
18
|
import { writeClientServices } from './utils/writeClientServices';
|
|
19
19
|
import { writeClientServicesIndex } from './utils/writeClientServicesIndex';
|
|
20
20
|
import { writeClientSimpleIndex } from './utils/writeClientSimpleIndex';
|
|
21
|
+
import { WriteFileIfChangedResult } from './utils/writeFileIfChanged';
|
|
21
22
|
/**
|
|
22
|
-
*
|
|
23
|
-
* @
|
|
24
|
-
* @
|
|
25
|
-
* @
|
|
26
|
-
* @
|
|
27
|
-
* @
|
|
28
|
-
* @
|
|
29
|
-
* @
|
|
30
|
-
* @
|
|
31
|
-
* @
|
|
32
|
-
* @
|
|
23
|
+
* Параметры записи OpenAPI-клиента на диск.
|
|
24
|
+
* @property client клиент со всеми моделями и сервисами
|
|
25
|
+
* @property templates загруженные Handlebars-шаблоны
|
|
26
|
+
* @property outputPaths относительные пути выходных директорий
|
|
27
|
+
* @property httpClient выбранный HTTP-клиент
|
|
28
|
+
* @property useOptions использовать options-функции вместо аргументов
|
|
29
|
+
* @property useUnionTypes использовать union types вместо enum
|
|
30
|
+
* @property excludeCoreServiceFiles исключить генерацию core и services
|
|
31
|
+
* @property [request] путь к кастомному request-файлу
|
|
32
|
+
* @property [customExecutorPath] путь к кастомному executor
|
|
33
|
+
* @property [useCancelableRequest] использовать cancelable request type
|
|
34
|
+
* @property [useSeparatedIndexes] писать отдельные index-файлы для core, models, schemas и services
|
|
35
|
+
* @property [validationLibrary] библиотека валидации схем
|
|
36
|
+
* @property emptySchemaStrategy стратегия обработки пустых схем
|
|
37
|
+
* @property [modelsMode] режим генерации моделей
|
|
38
|
+
* @property [useProjectPrettier] форматировать через Prettier проекта
|
|
39
|
+
* @property [useEslintFix] применять ESLint fix к сгенерированным файлам
|
|
33
40
|
*/
|
|
34
41
|
type TWriteClientProps = {
|
|
35
42
|
client: Client;
|
|
@@ -46,32 +53,81 @@ type TWriteClientProps = {
|
|
|
46
53
|
validationLibrary?: ValidationLibrary;
|
|
47
54
|
emptySchemaStrategy: EmptySchemaStrategy;
|
|
48
55
|
modelsMode?: ModelsMode;
|
|
49
|
-
|
|
50
|
-
useEslintFix?: boolean;
|
|
56
|
+
prettierConfigPath?: string;
|
|
51
57
|
};
|
|
52
58
|
type TAPIClientGeneratorConfig = Omit<TWriteClientProps, 'httpClient' | 'useOptions' | 'request' | 'useCancelableRequest' | 'useSeparatedIndexes'> & {
|
|
53
59
|
schemaModels: Model[];
|
|
54
60
|
};
|
|
55
61
|
/**
|
|
56
|
-
*
|
|
62
|
+
* Клиент записи сгенерированных артефактов и сборки index-файлов.
|
|
57
63
|
*/
|
|
58
64
|
export declare class WriteClient {
|
|
59
65
|
private config;
|
|
66
|
+
private expectedOutputFiles;
|
|
67
|
+
private writeStats;
|
|
68
|
+
/** Absolute paths of generated model/service files for batch ESLint. */
|
|
69
|
+
private lintTargetFiles;
|
|
70
|
+
/** Output directory globs for the temporary tsconfig include. */
|
|
71
|
+
private lintIncludeGlobs;
|
|
60
72
|
private _logger;
|
|
73
|
+
/**
|
|
74
|
+
* @param [logger] логгер записи клиента
|
|
75
|
+
*/
|
|
61
76
|
constructor(logger?: Logger);
|
|
62
77
|
/**
|
|
63
|
-
*
|
|
78
|
+
* Записывает OpenAPI-клиент по шаблонам в выходные директории.
|
|
79
|
+
* @param options параметры записи клиента
|
|
64
80
|
*/
|
|
65
81
|
writeClient(options: TWriteClientProps): Promise<void>;
|
|
66
82
|
private writeModelsAndFinalize;
|
|
67
83
|
/**
|
|
68
|
-
*
|
|
69
|
-
* @param config
|
|
84
|
+
* Сохраняет конфигурацию генератора для последующей сборки index-файла.
|
|
85
|
+
* @param config конфигурация генератора клиента
|
|
70
86
|
*/
|
|
71
87
|
buildClientGeneratorConfigMap(config: TAPIClientGeneratorConfig): void;
|
|
88
|
+
/** Собирает и записывает полный index клиента. */
|
|
72
89
|
combineAndWrite(): Promise<void>;
|
|
90
|
+
/** Собирает и записывает упрощённый index клиента. */
|
|
73
91
|
combineAndWrightSimple(): Promise<void>;
|
|
92
|
+
/** Логгер записи клиента. */
|
|
74
93
|
get logger(): Logger;
|
|
94
|
+
/**
|
|
95
|
+
* Записывает выходной файл, если содержимое изменилось.
|
|
96
|
+
* @param filePath путь к файлу
|
|
97
|
+
* @param content содержимое файла
|
|
98
|
+
* @returns результат записи: written или unchanged
|
|
99
|
+
*/
|
|
100
|
+
writeOutputFile(filePath: string, content: string): Promise<WriteFileIfChangedResult>;
|
|
101
|
+
/**
|
|
102
|
+
* Регистрирует ожидаемый выходной файл без записи содержимого.
|
|
103
|
+
* @param filePath путь к файлу
|
|
104
|
+
*/
|
|
105
|
+
registerOutputFile(filePath: string): void;
|
|
106
|
+
/** Возвращает множество ожидаемых выходных файлов. */
|
|
107
|
+
getExpectedOutputFiles(): Set<string>;
|
|
108
|
+
/** Возвращает список ожидаемых выходных файлов. */
|
|
109
|
+
getExpectedOutputFilesArray(): string[];
|
|
110
|
+
/** Возвращает статистику записи файлов. */
|
|
111
|
+
getWriteStats(): {
|
|
112
|
+
written: number;
|
|
113
|
+
unchanged: number;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Registers a generated file for the post-generation batch ESLint pass.
|
|
117
|
+
*
|
|
118
|
+
* @param filePath - Written file path (absolute or relative to cwd).
|
|
119
|
+
* @param outputRoot - Models or services output directory used to build a narrow tsconfig glob.
|
|
120
|
+
*/
|
|
121
|
+
registerLintTarget(filePath: string, outputRoot: string): void;
|
|
122
|
+
/**
|
|
123
|
+
* Returns collected lint targets after all writeClient* calls.
|
|
124
|
+
*/
|
|
125
|
+
getLintTargets(): {
|
|
126
|
+
files: string[];
|
|
127
|
+
includeGlobs: string[];
|
|
128
|
+
};
|
|
129
|
+
/** Clears the lint registry after batch ESLint finishes or is skipped. */
|
|
130
|
+
clearLintTargets(): void;
|
|
75
131
|
private buildSimpleClientIndexMap;
|
|
76
132
|
private buildClientIndexMap;
|
|
77
133
|
private finalizeAndWrite;
|
|
@@ -82,16 +138,27 @@ export declare class WriteClient {
|
|
|
82
138
|
private isSameModel;
|
|
83
139
|
private isSameShema;
|
|
84
140
|
private isSomeService;
|
|
141
|
+
/** Делегирует запись core-части клиента. */
|
|
85
142
|
writeClientCore: typeof writeClientCore;
|
|
143
|
+
/** Делегирует запись index core-части. */
|
|
86
144
|
writeClientCoreIndex: typeof writeClientCoreIndex;
|
|
145
|
+
/** Делегирует запись полного index клиента. */
|
|
87
146
|
writeClientFullIndex: typeof writeClientFullIndex;
|
|
147
|
+
/** Делегирует запись моделей клиента. */
|
|
88
148
|
writeClientModels: typeof writeClientModels;
|
|
149
|
+
/** Делегирует запись index моделей. */
|
|
89
150
|
writeClientModelsIndex: typeof writeClientModelsIndex;
|
|
151
|
+
/** Делегирует запись схем клиента. */
|
|
90
152
|
writeClientSchemas: typeof writeClientSchemas;
|
|
153
|
+
/** Делегирует запись index схем. */
|
|
91
154
|
writeClientSchemasIndex: typeof writeClientSchemasIndex;
|
|
155
|
+
/** Делегирует запись сервисов клиента. */
|
|
92
156
|
writeClientServices: typeof writeClientServices;
|
|
157
|
+
/** Делегирует запись index сервисов. */
|
|
93
158
|
writeClientServicesIndex: typeof writeClientServicesIndex;
|
|
159
|
+
/** Делегирует запись упрощённого index клиента. */
|
|
94
160
|
writeClientSimpleIndex: typeof writeClientSimpleIndex;
|
|
161
|
+
/** Делегирует запись executor клиента. */
|
|
95
162
|
writeClientExecutor: typeof writeClientExecutor;
|
|
96
163
|
}
|
|
97
164
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WriteClient.d.ts","sourceRoot":"","sources":["../../src/core/WriteClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM1C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"WriteClient.d.ts","sourceRoot":"","sources":["../../src/core/WriteClient.ts"],"names":[],"mappings":"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"}
|