ts-openapi-codegen 2.0.0-beta.9 → 2.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +177 -18
- package/README.rus.md +177 -21
- package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.d.ts +2 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.js +365 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.d.ts +2 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffRenameAndInvalidRegex.test.js +142 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.d.ts +2 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/__tests__/analyzeDiffTypeCoercion.test.js +137 -0
- package/dist/cli/analyzeDiff/analyzeDiff.d.ts +17 -0
- package/dist/cli/analyzeDiff/analyzeDiff.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/analyzeDiff.js +105 -0
- package/dist/cli/analyzeDiff/buildLegacyReport.d.ts +17 -0
- package/dist/cli/analyzeDiff/buildLegacyReport.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/buildLegacyReport.js +54 -0
- package/dist/cli/analyzeDiff/ciSummary.d.ts +6 -0
- package/dist/cli/analyzeDiff/ciSummary.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/ciSummary.js +20 -0
- package/dist/cli/analyzeDiff/diffEngine.d.ts +54 -0
- package/dist/cli/analyzeDiff/diffEngine.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/diffEngine.js +209 -0
- package/dist/cli/analyzeDiff/ignoreRules.d.ts +33 -0
- package/dist/cli/analyzeDiff/ignoreRules.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/ignoreRules.js +93 -0
- package/dist/cli/analyzeDiff/ignoreSemanticChanges.d.ts +10 -0
- package/dist/cli/analyzeDiff/ignoreSemanticChanges.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/ignoreSemanticChanges.js +84 -0
- package/dist/cli/analyzeDiff/logLegacyReport.d.ts +6 -0
- package/dist/cli/analyzeDiff/logLegacyReport.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/logLegacyReport.js +29 -0
- package/dist/cli/analyzeDiff/miracles.d.ts +89 -0
- package/dist/cli/analyzeDiff/miracles.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/miracles.js +325 -0
- package/dist/cli/analyzeDiff/pluginPaths.d.ts +5 -0
- package/dist/cli/analyzeDiff/pluginPaths.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/pluginPaths.js +13 -0
- package/dist/cli/analyzeDiff/report.d.ts +3 -0
- package/dist/cli/analyzeDiff/report.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/report.js +7 -0
- package/dist/cli/analyzeDiff/semanticDiffContext.d.ts +6 -0
- package/dist/cli/analyzeDiff/semanticDiffContext.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/semanticDiffContext.js +16 -0
- package/dist/cli/analyzeDiff/specParser.d.ts +22 -0
- package/dist/cli/analyzeDiff/specParser.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/specParser.js +80 -0
- package/dist/cli/analyzeDiff/types.d.ts +61 -0
- package/dist/cli/analyzeDiff/types.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/types.js +2 -0
- package/dist/cli/analyzeDiff/writeLegacyReport.d.ts +6 -0
- package/dist/cli/analyzeDiff/writeLegacyReport.d.ts.map +1 -0
- package/dist/cli/analyzeDiff/writeLegacyReport.js +21 -0
- package/dist/cli/checkAndUpdateConfig/checkConfig.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/checkConfig.js +13 -8
- package/dist/cli/checkAndUpdateConfig/constants.d.ts +0 -9
- package/dist/cli/checkAndUpdateConfig/constants.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/constants.js +1 -10
- package/dist/cli/checkAndUpdateConfig/updateConfig.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/updateConfig.js +11 -7
- package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/selectConfigAction.js +6 -3
- package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/updateExistingConfigFile.js +3 -2
- package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/validateAndMigrateConfigData.js +5 -0
- package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.d.ts.map +1 -1
- package/dist/cli/checkAndUpdateConfig/utils/writeExampleConfigFile.js +2 -2
- package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.d.ts +2 -0
- package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.d.ts.map +1 -0
- package/dist/cli/generateOpenApiClient/__tests__/generateOpenApiClient.strict.test.js +152 -0
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts +6 -2
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +70 -22
- package/dist/cli/index.js +62 -5
- package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/init.js +19 -6
- package/dist/cli/initOpenApiConfig/initConfig.d.ts +1 -0
- package/dist/cli/initOpenApiConfig/initConfig.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/initConfig.js +47 -24
- package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts +8 -1
- package/dist/cli/initOpenApiConfig/initCustomRequest.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/initCustomRequest.js +40 -8
- package/dist/cli/initOpenApiConfig/utils/buildConfig.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/utils/buildConfig.js +60 -0
- package/dist/cli/initOpenApiConfig/utils/validateSpecFile.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/utils/validateSpecFile.js +2 -1
- package/dist/cli/initOpenApiConfig/utils/writeConfigFile.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/utils/writeConfigFile.js +2 -1
- package/dist/cli/interactive/confirmDialog.d.ts.map +1 -1
- package/dist/cli/interactive/confirmDialog.js +3 -2
- package/dist/cli/interactive/constants.d.ts +2 -2
- package/dist/cli/interactive/constants.js +8 -8
- package/dist/cli/interactive/selectDialog.d.ts.map +1 -1
- package/dist/cli/interactive/selectDialog.js +11 -6
- package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
- package/dist/cli/previewChanges/previewChanges.js +151 -39
- package/dist/cli/previewChanges/utils/updateOutputPaths.d.ts.map +1 -1
- package/dist/cli/previewChanges/utils/updateOutputPaths.js +6 -0
- package/dist/cli/schemas/analyzeDiff.d.ts +14 -0
- package/dist/cli/schemas/analyzeDiff.d.ts.map +1 -0
- package/dist/cli/schemas/analyzeDiff.js +28 -0
- package/dist/cli/schemas/generate.d.ts +9 -0
- package/dist/cli/schemas/generate.d.ts.map +1 -1
- package/dist/cli/schemas/generate.js +9 -0
- package/dist/cli/schemas/index.d.ts +3 -1
- package/dist/cli/schemas/index.d.ts.map +1 -1
- package/dist/cli/schemas/index.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 +19 -2
- package/dist/common/Logger.d.ts +20 -1
- package/dist/common/Logger.d.ts.map +1 -1
- package/dist/common/Logger.js +70 -9
- package/dist/common/LoggerMessages.d.ts +136 -33
- package/dist/common/LoggerMessages.d.ts.map +1 -1
- package/dist/common/LoggerMessages.js +119 -45
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans.js +20 -4
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts +4 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts +10 -2
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts +10 -2
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts +10 -2
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts +77 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.d.ts.map +1 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV4.js +41 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts +79 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.d.ts.map +1 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV5.js +19 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +326 -28
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +15 -17
- package/dist/common/VersionedSchema/CommonSchemas.d.ts +52 -4
- package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/CommonSchemas.js +48 -7
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts +6 -2
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts +4 -0
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts +4 -0
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts +6 -2
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts +6 -2
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +6 -2
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +4 -0
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts +4 -0
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +6 -2
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +40 -1
- package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.d.ts +2 -0
- package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/__tests__/allUtils.test.js +185 -0
- package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.js +20 -3
- package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.js +19 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts +4 -0
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +68 -23
- package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.d.ts +1 -1
- package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.js +1 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts +10 -0
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +34 -15
- package/dist/common/__tests__/Logger.test.d.ts +2 -0
- package/dist/common/__tests__/Logger.test.d.ts.map +1 -0
- package/dist/common/__tests__/Logger.test.js +100 -0
- package/dist/common/utils/__tests__/convertArrayToObject.test.js +67 -169
- package/dist/common/utils/__tests__/eslintFix.test.d.ts +2 -0
- package/dist/common/utils/__tests__/eslintFix.test.d.ts.map +1 -0
- package/dist/common/utils/__tests__/eslintFix.test.js +134 -0
- package/dist/common/utils/__tests__/format.test.d.ts +2 -0
- package/dist/common/utils/__tests__/format.test.d.ts.map +1 -0
- package/dist/common/utils/__tests__/format.test.js +90 -0
- package/dist/common/utils/convertArrayToObject.d.ts.map +1 -1
- package/dist/common/utils/convertArrayToObject.js +54 -14
- package/dist/common/utils/eslintFix.d.ts +7 -0
- package/dist/common/utils/eslintFix.d.ts.map +1 -0
- package/dist/common/utils/eslintFix.js +78 -0
- 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 +39 -15
- package/dist/common/utils/jsonPath.d.ts +5 -0
- package/dist/common/utils/jsonPath.d.ts.map +1 -0
- package/dist/common/utils/jsonPath.js +27 -0
- package/dist/common/utils/normalizeObject.d.ts +2 -0
- package/dist/common/utils/normalizeObject.d.ts.map +1 -0
- package/dist/common/utils/normalizeObject.js +63 -0
- package/dist/core/Context.d.ts +8 -1
- package/dist/core/Context.d.ts.map +1 -1
- package/dist/core/Context.js +23 -4
- package/dist/core/OpenApiClient.d.ts +2 -0
- package/dist/core/OpenApiClient.d.ts.map +1 -1
- package/dist/core/OpenApiClient.js +127 -6
- package/dist/core/WriteClient.d.ts +12 -1
- package/dist/core/WriteClient.d.ts.map +1 -1
- package/dist/core/WriteClient.js +83 -8
- package/dist/core/__tests__/WriteClient.test.js +6 -1
- package/dist/core/api/v2/parser/__tests__/getModel.test.d.ts +2 -0
- package/dist/core/api/v2/parser/__tests__/getModel.test.d.ts.map +1 -0
- package/dist/core/api/v2/parser/__tests__/getModel.test.js +34 -0
- package/dist/core/api/v2/parser/getModel.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getModel.js +6 -1
- package/dist/core/api/v2/parser/getOperation.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperation.js +2 -0
- package/dist/core/api/v2/parser/getOperationResponses.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationResponses.js +9 -1
- package/dist/core/api/v2/parser/getType.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getType.js +2 -1
- package/dist/core/api/v2/types/OpenApiSchema.model.d.ts +2 -0
- package/dist/core/api/v2/types/OpenApiSchema.model.d.ts.map +1 -1
- package/dist/core/api/v3/parser/__tests__/getContent.test.d.ts +2 -0
- package/dist/core/api/v3/parser/__tests__/getContent.test.d.ts.map +1 -0
- package/dist/core/api/v3/parser/__tests__/getContent.test.js +65 -0
- package/dist/core/api/v3/parser/__tests__/getModel.test.d.ts +2 -0
- package/dist/core/api/v3/parser/__tests__/getModel.test.d.ts.map +1 -0
- package/dist/core/api/v3/parser/__tests__/getModel.test.js +34 -0
- package/dist/core/api/v3/parser/getContent.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getContent.js +21 -11
- package/dist/core/api/v3/parser/getModel.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getModel.js +6 -1
- package/dist/core/api/v3/parser/getOperation.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperation.js +2 -0
- package/dist/core/api/v3/parser/getOperationResponses.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationResponses.js +9 -1
- package/dist/core/api/v3/parser/getType.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getType.js +2 -1
- package/dist/core/api/v3/types/OpenApiSchema.model.d.ts +2 -0
- package/dist/core/api/v3/types/OpenApiSchema.model.d.ts.map +1 -1
- package/dist/core/governance/__tests__/evaluateGovernanceRules.test.d.ts +2 -0
- package/dist/core/governance/__tests__/evaluateGovernanceRules.test.d.ts.map +1 -0
- package/dist/core/governance/__tests__/evaluateGovernanceRules.test.js +100 -0
- package/dist/core/governance/__tests__/loadGovernanceConfig.test.d.ts +2 -0
- package/dist/core/governance/__tests__/loadGovernanceConfig.test.d.ts.map +1 -0
- package/dist/core/governance/__tests__/loadGovernanceConfig.test.js +71 -0
- package/dist/core/governance/evaluateGovernanceRules.d.ts +42 -0
- package/dist/core/governance/evaluateGovernanceRules.d.ts.map +1 -0
- package/dist/core/governance/evaluateGovernanceRules.js +134 -0
- package/dist/core/governance/governanceConfigSchema.d.ts +4 -0
- package/dist/core/governance/governanceConfigSchema.d.ts.map +1 -0
- package/dist/core/governance/governanceConfigSchema.js +39 -0
- package/dist/core/governance/loadGovernanceConfig.d.ts +7 -0
- package/dist/core/governance/loadGovernanceConfig.d.ts.map +1 -0
- package/dist/core/governance/loadGovernanceConfig.js +60 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -2
- package/dist/core/plugins/GeneratorPlugin.model.d.ts +42 -0
- package/dist/core/plugins/GeneratorPlugin.model.d.ts.map +1 -0
- package/dist/core/plugins/GeneratorPlugin.model.js +2 -0
- package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.d.ts +2 -0
- package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.d.ts.map +1 -0
- package/dist/core/plugins/__tests__/applySemanticDiffPluginHooks.test.js +115 -0
- package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.d.ts +2 -0
- package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.d.ts.map +1 -0
- package/dist/core/plugins/__tests__/loadGeneratorPlugins.test.js +62 -0
- package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts +28 -0
- package/dist/core/plugins/applySemanticDiffPluginHooks.d.ts.map +1 -0
- package/dist/core/plugins/applySemanticDiffPluginHooks.js +160 -0
- package/dist/core/plugins/builtins/xTypescriptTypePlugin.d.ts +6 -0
- package/dist/core/plugins/builtins/xTypescriptTypePlugin.d.ts.map +1 -0
- package/dist/core/plugins/builtins/xTypescriptTypePlugin.js +13 -0
- package/dist/core/plugins/getBuiltinPlugins.d.ts +6 -0
- package/dist/core/plugins/getBuiltinPlugins.d.ts.map +1 -0
- package/dist/core/plugins/getBuiltinPlugins.js +10 -0
- package/dist/core/plugins/index.d.ts +4 -0
- package/dist/core/plugins/index.d.ts.map +1 -0
- package/dist/core/plugins/index.js +5 -0
- package/dist/core/plugins/loadGeneratorPlugins.d.ts +6 -0
- package/dist/core/plugins/loadGeneratorPlugins.d.ts.map +1 -0
- package/dist/core/plugins/loadGeneratorPlugins.js +94 -0
- package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.d.ts +2 -0
- package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.d.ts.map +1 -0
- package/dist/core/semanticDiff/__tests__/analyzeOpenApiDiff.test.js +537 -0
- package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.d.ts +2 -0
- package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.d.ts.map +1 -0
- package/dist/core/semanticDiff/__tests__/semanticDiffReportSchema.test.js +66 -0
- package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts +45 -0
- package/dist/core/semanticDiff/analyzeOpenApiDiff.d.ts.map +1 -0
- package/dist/core/semanticDiff/analyzeOpenApiDiff.js +640 -0
- package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts +11 -0
- package/dist/core/semanticDiff/semanticDiffReportSchema.d.ts.map +1 -0
- package/dist/core/semanticDiff/semanticDiffReportSchema.js +132 -0
- package/dist/core/strict/__tests__/validateOpenApiStrict.test.d.ts +2 -0
- package/dist/core/strict/__tests__/validateOpenApiStrict.test.d.ts.map +1 -0
- package/dist/core/strict/__tests__/validateOpenApiStrict.test.js +156 -0
- package/dist/core/strict/validateOpenApiStrict.d.ts +43 -0
- package/dist/core/strict/validateOpenApiStrict.d.ts.map +1 -0
- package/dist/core/strict/validateOpenApiStrict.js +253 -0
- package/dist/core/types/base/ClientArtifacts.model.d.ts +2 -0
- package/dist/core/types/base/ClientArtifacts.model.d.ts.map +1 -1
- package/dist/core/types/base/Templates.model.d.ts +4 -1
- package/dist/core/types/base/Templates.model.d.ts.map +1 -1
- package/dist/core/types/enums/EmptySchemaStrategy.enum.d.ts +6 -0
- package/dist/core/types/enums/EmptySchemaStrategy.enum.d.ts.map +1 -0
- package/dist/core/types/enums/EmptySchemaStrategy.enum.js +9 -0
- package/dist/core/types/enums/ModelsMode.enum.d.ts +5 -0
- package/dist/core/types/enums/ModelsMode.enum.d.ts.map +1 -0
- package/dist/core/types/enums/ModelsMode.enum.js +8 -0
- package/dist/core/types/shared/Client.model.d.ts +2 -0
- package/dist/core/types/shared/Client.model.d.ts.map +1 -1
- package/dist/core/types/shared/DiffInfo.model.d.ts +13 -0
- package/dist/core/types/shared/DiffInfo.model.d.ts.map +1 -0
- package/dist/core/types/shared/DiffInfo.model.js +2 -0
- package/dist/core/types/shared/Miracle.model.d.ts +13 -0
- package/dist/core/types/shared/Miracle.model.d.ts.map +1 -0
- package/dist/core/types/shared/Miracle.model.js +2 -0
- package/dist/core/types/shared/Model.model.d.ts +23 -0
- package/dist/core/types/shared/Model.model.d.ts.map +1 -1
- package/dist/core/types/shared/Operation.model.d.ts +5 -0
- package/dist/core/types/shared/Operation.model.d.ts.map +1 -1
- package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
- package/dist/core/utils/__mocks__/templates.js +9 -0
- package/dist/core/utils/__tests__/applyDiffReportToClient.test.d.ts +2 -0
- package/dist/core/utils/__tests__/applyDiffReportToClient.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/applyDiffReportToClient.test.js +108 -0
- package/dist/core/utils/__tests__/getMappedType.test.js +2 -0
- package/dist/core/utils/__tests__/getOperationResponseCode.test.js +7 -2
- package/dist/core/utils/__tests__/getOperationResults.test.d.ts +2 -0
- package/dist/core/utils/__tests__/getOperationResults.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/getOperationResults.test.js +43 -0
- package/dist/core/utils/__tests__/getRelativeModelPath.test.d.ts +2 -0
- package/dist/core/utils/__tests__/getRelativeModelPath.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/getRelativeModelPath.test.js +27 -0
- package/dist/core/utils/__tests__/modelHelpers.test.d.ts +2 -0
- package/dist/core/utils/__tests__/modelHelpers.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/modelHelpers.test.js +151 -0
- package/dist/core/utils/__tests__/postProcessModelImports.test.d.ts +2 -0
- package/dist/core/utils/__tests__/postProcessModelImports.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/postProcessModelImports.test.js +67 -0
- package/dist/core/utils/__tests__/postProcessServiceImports.test.d.ts +2 -0
- package/dist/core/utils/__tests__/postProcessServiceImports.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/postProcessServiceImports.test.js +26 -0
- package/dist/core/utils/__tests__/prepareDtoModels.test.d.ts +2 -0
- package/dist/core/utils/__tests__/prepareDtoModels.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/prepareDtoModels.test.js +116 -0
- package/dist/core/utils/__tests__/resolveRefPath.test.d.ts +2 -0
- package/dist/core/utils/__tests__/resolveRefPath.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/resolveRefPath.test.js +22 -0
- package/dist/core/utils/__tests__/serviceHelpers.test.d.ts +2 -0
- package/dist/core/utils/__tests__/serviceHelpers.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/serviceHelpers.test.js +122 -0
- package/dist/core/utils/__tests__/writeClientExecutor.test.d.ts +2 -0
- package/dist/core/utils/__tests__/writeClientExecutor.test.d.ts.map +1 -0
- package/dist/core/utils/__tests__/writeClientExecutor.test.js +20 -0
- package/dist/core/utils/__tests__/writeClientModels.test.js +50 -0
- package/dist/core/utils/__tests__/writeClientSchemas.test.js +2 -0
- package/dist/core/utils/applyDiffReportToClient.d.ts +14 -0
- package/dist/core/utils/applyDiffReportToClient.d.ts.map +1 -0
- package/dist/core/utils/applyDiffReportToClient.js +367 -0
- package/dist/core/utils/getMappedType.d.ts.map +1 -1
- package/dist/core/utils/getMappedType.js +2 -0
- package/dist/core/utils/getOperationResponseCode.d.ts.map +1 -1
- package/dist/core/utils/getOperationResponseCode.js +10 -8
- package/dist/core/utils/getRelativeModelPath.d.ts +9 -0
- package/dist/core/utils/getRelativeModelPath.d.ts.map +1 -0
- package/dist/core/utils/getRelativeModelPath.js +37 -0
- package/dist/core/utils/loadDiffReport.d.ts +39 -0
- package/dist/core/utils/loadDiffReport.d.ts.map +1 -0
- package/dist/core/utils/loadDiffReport.js +51 -0
- package/dist/core/utils/modelHelpers.d.ts.map +1 -1
- package/dist/core/utils/modelHelpers.js +37 -3
- package/dist/core/utils/postProcessModelImports.d.ts.map +1 -1
- package/dist/core/utils/postProcessModelImports.js +14 -1
- package/dist/core/utils/postProcessServiceImports.d.ts.map +1 -1
- package/dist/core/utils/postProcessServiceImports.js +1 -2
- package/dist/core/utils/precompileTemplates.js +1 -0
- package/dist/core/utils/prepareDtoModels.d.ts +3 -0
- package/dist/core/utils/prepareDtoModels.d.ts.map +1 -0
- package/dist/core/utils/prepareDtoModels.js +189 -0
- package/dist/core/utils/registerHandlebarHelpers.d.ts.map +1 -1
- package/dist/core/utils/registerHandlebarHelpers.js +29 -1
- package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
- package/dist/core/utils/registerHandlebarTemplates.js +48 -41
- package/dist/core/utils/resolveRefPath.d.ts.map +1 -1
- package/dist/core/utils/resolveRefPath.js +1 -4
- package/dist/core/utils/validateRawOptions.d.ts +1 -1
- package/dist/core/utils/validateRawOptions.d.ts.map +1 -1
- package/dist/core/utils/validateRawOptions.js +4 -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 +6 -1
- package/dist/core/utils/writeClientCoreIndex.d.ts +1 -0
- package/dist/core/utils/writeClientCoreIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientCoreIndex.js +2 -2
- package/dist/core/utils/writeClientExecutor.d.ts +6 -1
- package/dist/core/utils/writeClientExecutor.d.ts.map +1 -1
- package/dist/core/utils/writeClientExecutor.js +22 -3
- package/dist/core/utils/writeClientFullIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientFullIndex.js +3 -1
- package/dist/core/utils/writeClientModels.d.ts +6 -0
- package/dist/core/utils/writeClientModels.d.ts.map +1 -1
- package/dist/core/utils/writeClientModels.js +24 -3
- package/dist/core/utils/writeClientModelsIndex.d.ts +2 -0
- package/dist/core/utils/writeClientModelsIndex.d.ts.map +1 -1
- package/dist/core/utils/writeClientModelsIndex.js +2 -2
- package/dist/core/utils/writeClientSchemas.d.ts +6 -1
- package/dist/core/utils/writeClientSchemas.d.ts.map +1 -1
- package/dist/core/utils/writeClientSchemas.js +16 -3
- package/dist/core/utils/writeClientServices.d.ts +2 -0
- package/dist/core/utils/writeClientServices.d.ts.map +1 -1
- package/dist/core/utils/writeClientServices.js +6 -2
- package/dist/templatesCompiled/cli/openApiConfig.d.ts +4 -1
- package/dist/templatesCompiled/cli/openApiConfig.d.ts.map +1 -1
- package/dist/templatesCompiled/cli/openApiConfig.js +88 -37
- package/dist/templatesCompiled/client/core/ApiError.js +1 -1
- package/dist/templatesCompiled/client/core/ApiRequestOptions.js +1 -1
- package/dist/templatesCompiled/client/core/ApiResult.js +1 -1
- package/dist/templatesCompiled/client/core/BaseDto.d.ts +8 -0
- package/dist/templatesCompiled/client/core/BaseDto.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/BaseDto.js +18 -0
- package/dist/templatesCompiled/client/core/axios/getResponseBody.js +1 -1
- package/dist/templatesCompiled/client/core/axios/request.js +3 -3
- package/dist/templatesCompiled/client/core/axios/sendRequest.js +4 -4
- package/dist/templatesCompiled/client/core/dtoUtils.d.ts +8 -0
- package/dist/templatesCompiled/client/core/dtoUtils.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/dtoUtils.js +18 -0
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts +2 -0
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -1
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.js +13 -8
- package/dist/templatesCompiled/client/core/executor/requestExecutor.js +1 -1
- package/dist/templatesCompiled/client/core/fetch/getResponseBody.js +1 -1
- package/dist/templatesCompiled/client/core/fetch/request.js +3 -3
- package/dist/templatesCompiled/client/core/functions/catchErrors.js +1 -1
- package/dist/templatesCompiled/client/core/functions/isBinary.js +1 -1
- package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +1 -1
- package/dist/templatesCompiled/client/core/node/getResponseBody.js +1 -1
- package/dist/templatesCompiled/client/core/node/request.js +3 -3
- package/dist/templatesCompiled/client/core/xhr/getResponseBody.js +1 -1
- package/dist/templatesCompiled/client/core/xhr/request.js +3 -3
- package/dist/templatesCompiled/client/core/xhr/sendRequest.js +4 -4
- package/dist/templatesCompiled/client/exportClient.d.ts +4 -0
- package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportClient.js +51 -13
- package/dist/templatesCompiled/client/exportModels.d.ts +34 -0
- package/dist/templatesCompiled/client/exportModels.d.ts.map +1 -0
- package/dist/templatesCompiled/client/exportModels.js +280 -0
- package/dist/templatesCompiled/client/exportSchema.d.ts +5 -1
- package/dist/templatesCompiled/client/exportSchema.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportSchema.js +37 -7
- package/dist/templatesCompiled/client/exportService.d.ts +9 -4
- package/dist/templatesCompiled/client/exportService.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportService.js +96 -37
- package/dist/templatesCompiled/client/indexCore.d.ts +3 -1
- package/dist/templatesCompiled/client/indexCore.d.ts.map +1 -1
- package/dist/templatesCompiled/client/indexCore.js +13 -2
- package/dist/templatesCompiled/client/indexFull.d.ts +10 -7
- package/dist/templatesCompiled/client/indexFull.d.ts.map +1 -1
- package/dist/templatesCompiled/client/indexFull.js +54 -33
- package/dist/templatesCompiled/client/indexModels.d.ts +7 -5
- package/dist/templatesCompiled/client/indexModels.d.ts.map +1 -1
- package/dist/templatesCompiled/client/indexModels.js +27 -18
- package/dist/templatesCompiled/client/indexSimple.d.ts +1 -0
- package/dist/templatesCompiled/client/indexSimple.d.ts.map +1 -1
- package/dist/templatesCompiled/client/indexSimple.js +4 -1
- package/dist/templatesCompiled/client/joi/exportSchema.js +5 -5
- package/dist/templatesCompiled/client/joi/partials/joiSchema.js +7 -7
- package/dist/templatesCompiled/client/joi/partials/joiSchemaComposition.js +4 -4
- package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.d.ts +27 -19
- package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.d.ts.map +1 -1
- package/dist/templatesCompiled/client/joi/partials/joiSchemaGeneric.js +144 -63
- package/dist/templatesCompiled/client/joi/partials/joiSchemaInterface.d.ts +5 -3
- package/dist/templatesCompiled/client/joi/partials/joiSchemaInterface.d.ts.map +1 -1
- package/dist/templatesCompiled/client/joi/partials/joiSchemaInterface.js +39 -12
- package/dist/templatesCompiled/client/jsonschema/exportSchema.d.ts +1 -0
- package/dist/templatesCompiled/client/jsonschema/exportSchema.d.ts.map +1 -1
- package/dist/templatesCompiled/client/jsonschema/exportSchema.js +21 -17
- package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchema.js +7 -7
- package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaArray.js +5 -5
- package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaComposition.js +2 -2
- package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaDictionary.js +5 -5
- package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaInterface.d.ts +3 -1
- package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaInterface.d.ts.map +1 -1
- package/dist/templatesCompiled/client/jsonschema/partials/jsonschemaSchemaInterface.js +45 -15
- package/dist/templatesCompiled/client/partials/exportInterface.d.ts +13 -5
- package/dist/templatesCompiled/client/partials/exportInterface.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/exportInterface.js +91 -21
- package/dist/templatesCompiled/client/partials/result.d.ts +6 -4
- package/dist/templatesCompiled/client/partials/result.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/result.js +16 -6
- package/dist/templatesCompiled/client/partials/serviceOption.d.ts +1 -0
- package/dist/templatesCompiled/client/partials/serviceOption.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/serviceOption.js +11 -4
- package/dist/templatesCompiled/client/yup/exportSchema.js +3 -3
- package/dist/templatesCompiled/client/yup/partials/yupSchema.js +7 -7
- package/dist/templatesCompiled/client/yup/partials/yupSchemaComposition.js +4 -4
- package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.d.ts +22 -16
- package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.d.ts.map +1 -1
- package/dist/templatesCompiled/client/yup/partials/yupSchemaGeneric.js +72 -60
- package/dist/templatesCompiled/client/yup/partials/yupSchemaInterface.d.ts +5 -3
- package/dist/templatesCompiled/client/yup/partials/yupSchemaInterface.d.ts.map +1 -1
- package/dist/templatesCompiled/client/yup/partials/yupSchemaInterface.js +39 -12
- package/dist/templatesCompiled/client/zod/exportSchema.js +3 -3
- package/dist/templatesCompiled/client/zod/partials/zodSchema.js +7 -7
- package/dist/templatesCompiled/client/zod/partials/zodSchemaArray.d.ts +5 -6
- package/dist/templatesCompiled/client/zod/partials/zodSchemaArray.d.ts.map +1 -1
- package/dist/templatesCompiled/client/zod/partials/zodSchemaArray.js +14 -28
- package/dist/templatesCompiled/client/zod/partials/zodSchemaComposition.d.ts +3 -0
- package/dist/templatesCompiled/client/zod/partials/zodSchemaComposition.d.ts.map +1 -1
- package/dist/templatesCompiled/client/zod/partials/zodSchemaComposition.js +32 -8
- package/dist/templatesCompiled/client/zod/partials/zodSchemaDictionary.d.ts +3 -4
- package/dist/templatesCompiled/client/zod/partials/zodSchemaDictionary.d.ts.map +1 -1
- package/dist/templatesCompiled/client/zod/partials/zodSchemaDictionary.js +9 -23
- package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.d.ts +27 -19
- package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.d.ts.map +1 -1
- package/dist/templatesCompiled/client/zod/partials/zodSchemaGeneric.js +77 -61
- package/dist/templatesCompiled/client/zod/partials/zodSchemaInterface.d.ts +4 -2
- package/dist/templatesCompiled/client/zod/partials/zodSchemaInterface.d.ts.map +1 -1
- package/dist/templatesCompiled/client/zod/partials/zodSchemaInterface.js +18 -7
- package/package.json +8 -6
- package/dist/common/defaultOptions.d.ts +0 -3
- package/dist/common/defaultOptions.d.ts.map +0 -1
- package/dist/common/defaultOptions.js +0 -28
- package/dist/core/utils/advancedDeduplicatePath.d.ts +0 -5
- package/dist/core/utils/advancedDeduplicatePath.d.ts.map +0 -1
- package/dist/core/utils/advancedDeduplicatePath.js +0 -29
package/README.md
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
- Supports tsc and @babel/plugin-transform-typescript
|
|
29
29
|
- Supports customization names of models
|
|
30
30
|
- Supports external references using [`swagger-parser`](https://github.com/APIDevTools/swagger-parser/)
|
|
31
|
+
- Supports binary request/response generation (`format: binary` -> `Blob`)
|
|
31
32
|
|
|
32
33
|
## Install
|
|
33
34
|
|
|
@@ -38,7 +39,7 @@ npm install ts-openapi-codegen --save-dev
|
|
|
38
39
|
|
|
39
40
|
## Usage
|
|
40
41
|
|
|
41
|
-
The CLI tool supports
|
|
42
|
+
The CLI tool supports six commands: `generate`, `check-config`, `update-config`, `init`, `preview-changes`, and `analyze-diff`.
|
|
42
43
|
|
|
43
44
|
### Command: `generate`
|
|
44
45
|
|
|
@@ -65,6 +66,7 @@ openapi generate --input ./spec.json --output ./dist
|
|
|
65
66
|
| `--useUnionTypes` | - | boolean | `false` | Use union types instead of enums |
|
|
66
67
|
| `--excludeCoreServiceFiles` | - | boolean | `false` | Exclude generation of core and service files |
|
|
67
68
|
| `--request` | - | string | - | Path to custom request file |
|
|
69
|
+
| `--customExecutorPath` | - | string | - | Path to custom `createExecutorAdapter` module |
|
|
68
70
|
| `--interfacePrefix` | - | string | `I` | Prefix for interface models |
|
|
69
71
|
| `--enumPrefix` | - | string | `E` | Prefix for enum models |
|
|
70
72
|
| `--typePrefix` | - | string | `T` | Prefix for type models |
|
|
@@ -74,6 +76,10 @@ openapi generate --input ./spec.json --output ./dist
|
|
|
74
76
|
| `--logLevel` | `-l` | string | `error` | Logging level: `info`, `warn`, or `error` |
|
|
75
77
|
| `--logTarget` | `-t` | string | `console` | Logging target: `console` or `file` |
|
|
76
78
|
| `--validationLibrary` | - | string | `none` | Validation library for schema generation: `none`, `zod`, `joi`, `yup`, or `jsonschema` |
|
|
79
|
+
| `--emptySchemaStrategy` | - | string | `keep` | Strategy for empty schemas: `keep`, `semantic`, or `skip` |
|
|
80
|
+
| `--modelsMode` | - | string | `interfaces` | Models generation mode: `interfaces` or `classes` |
|
|
81
|
+
| `--useHistory` | - | boolean | `false` | Apply diff report annotations during generation |
|
|
82
|
+
| `--diffReport` | - | string | `./openapi-diff-report.json` | Path to diff report JSON |
|
|
77
83
|
|
|
78
84
|
**Examples:**
|
|
79
85
|
```bash
|
|
@@ -96,38 +102,110 @@ openapi generate \
|
|
|
96
102
|
--logLevel info
|
|
97
103
|
```
|
|
98
104
|
|
|
99
|
-
### Command: `check-
|
|
105
|
+
### Command: `check-config`
|
|
100
106
|
|
|
101
107
|
Validates the configuration file structure and values.
|
|
102
108
|
|
|
103
109
|
**Usage:**
|
|
104
110
|
```bash
|
|
105
|
-
openapi check-
|
|
106
|
-
openapi check-
|
|
111
|
+
openapi check-config
|
|
112
|
+
openapi check-config --openapi-config ./custom-config.json
|
|
107
113
|
```
|
|
108
114
|
|
|
109
115
|
**Options:**
|
|
110
116
|
- `--openapi-config` / `-ocn` - Path to configuration file (default: `openapi.config.json`)
|
|
111
117
|
|
|
112
|
-
### Command: `
|
|
118
|
+
### Command: `update-config`
|
|
113
119
|
|
|
114
|
-
|
|
120
|
+
Updates the configuration file to the latest supported schema version.
|
|
115
121
|
|
|
116
122
|
**Usage:**
|
|
117
123
|
```bash
|
|
118
|
-
|
|
119
|
-
openapi
|
|
124
|
+
openapi update-config
|
|
125
|
+
openapi update-config --openapi-config ./custom-config.json
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Options:**
|
|
129
|
+
- `--openapi-config` / `-ocn` - Path to configuration file (default: `openapi.config.json`)
|
|
120
130
|
|
|
121
|
-
|
|
122
|
-
|
|
131
|
+
### Command: `init`
|
|
132
|
+
|
|
133
|
+
Generates a configuration file template.
|
|
134
|
+
|
|
135
|
+
**Usage:**
|
|
136
|
+
```bash
|
|
137
|
+
# Generate config using default settings
|
|
138
|
+
openapi init
|
|
123
139
|
|
|
124
140
|
# Custom config file name
|
|
125
|
-
openapi init
|
|
141
|
+
openapi init --openapi-config ./my-config.json
|
|
142
|
+
|
|
143
|
+
# Specify directory with OpenAPI specs
|
|
144
|
+
openapi init --specs-dir ./openapi
|
|
126
145
|
```
|
|
127
146
|
|
|
128
147
|
**Options:**
|
|
129
148
|
- `--openapi-config` / `-ocn` - Path to output configuration file (default: `openapi.config.json`)
|
|
130
|
-
- `--
|
|
149
|
+
- `--specs-dir` / `-sd` - Directory with OpenAPI specification files (default: `./openapi`)
|
|
150
|
+
- `--request` - Path to custom request file
|
|
151
|
+
- `--useCancelableRequest` - Generate cancelable request handling
|
|
152
|
+
- `--useInteractiveMode` - Enable interactive mode for guided setup
|
|
153
|
+
|
|
154
|
+
### Command: `preview-changes`
|
|
155
|
+
|
|
156
|
+
Previews differences between already generated code and newly generated output without overwriting your current generated directory.
|
|
157
|
+
|
|
158
|
+
**Usage:**
|
|
159
|
+
```bash
|
|
160
|
+
openapi preview-changes
|
|
161
|
+
openapi preview-changes --openapi-config ./custom-config.json
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**Options:**
|
|
165
|
+
- `--openapi-config` / `-ocn` - Path to configuration file (default: `openapi.config.json`)
|
|
166
|
+
- `--generated-dir` / `-gd` - Directory with current generated files (default: `./generated`)
|
|
167
|
+
- `--preview-dir` / `-pd` - Temporary preview generation directory (default: `./.ts-openapi-codegen-preview-changes`)
|
|
168
|
+
- `--diff-dir` / `-dd` - Directory for diff reports (default: `./.ts-openapi-codegen-diff-changes`)
|
|
169
|
+
|
|
170
|
+
### Command: `analyze-diff`
|
|
171
|
+
|
|
172
|
+
Analyzes differences between two OpenAPI specifications and produces a JSON report.
|
|
173
|
+
|
|
174
|
+
**Usage:**
|
|
175
|
+
```bash
|
|
176
|
+
openapi analyze-diff --input ./openapi/current.yaml --compare-with ./openapi/previous.yaml --output-report ./openapi-diff-report.json
|
|
177
|
+
openapi analyze-diff --input ./openapi/spec.yaml --git HEAD~1
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Options:**
|
|
181
|
+
- `--input` / `-i` - Path to current OpenAPI specification file (required)
|
|
182
|
+
- `--compare-with` - Path to previous OpenAPI specification file
|
|
183
|
+
- `--git` - Git ref to read previous specification version from (e.g. `HEAD~1`)
|
|
184
|
+
- `--output-report` - Path to save JSON diff report (default: `./openapi-diff-report.json`)
|
|
185
|
+
|
|
186
|
+
#### Miracles and confirmation
|
|
187
|
+
|
|
188
|
+
The diff report can contain a `miracles` section with detected renames/type-coercions. Only confirmed miracles are applied in generation.
|
|
189
|
+
|
|
190
|
+
**How to confirm miracles:**
|
|
191
|
+
1. Run `analyze-diff` and open the generated report (default: `./openapi-diff-report.json`).
|
|
192
|
+
2. Find the entry in `miracles` you want to accept.
|
|
193
|
+
3. Change `"status": "auto-generated"` to `"status": "confirmed"` and commit the report.
|
|
194
|
+
|
|
195
|
+
Example (excerpt):
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"miracles": [
|
|
199
|
+
{
|
|
200
|
+
"oldPath": "$.components.schemas.User.properties.user_name",
|
|
201
|
+
"newPath": "$.components.schemas.User.properties.userName",
|
|
202
|
+
"type": "RENAME",
|
|
203
|
+
"confidence": 0.85,
|
|
204
|
+
"status": "confirmed"
|
|
205
|
+
}
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
```
|
|
131
209
|
|
|
132
210
|
### Configuration File
|
|
133
211
|
|
|
@@ -148,7 +226,23 @@ Instead of passing all options via CLI, you can use a configuration file. Create
|
|
|
148
226
|
"useCancelableRequest": false,
|
|
149
227
|
"sortByRequired": false,
|
|
150
228
|
"useSeparatedIndexes": false,
|
|
151
|
-
"request": "./custom-request.ts"
|
|
229
|
+
"request": "./custom-request.ts",
|
|
230
|
+
"customExecutorPath": "./custom/createExecutorAdapter.ts",
|
|
231
|
+
"modelsMode": "interfaces",
|
|
232
|
+
"useHistory": false,
|
|
233
|
+
"diffReport": "./openapi-diff-report.json",
|
|
234
|
+
"models": {
|
|
235
|
+
"mode": "interfaces"
|
|
236
|
+
},
|
|
237
|
+
"analyze": {
|
|
238
|
+
"useHistory": false,
|
|
239
|
+
"reportPath": "./openapi-diff-report.json"
|
|
240
|
+
},
|
|
241
|
+
"miracles": {
|
|
242
|
+
"enabled": true,
|
|
243
|
+
"confidence": 1,
|
|
244
|
+
"types": ["RENAME", "TYPE_COERCION"]
|
|
245
|
+
}
|
|
152
246
|
}
|
|
153
247
|
```
|
|
154
248
|
|
|
@@ -199,6 +293,7 @@ Instead of passing all options via CLI, you can use a configuration file. Create
|
|
|
199
293
|
| `useUnionTypes` | boolean | `false` | Use union types instead of enums |
|
|
200
294
|
| `excludeCoreServiceFiles` | boolean | `false` | Exclude core and service files generation |
|
|
201
295
|
| `request` | string | - | Path to custom request file |
|
|
296
|
+
| `customExecutorPath` | string | - | Path to custom `createExecutorAdapter` module |
|
|
202
297
|
| `interfacePrefix` | string | `I` | Prefix for interface models |
|
|
203
298
|
| `enumPrefix` | string | `E` | Prefix for enum models |
|
|
204
299
|
| `typePrefix` | string | `T` | Prefix for type models |
|
|
@@ -207,8 +302,15 @@ Instead of passing all options via CLI, you can use a configuration file. Create
|
|
|
207
302
|
| `useSeparatedIndexes` | boolean | `false` | Use separate index files |
|
|
208
303
|
| `items` | array | - | Array of configurations (for multi-options format) |
|
|
209
304
|
| `validationLibrary` | string | `none` | Validation library for schema generation: `none`, `zod`, `joi`, `yup`, or `jsonschema` |
|
|
305
|
+
| `emptySchemaStrategy` | string | `keep` | Strategy for empty schemas: `keep`, `semantic`, or `skip` |
|
|
306
|
+
| `modelsMode` | string | `interfaces` | Models generation mode: `interfaces` or `classes` |
|
|
307
|
+
| `useHistory` | boolean | `false` | Apply diff report annotations during generation |
|
|
308
|
+
| `diffReport` | string | `./openapi-diff-report.json` | Path to diff report JSON |
|
|
309
|
+
| `models` | object | - | Models config section (e.g. `mode`) |
|
|
310
|
+
| `analyze` | object | - | Analyze config section (e.g. reportPath, useHistory, ignore) |
|
|
311
|
+
| `miracles` | object | - | Miracles config section (enabled, confidence, types) |
|
|
210
312
|
|
|
211
|
-
**Note:** You can use the `init
|
|
313
|
+
**Note:** You can use the `init` command to generate a template configuration file.
|
|
212
314
|
|
|
213
315
|
## Examples
|
|
214
316
|
|
|
@@ -222,15 +324,31 @@ openapi generate --input ./spec.json --output ./dist
|
|
|
222
324
|
**With configuration file:**
|
|
223
325
|
```bash
|
|
224
326
|
# First, create config file
|
|
225
|
-
openapi init
|
|
327
|
+
openapi init
|
|
226
328
|
|
|
227
329
|
# Then generate
|
|
228
330
|
openapi generate
|
|
229
331
|
```
|
|
230
332
|
|
|
333
|
+
**With DTO models (classes mode):**
|
|
334
|
+
```bash
|
|
335
|
+
openapi generate --input ./spec.json --output ./dist --modelsMode classes
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
**Generate diff report:**
|
|
339
|
+
```bash
|
|
340
|
+
openapi analyze-diff --input ./openapi/current.yaml --compare-with ./openapi/previous.yaml --output-report ./openapi-diff-report.json
|
|
341
|
+
```
|
|
342
|
+
|
|
231
343
|
**Check configuration:**
|
|
232
344
|
```bash
|
|
233
|
-
openapi check-
|
|
345
|
+
openapi check-config
|
|
346
|
+
openapi update-config
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
**Preview changes before applying:**
|
|
350
|
+
```bash
|
|
351
|
+
openapi preview-changes
|
|
234
352
|
```
|
|
235
353
|
|
|
236
354
|
### Using NPX
|
|
@@ -247,8 +365,10 @@ npx ts-openapi-codegen generate --input ./spec.json --output ./dist
|
|
|
247
365
|
"scripts": {
|
|
248
366
|
"generate": "openapi generate --input ./spec.json --output ./dist",
|
|
249
367
|
"generate:config": "openapi generate",
|
|
250
|
-
"check-config": "openapi check-
|
|
251
|
-
"
|
|
368
|
+
"check-config": "openapi check-config",
|
|
369
|
+
"update-config": "openapi update-config",
|
|
370
|
+
"init-config": "openapi init",
|
|
371
|
+
"preview-changes": "openapi preview-changes"
|
|
252
372
|
}
|
|
253
373
|
}
|
|
254
374
|
```
|
|
@@ -378,6 +498,20 @@ The `--validationLibrary` parameter allows you to generate runtime validation sc
|
|
|
378
498
|
- **yup** - Generate Yup validation schemas
|
|
379
499
|
- **jsonschema** - Generate JSON Schema validation schemas
|
|
380
500
|
|
|
501
|
+
When `--useHistory` is enabled and a diff report marks a type change, validators will attempt to coerce values:
|
|
502
|
+
- **Zod** uses `z.coerce.*`
|
|
503
|
+
- **Joi** uses `Joi.alternatives().try(...)`
|
|
504
|
+
- **Yup** uses `.transform(...)`
|
|
505
|
+
- **JSON Schema (AJV)** enables `coerceTypes`
|
|
506
|
+
|
|
507
|
+
### Models mode `--modelsMode`
|
|
508
|
+
|
|
509
|
+
By default, models are generated as TypeScript interfaces/types. When `--modelsMode classes` is used, the generator produces:
|
|
510
|
+
- `*Raw` interfaces matching the API JSON
|
|
511
|
+
- `*Dto` classes with getters, defaults, recursive constructors, and `toJSON()`
|
|
512
|
+
|
|
513
|
+
The output is consolidated into a single `models.ts` file, and `BaseDto`/`dtoUtils` are emitted in `core`.
|
|
514
|
+
|
|
381
515
|
Let's say we have the following model:
|
|
382
516
|
|
|
383
517
|
```json
|
|
@@ -630,6 +764,31 @@ const service = new SimpleService(executor);
|
|
|
630
764
|
await service.getCallWithoutParametersAndResponse({ timeout: 5000 });
|
|
631
765
|
```
|
|
632
766
|
|
|
767
|
+
#### Using generated `createClient` with `customExecutorPath` and `executorFactory`
|
|
768
|
+
|
|
769
|
+
If you set `customExecutorPath` in generation config, `createClient.ts` imports your custom
|
|
770
|
+
`createExecutorAdapter` and uses it as the default executor.
|
|
771
|
+
|
|
772
|
+
You can additionally pass `executorFactory` at runtime to wrap/extend this default executor
|
|
773
|
+
(for retry, tracing, metrics, etc.) without changing generated services.
|
|
774
|
+
|
|
775
|
+
```ts
|
|
776
|
+
import { createClient } from './generated';
|
|
777
|
+
|
|
778
|
+
const client = createClient({
|
|
779
|
+
executorFactory: ({ openApiConfig, createDefaultExecutor }) => {
|
|
780
|
+
const baseExecutor = createDefaultExecutor();
|
|
781
|
+
|
|
782
|
+
return {
|
|
783
|
+
async request<TResponse>(config, options) {
|
|
784
|
+
console.debug('Request to', openApiConfig.BASE, config.path);
|
|
785
|
+
return baseExecutor.request<TResponse>(config, options);
|
|
786
|
+
},
|
|
787
|
+
};
|
|
788
|
+
},
|
|
789
|
+
});
|
|
790
|
+
```
|
|
791
|
+
|
|
633
792
|
### Sorting strategy for function arguments `--sortByRequired`
|
|
634
793
|
By default, the OpenAPI generator sorts the parameters of service functions according to a simplified scheme. If you need a more strict sorting option, then you need to use the `--sortByRequired` flag. The simplified sorting option is similar to the one used in version 0.2.3 of the OpenAPI generator. This flag allows you to upgrade to a new version of the generator if you are "stuck" on version 0.2.3.
|
|
635
794
|
|
package/README.rus.md
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
- Поддерживает tsc и @babel/plugin-transform-typescript
|
|
29
29
|
- Поддерживает кастомизацию имен моделей
|
|
30
30
|
- Поддерживает внешние ссылки с помощью [`swagger-parser`](https://github.com/APIDevTools/swagger-parser/)
|
|
31
|
+
- Поддерживает генерацию бинарных request/response (`format: binary` -> `Blob`)
|
|
31
32
|
|
|
32
33
|
## Установка
|
|
33
34
|
|
|
@@ -37,7 +38,7 @@ npm install ts-openapi-codegen --save-dev
|
|
|
37
38
|
|
|
38
39
|
## Использование
|
|
39
40
|
|
|
40
|
-
CLI инструмент поддерживает
|
|
41
|
+
CLI инструмент поддерживает шесть команд: `generate`, `check-config`, `update-config`, `init`, `preview-changes` и `analyze-diff`.
|
|
41
42
|
|
|
42
43
|
### Команда: `generate`
|
|
43
44
|
|
|
@@ -64,6 +65,7 @@ openapi generate --input ./spec.json --output ./dist
|
|
|
64
65
|
| `--useUnionTypes` | - | boolean | `false` | Использовать union типы вместо enums |
|
|
65
66
|
| `--excludeCoreServiceFiles` | - | boolean | `false` | Исключить генерацию core и сервисных файлов |
|
|
66
67
|
| `--request` | - | string | - | Путь к пользовательскому файлу запросов |
|
|
68
|
+
| `--customExecutorPath` | - | string | - | Путь к пользовательскому модулю `createExecutorAdapter` |
|
|
67
69
|
| `--interfacePrefix` | - | string | `I` | Префикс для интерфейсов моделей |
|
|
68
70
|
| `--enumPrefix` | - | string | `E` | Префикс для enum моделей |
|
|
69
71
|
| `--typePrefix` | - | string | `T` | Префикс для type моделей |
|
|
@@ -73,6 +75,10 @@ openapi generate --input ./spec.json --output ./dist
|
|
|
73
75
|
| `--logLevel` | `-l` | string | `error` | Уровень логирования: `info`, `warn`, или `error` |
|
|
74
76
|
| `--logTarget` | `-t` | string | `console` | Цель логирования: `console` или `file` |
|
|
75
77
|
| `--validationLibrary` | - | string | `none` | Библиотека валидации для генерации схем: `none`, `zod`, `joi`, `yup`, или `jsonschema` |
|
|
78
|
+
| `--emptySchemaStrategy` | - | string | `keep` | Стратегия для пустых схем: `keep`, `semantic`, или `skip` |
|
|
79
|
+
| `--modelsMode` | - | string | `interfaces` | Режим генерации моделей: `interfaces` или `classes` |
|
|
80
|
+
| `--useHistory` | - | boolean | `false` | Применять diff-отчёт при генерации |
|
|
81
|
+
| `--diffReport` | - | string | `./openapi-diff-report.json` | Путь к diff-отчёту |
|
|
76
82
|
|
|
77
83
|
**Примеры:**
|
|
78
84
|
```bash
|
|
@@ -95,38 +101,110 @@ openapi generate \
|
|
|
95
101
|
--logLevel info
|
|
96
102
|
```
|
|
97
103
|
|
|
98
|
-
### Команда: `check-
|
|
104
|
+
### Команда: `check-config`
|
|
99
105
|
|
|
100
106
|
Проверяет структуру и значения файла конфигурации.
|
|
101
107
|
|
|
102
108
|
**Использование:**
|
|
103
109
|
```bash
|
|
104
|
-
openapi check-
|
|
105
|
-
openapi check-
|
|
110
|
+
openapi check-config
|
|
111
|
+
openapi check-config --openapi-config ./custom-config.json
|
|
106
112
|
```
|
|
107
113
|
|
|
108
114
|
**Опции:**
|
|
109
115
|
- `--openapi-config` / `-ocn` - Путь к файлу конфигурации (по умолчанию: `openapi.config.json`)
|
|
110
116
|
|
|
111
|
-
### Команда: `
|
|
117
|
+
### Команда: `update-config`
|
|
112
118
|
|
|
113
|
-
|
|
119
|
+
Обновляет файл конфигурации до последней поддерживаемой версии схемы.
|
|
114
120
|
|
|
115
121
|
**Использование:**
|
|
116
122
|
```bash
|
|
117
|
-
|
|
118
|
-
openapi
|
|
123
|
+
openapi update-config
|
|
124
|
+
openapi update-config --openapi-config ./custom-config.json
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Опции:**
|
|
128
|
+
- `--openapi-config` / `-ocn` - Путь к файлу конфигурации (по умолчанию: `openapi.config.json`)
|
|
119
129
|
|
|
120
|
-
|
|
121
|
-
|
|
130
|
+
### Команда: `init`
|
|
131
|
+
|
|
132
|
+
Генерирует шаблон файла конфигурации.
|
|
133
|
+
|
|
134
|
+
**Использование:**
|
|
135
|
+
```bash
|
|
136
|
+
# Генерация шаблона с настройками по умолчанию
|
|
137
|
+
openapi init
|
|
122
138
|
|
|
123
139
|
# Пользовательское имя файла конфигурации
|
|
124
|
-
openapi init
|
|
140
|
+
openapi init --openapi-config ./my-config.json
|
|
141
|
+
|
|
142
|
+
# Явно указать директорию со спецификациями OpenAPI
|
|
143
|
+
openapi init --specs-dir ./openapi
|
|
125
144
|
```
|
|
126
145
|
|
|
127
146
|
**Опции:**
|
|
128
147
|
- `--openapi-config` / `-ocn` - Путь к выходному файлу конфигурации (по умолчанию: `openapi.config.json`)
|
|
129
|
-
- `--
|
|
148
|
+
- `--specs-dir` / `-sd` - Директория с файлами OpenAPI спецификаций (по умолчанию: `./openapi`)
|
|
149
|
+
- `--request` - Путь к пользовательскому request-файлу
|
|
150
|
+
- `--useCancelableRequest` - Включить генерацию cancelable request
|
|
151
|
+
- `--useInteractiveMode` - Включить интерактивный режим настройки
|
|
152
|
+
|
|
153
|
+
### Команда: `preview-changes`
|
|
154
|
+
|
|
155
|
+
Показывает различия между уже сгенерированным кодом и новым результатом генерации без перезаписи текущей директории generated-кода.
|
|
156
|
+
|
|
157
|
+
**Использование:**
|
|
158
|
+
```bash
|
|
159
|
+
openapi preview-changes
|
|
160
|
+
openapi preview-changes --openapi-config ./custom-config.json
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Опции:**
|
|
164
|
+
- `--openapi-config` / `-ocn` - Путь к файлу конфигурации (по умолчанию: `openapi.config.json`)
|
|
165
|
+
- `--generated-dir` / `-gd` - Директория с текущим generated-кодом (по умолчанию: `./generated`)
|
|
166
|
+
- `--preview-dir` / `-pd` - Временная директория для preview-генерации (по умолчанию: `./.ts-openapi-codegen-preview-changes`)
|
|
167
|
+
- `--diff-dir` / `-dd` - Директория для diff-отчетов (по умолчанию: `./.ts-openapi-codegen-diff-changes`)
|
|
168
|
+
|
|
169
|
+
### Команда: `analyze-diff`
|
|
170
|
+
|
|
171
|
+
Анализирует изменения между двумя версиями OpenAPI и формирует JSON‑отчет.
|
|
172
|
+
|
|
173
|
+
**Использование:**
|
|
174
|
+
```bash
|
|
175
|
+
openapi analyze-diff --input ./openapi/current.yaml --compare-with ./openapi/previous.yaml --output-report ./openapi-diff-report.json
|
|
176
|
+
openapi analyze-diff --input ./openapi/spec.yaml --git HEAD~1
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
**Опции:**
|
|
180
|
+
- `--input` / `-i` - Путь к текущей спецификации OpenAPI (обязательно)
|
|
181
|
+
- `--compare-with` - Путь к предыдущей спецификации
|
|
182
|
+
- `--git` - Git ref для чтения предыдущей версии спецификации (например, `HEAD~1`)
|
|
183
|
+
- `--output-report` - Путь для сохранения diff‑отчёта (по умолчанию: `./openapi-diff-report.json`)
|
|
184
|
+
|
|
185
|
+
#### Miracles и подтверждение
|
|
186
|
+
|
|
187
|
+
В diff‑отчёте может быть раздел `miracles` с обнаруженными переименованиями/коэрсингом типов. В генерации применяются только подтверждённые записи.
|
|
188
|
+
|
|
189
|
+
**Как подтверждать чудеса:**
|
|
190
|
+
1. Запустите `analyze-diff` и откройте отчёт (по умолчанию: `./openapi-diff-report.json`).
|
|
191
|
+
2. Найдите нужную запись в `miracles`.
|
|
192
|
+
3. Измените `"status": "auto-generated"` на `"status": "confirmed"` и закоммитьте отчёт.
|
|
193
|
+
|
|
194
|
+
Пример (фрагмент):
|
|
195
|
+
```json
|
|
196
|
+
{
|
|
197
|
+
"miracles": [
|
|
198
|
+
{
|
|
199
|
+
"oldPath": "$.components.schemas.User.properties.user_name",
|
|
200
|
+
"newPath": "$.components.schemas.User.properties.userName",
|
|
201
|
+
"type": "RENAME",
|
|
202
|
+
"confidence": 0.85,
|
|
203
|
+
"status": "confirmed"
|
|
204
|
+
}
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
```
|
|
130
208
|
|
|
131
209
|
### Файл конфигурации
|
|
132
210
|
|
|
@@ -147,7 +225,23 @@ openapi init-openapi-config --openapi-config ./my-config.json
|
|
|
147
225
|
"useCancelableRequest": false,
|
|
148
226
|
"sortByRequired": false,
|
|
149
227
|
"useSeparatedIndexes": false,
|
|
150
|
-
"request": "./custom-request.ts"
|
|
228
|
+
"request": "./custom-request.ts",
|
|
229
|
+
"customExecutorPath": "./custom/createExecutorAdapter.ts",
|
|
230
|
+
"modelsMode": "interfaces",
|
|
231
|
+
"useHistory": false,
|
|
232
|
+
"diffReport": "./openapi-diff-report.json",
|
|
233
|
+
"models": {
|
|
234
|
+
"mode": "interfaces"
|
|
235
|
+
},
|
|
236
|
+
"analyze": {
|
|
237
|
+
"useHistory": false,
|
|
238
|
+
"reportPath": "./openapi-diff-report.json"
|
|
239
|
+
},
|
|
240
|
+
"miracles": {
|
|
241
|
+
"enabled": true,
|
|
242
|
+
"confidence": 1,
|
|
243
|
+
"types": ["RENAME", "TYPE_COERCION"]
|
|
244
|
+
}
|
|
151
245
|
}
|
|
152
246
|
```
|
|
153
247
|
|
|
@@ -198,6 +292,7 @@ openapi init-openapi-config --openapi-config ./my-config.json
|
|
|
198
292
|
| `useUnionTypes` | boolean | `false` | Использовать union типы вместо enums |
|
|
199
293
|
| `excludeCoreServiceFiles` | boolean | `false` | Исключить генерацию core и сервисных файлов |
|
|
200
294
|
| `request` | string | - | Путь к пользовательскому файлу запросов |
|
|
295
|
+
| `customExecutorPath` | string | - | Путь к пользовательскому модулю `createExecutorAdapter` |
|
|
201
296
|
| `interfacePrefix` | string | `I` | Префикс для интерфейсов моделей |
|
|
202
297
|
| `enumPrefix` | string | `E` | Префикс для enum моделей |
|
|
203
298
|
| `typePrefix` | string | `T` | Префикс для type моделей |
|
|
@@ -206,8 +301,15 @@ openapi init-openapi-config --openapi-config ./my-config.json
|
|
|
206
301
|
| `useSeparatedIndexes` | boolean | `false` | Использовать отдельные index файлы |
|
|
207
302
|
| `items` | array | - | Массив конфигураций (для формата multi-options) |
|
|
208
303
|
| `validationLibrary` | string | `none` | Библиотека валидации для генерации схем: `none`, `zod`, `joi`, `yup`, или `jsonschema` |
|
|
304
|
+
| `emptySchemaStrategy` | string | `keep` | Стратегия для пустых схем: `keep`, `semantic`, или `skip` |
|
|
305
|
+
| `modelsMode` | string | `interfaces` | Режим генерации моделей: `interfaces` или `classes` |
|
|
306
|
+
| `useHistory` | boolean | `false` | Применять diff‑отчёт при генерации |
|
|
307
|
+
| `diffReport` | string | `./openapi-diff-report.json` | Путь к diff‑отчёту |
|
|
308
|
+
| `models` | object | - | Секция конфигурации моделей (например, `mode`) |
|
|
309
|
+
| `analyze` | object | - | Секция анализа (например, reportPath, useHistory, ignore) |
|
|
310
|
+
| `miracles` | object | - | Секция чудес (enabled, confidence, types) |
|
|
209
311
|
|
|
210
|
-
**Примечание:** Вы можете использовать команду `init
|
|
312
|
+
**Примечание:** Вы можете использовать команду `init` для генерации шаблона файла конфигурации.
|
|
211
313
|
|
|
212
314
|
## Примеры
|
|
213
315
|
|
|
@@ -221,15 +323,31 @@ openapi generate --input ./spec.json --output ./dist
|
|
|
221
323
|
**С файлом конфигурации:**
|
|
222
324
|
```bash
|
|
223
325
|
# Сначала создайте файл конфигурации
|
|
224
|
-
openapi init
|
|
326
|
+
openapi init
|
|
225
327
|
|
|
226
328
|
# Затем выполните генерацию
|
|
227
329
|
openapi generate
|
|
228
330
|
```
|
|
229
331
|
|
|
332
|
+
**С DTO моделями (режим classes):**
|
|
333
|
+
```bash
|
|
334
|
+
openapi generate --input ./spec.json --output ./dist --modelsMode classes
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Сгенерировать diff‑отчёт:**
|
|
338
|
+
```bash
|
|
339
|
+
openapi analyze-diff --input ./openapi/current.yaml --compare-with ./openapi/previous.yaml --output-report ./openapi-diff-report.json
|
|
340
|
+
```
|
|
341
|
+
|
|
230
342
|
**Проверка конфигурации:**
|
|
231
343
|
```bash
|
|
232
|
-
openapi check-
|
|
344
|
+
openapi check-config
|
|
345
|
+
openapi update-config
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
**Предпросмотр изменений перед применением:**
|
|
349
|
+
```bash
|
|
350
|
+
openapi preview-changes
|
|
233
351
|
```
|
|
234
352
|
|
|
235
353
|
### Использование NPX
|
|
@@ -246,8 +364,10 @@ npx ts-openapi-codegen generate --input ./spec.json --output ./dist
|
|
|
246
364
|
"scripts": {
|
|
247
365
|
"generate": "openapi generate --input ./spec.json --output ./dist",
|
|
248
366
|
"generate:config": "openapi generate",
|
|
249
|
-
"check-config": "openapi check-
|
|
250
|
-
"
|
|
367
|
+
"check-config": "openapi check-config",
|
|
368
|
+
"update-config": "openapi update-config",
|
|
369
|
+
"init-config": "openapi init",
|
|
370
|
+
"preview-changes": "openapi preview-changes"
|
|
251
371
|
}
|
|
252
372
|
}
|
|
253
373
|
```
|
|
@@ -377,6 +497,20 @@ const order: Order = {
|
|
|
377
497
|
- **yup** - Генерация схем валидации Yup
|
|
378
498
|
- **jsonschema** - Генерация схем валидации JSON Schema
|
|
379
499
|
|
|
500
|
+
Если включен `--useHistory` и в diff‑отчёте есть смена типа, валидаторы будут пытаться выполнять коэрсинг:
|
|
501
|
+
- **Zod** использует `z.coerce.*`
|
|
502
|
+
- **Joi** использует `Joi.alternatives().try(...)`
|
|
503
|
+
- **Yup** использует `.transform(...)`
|
|
504
|
+
- **JSON Schema (AJV)** включает `coerceTypes`
|
|
505
|
+
|
|
506
|
+
### Режим моделей `--modelsMode`
|
|
507
|
+
|
|
508
|
+
По умолчанию модели генерируются как интерфейсы/типы. При `--modelsMode classes` генератор создаёт:
|
|
509
|
+
- `*Raw` интерфейсы (JSON‑формат API)
|
|
510
|
+
- `*Dto` классы с геттерами, дефолтами, рекурсивными конструкторами и `toJSON()`
|
|
511
|
+
|
|
512
|
+
Вывод консолидируется в один файл `models.ts`, а `BaseDto`/`dtoUtils` добавляются в `core`.
|
|
513
|
+
|
|
380
514
|
Допустим, у нас есть следующая модель:
|
|
381
515
|
|
|
382
516
|
```json
|
|
@@ -630,6 +764,31 @@ const service = new SimpleService(executor);
|
|
|
630
764
|
await service.getCallWithoutParametersAndResponse({ timeout: 5000 });
|
|
631
765
|
```
|
|
632
766
|
|
|
767
|
+
#### Использование сгенерированного `createClient` с `customExecutorPath` и `executorFactory`
|
|
768
|
+
|
|
769
|
+
Если в конфигурации генерации задан `customExecutorPath`, в `createClient.ts` будет импортирован ваш
|
|
770
|
+
пользовательский `createExecutorAdapter`, и он станет базовым executor по умолчанию.
|
|
771
|
+
|
|
772
|
+
Дополнительно в runtime можно передать `executorFactory`, чтобы обернуть/расширить этот базовый executor
|
|
773
|
+
(retry, tracing, metrics и т.д.) без изменения сгенерированных сервисов.
|
|
774
|
+
|
|
775
|
+
```ts
|
|
776
|
+
import { createClient } from './generated';
|
|
777
|
+
|
|
778
|
+
const client = createClient({
|
|
779
|
+
executorFactory: ({ openApiConfig, createDefaultExecutor }) => {
|
|
780
|
+
const baseExecutor = createDefaultExecutor();
|
|
781
|
+
|
|
782
|
+
return {
|
|
783
|
+
async request<TResponse>(config, options) {
|
|
784
|
+
console.debug('Request to', openApiConfig.BASE, config.path);
|
|
785
|
+
return baseExecutor.request<TResponse>(config, options);
|
|
786
|
+
},
|
|
787
|
+
};
|
|
788
|
+
},
|
|
789
|
+
});
|
|
790
|
+
```
|
|
791
|
+
|
|
633
792
|
### Стратегия сортировки аргументов функций `--sortByRequired`
|
|
634
793
|
По умолчанию генератор OpenAPI сортирует параметры сервисных функций согласно упрощенной схеме. Если вам нужна более строгая опция сортировки, используйте флаг `--sortByRequired`. Упрощенная опция сортировки похожа на ту, что использовалась в версии 0.2.3 генератора OpenAPI. Этот флаг позволяет обновиться до новой версии генератора, если вы "застряли" на версии 0.2.3.
|
|
635
794
|
|
|
@@ -841,6 +1000,3 @@ npm install form-data --save-dev
|
|
|
841
1000
|
[stars-image]: https://img.shields.io/github/stars/ozonophore/openapi-codegen.svg
|
|
842
1001
|
[librariesio-image]: https://img.shields.io/librariesio/github/ozonophore/openapi-codegen
|
|
843
1002
|
[lines-image]: https://img.shields.io/tokei/lines/github/ozonophore/openapi-codegen
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyzeDiff.cli.test.d.ts","sourceRoot":"","sources":["../../../../src/cli/analyzeDiff/__tests__/analyzeDiff.cli.test.ts"],"names":[],"mappings":""}
|