ts-openapi-codegen 2.0.0-beta.7 → 2.0.0-beta.9
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 +104 -0
- package/README.rus.md +104 -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 +14 -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 +13 -5
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.d.ts.map +1 -1
- package/dist/cli/generateOpenApiClient/generateOpenApiClient.js +4 -5
- package/dist/cli/index.js +5 -5
- package/dist/cli/initOpenApiConfig/init.d.ts.map +1 -1
- package/dist/cli/initOpenApiConfig/init.js +5 -13
- package/dist/cli/initOpenApiConfig/initConfig.js +3 -3
- package/dist/cli/previewChanges/previewChanges.d.ts.map +1 -1
- package/dist/cli/previewChanges/previewChanges.js +12 -5
- package/dist/cli/schemas/base.d.ts +6 -1
- package/dist/cli/schemas/base.d.ts.map +1 -1
- package/dist/cli/schemas/base.js +10 -6
- package/dist/cli/schemas/checkConfig.d.ts +1 -1
- package/dist/cli/schemas/generate.d.ts +1 -25
- package/dist/cli/schemas/generate.d.ts.map +1 -1
- package/dist/cli/schemas/generate.js +21 -32
- package/dist/cli/schemas/index.d.ts +2 -1
- package/dist/cli/schemas/index.d.ts.map +1 -1
- package/dist/cli/schemas/index.js +1 -0
- package/dist/cli/schemas/init.d.ts +5 -5
- package/dist/cli/schemas/init.d.ts.map +1 -1
- package/dist/cli/schemas/init.js +4 -5
- package/dist/cli/schemas/previewChanges.d.ts +9 -0
- package/dist/cli/schemas/previewChanges.d.ts.map +1 -0
- package/dist/cli/schemas/previewChanges.js +11 -0
- package/dist/cli/schemas/updateConfig.d.ts +1 -1
- package/dist/common/Consts.d.ts +2 -0
- package/dist/common/Consts.d.ts.map +1 -1
- package/dist/common/Consts.js +4 -1
- package/dist/common/LoggerMessages.js +1 -1
- package/dist/common/TRawOptions.d.ts +1 -1
- package/dist/common/TRawOptions.d.ts.map +1 -1
- package/dist/common/Validation/formatZodError.d.ts +10 -0
- package/dist/common/Validation/formatZodError.d.ts.map +1 -0
- package/dist/{cli/validation/errorFormatter.js → common/Validation/formatZodError.js} +14 -13
- package/dist/common/Validation/index.d.ts +3 -0
- package/dist/common/Validation/index.d.ts.map +1 -0
- package/dist/{cli/validation → common/Validation}/index.js +2 -2
- package/dist/{cli/validation/validateCLIOptions.d.ts → common/Validation/validateZodOptions.d.ts} +4 -4
- package/dist/common/Validation/validateZodOptions.d.ts.map +1 -0
- package/dist/{cli/validation/validateCLIOptions.js → common/Validation/validateZodOptions.js} +7 -10
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts +6 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas.js +8 -14
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts +28 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.d.ts.map +1 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedBase.js +25 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts +36 -6
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV1.js +33 -37
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts +37 -6
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV2.js +30 -37
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts +40 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.d.ts.map +1 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedOptionsSchemaV3.js +36 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts +65 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.d.ts.map +1 -0
- package/dist/common/VersionedSchema/AllVersionedSchemas/UnifiedVersionedSchemas.js +31 -0
- package/dist/common/VersionedSchema/CommonSchemas.d.ts +53 -30
- package/dist/common/VersionedSchema/CommonSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/CommonSchemas.js +47 -72
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts +25 -5
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV1.js +34 -17
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts +25 -5
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV2.js +28 -19
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts +25 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV3.js +29 -2
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts +25 -5
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV4.js +30 -14
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts +23 -5
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsSchemaV5.js +33 -18
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.d.ts +3 -2
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/MultiOptionsVersioned/MultiOptionsVersionedSchemas.js +18 -11
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts +22 -5
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV1.js +30 -12
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts +22 -5
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV2.js +27 -13
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts +22 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV3.js +28 -2
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts +22 -5
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsSchemaV4.js +31 -12
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.d.ts +3 -2
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/OptionsVersioned/OptionsVersionedSchemas.js +15 -9
- package/dist/common/VersionedSchema/Types.d.ts +5 -5
- package/dist/common/VersionedSchema/Types.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts +16 -0
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/__mocks__/compatibilityCases.js +85 -0
- package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.d.ts +2 -0
- package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/__tests__/compareShapes.test.js +23 -0
- package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.d.ts +2 -0
- package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/__tests__/migrateDataToLatestSchemaVersion.test.js +75 -0
- package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts +12 -0
- package/dist/common/VersionedSchema/Utils/buildVersionedSchema.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/buildVersionedSchema.js +13 -0
- package/dist/common/VersionedSchema/Utils/compareShapes.d.ts +16 -0
- package/dist/common/VersionedSchema/Utils/compareShapes.d.ts.map +1 -0
- package/dist/common/VersionedSchema/Utils/compareShapes.js +30 -0
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts +2 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/determineBestMatchingSchemaVersion.js +5 -5
- package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts +2 -2
- package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/getCurrentErrorMessage.js +15 -7
- package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.d.ts +2 -2
- package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/getUniqueKeysFromSchemas.js +16 -3
- package/dist/common/VersionedSchema/Utils/getUniqueObjectKeys.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/getUniqueObjectKeys.js +19 -2
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts +2 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.d.ts.map +1 -1
- package/dist/common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion.js +10 -9
- package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts +4 -0
- package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.d.ts.map +1 -0
- package/dist/common/VersionedSchema/refinements/dependentOptionsRefinement.js +43 -0
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts +4 -0
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.d.ts.map +1 -0
- package/dist/common/VersionedSchema/refinements/singleOrMultiRefinement.js +21 -0
- package/dist/core/Context.d.ts +6 -5
- package/dist/core/Context.d.ts.map +1 -1
- package/dist/core/Context.js +69 -26
- package/dist/core/OpenApiClient.d.ts.map +1 -1
- package/dist/core/OpenApiClient.js +12 -8
- package/dist/core/WriteClient.d.ts.map +1 -1
- package/dist/core/WriteClient.js +4 -0
- package/dist/core/__tests__/WriteClient.test.js +3 -0
- package/dist/core/api/v2/Parser.d.ts +1 -1
- package/dist/core/api/v2/Parser.d.ts.map +1 -1
- package/dist/core/api/v2/Parser.js +2 -2
- package/dist/core/api/v2/parser/getModel.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getModel.js +2 -5
- package/dist/core/api/v2/parser/getModelProperties.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getModelProperties.js +1 -3
- package/dist/core/api/v2/parser/getModels.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getModels.js +1 -2
- package/dist/core/api/v2/parser/getOperationParameter.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationParameter.js +2 -5
- package/dist/core/api/v2/parser/getOperationParameters.js +1 -1
- package/dist/core/api/v2/parser/getOperationResponse.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getOperationResponse.js +1 -3
- package/dist/core/api/v2/parser/getOperationResponses.js +1 -1
- package/dist/core/api/v2/parser/getServices.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getServices.js +4 -3
- package/dist/core/api/v2/parser/getType.d.ts.map +1 -1
- package/dist/core/api/v2/parser/getType.js +2 -2
- package/dist/core/api/v3/Parser.d.ts +1 -1
- package/dist/core/api/v3/Parser.d.ts.map +1 -1
- package/dist/core/api/v3/Parser.js +2 -2
- package/dist/core/api/v3/parser/getModel.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getModel.js +2 -5
- package/dist/core/api/v3/parser/getModelProperties.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getModelProperties.js +1 -3
- package/dist/core/api/v3/parser/getModels.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getModels.js +1 -2
- package/dist/core/api/v3/parser/getOperation.js +1 -1
- package/dist/core/api/v3/parser/getOperationParameter.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationParameter.js +2 -5
- package/dist/core/api/v3/parser/getOperationParameters.js +1 -1
- package/dist/core/api/v3/parser/getOperationRequestBody.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationRequestBody.js +1 -3
- package/dist/core/api/v3/parser/getOperationResponse.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getOperationResponse.js +1 -3
- package/dist/core/api/v3/parser/getOperationResponses.js +1 -1
- package/dist/core/api/v3/parser/getServices.d.ts.map +1 -1
- package/dist/core/api/v3/parser/getServices.js +4 -3
- package/dist/core/api/v3/parser/getType.js +2 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2 -0
- package/dist/core/types/base/Templates.model.d.ts +3 -0
- package/dist/core/types/base/Templates.model.d.ts.map +1 -1
- package/dist/core/utils/__mocks__/templates.d.ts.map +1 -1
- package/dist/core/utils/__mocks__/templates.js +3 -0
- package/dist/core/utils/__tests__/isSubdirectory.test.js +2 -2
- package/dist/core/utils/registerHandlebarTemplates.d.ts.map +1 -1
- package/dist/core/utils/registerHandlebarTemplates.js +9 -3
- package/dist/core/utils/serviceHelpers.d.ts.map +1 -1
- package/dist/core/utils/serviceHelpers.js +32 -6
- package/dist/core/utils/validateRawOptions.d.ts +3 -0
- package/dist/core/utils/validateRawOptions.d.ts.map +1 -0
- package/dist/core/utils/validateRawOptions.js +15 -0
- package/dist/core/utils/writeClientCore.d.ts.map +1 -1
- package/dist/core/utils/writeClientCore.js +5 -3
- package/dist/templatesCompiled/client/core/ApiError.js +1 -1
- package/dist/templatesCompiled/client/core/CancelablePromise.d.ts +1 -0
- package/dist/templatesCompiled/client/core/CancelablePromise.d.ts.map +1 -1
- package/dist/templatesCompiled/client/core/CancelablePromise.js +9 -2
- package/dist/templatesCompiled/client/core/HttpStatusCode.d.ts +1 -0
- package/dist/templatesCompiled/client/core/HttpStatusCode.d.ts.map +1 -1
- package/dist/templatesCompiled/client/core/HttpStatusCode.js +9 -2
- package/dist/templatesCompiled/client/core/executor/createExecutorAdapter.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/{createExecutorAdapter.js → executor/createExecutorAdapter.js} +3 -3
- package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts +8 -0
- package/dist/templatesCompiled/client/core/executor/requestExecutor.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/executor/requestExecutor.js +18 -0
- package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.d.ts +8 -0
- package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/interceptors/apiErrorInterceptor.js +18 -0
- package/dist/templatesCompiled/client/core/{request-executor.d.ts → interceptors/interceptors.d.ts} +2 -1
- package/dist/templatesCompiled/client/core/interceptors/interceptors.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/interceptors/interceptors.js +18 -0
- package/dist/templatesCompiled/client/core/interceptors/withInterceptors.d.ts +8 -0
- package/dist/templatesCompiled/client/core/interceptors/withInterceptors.d.ts.map +1 -0
- package/dist/templatesCompiled/client/core/interceptors/withInterceptors.js +18 -0
- package/dist/templatesCompiled/client/exportClient.d.ts.map +1 -1
- package/dist/templatesCompiled/client/exportClient.js +14 -10
- package/dist/templatesCompiled/client/exportService.js +1 -1
- package/dist/templatesCompiled/client/indexCore.js +2 -2
- package/dist/templatesCompiled/client/indexFull.js +2 -2
- package/dist/templatesCompiled/client/partials/exportComposition.d.ts +2 -0
- package/dist/templatesCompiled/client/partials/exportComposition.d.ts.map +1 -1
- package/dist/templatesCompiled/client/partials/exportComposition.js +17 -9
- package/package.json +1 -1
- package/dist/cli/validation/errorFormatter.d.ts +0 -6
- package/dist/cli/validation/errorFormatter.d.ts.map +0 -1
- package/dist/cli/validation/index.d.ts +0 -3
- package/dist/cli/validation/index.d.ts.map +0 -1
- package/dist/cli/validation/validateCLIOptions.d.ts.map +0 -1
- package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.d.ts +0 -6
- package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.d.ts.map +0 -1
- package/dist/common/VersionedSchema/Utils/getErrorFieldsFromValidation.js +0 -7
- package/dist/common/VersionedSchema/Utils/joiHandlers.d.ts +0 -6
- package/dist/common/VersionedSchema/Utils/joiHandlers.d.ts.map +0 -1
- package/dist/common/VersionedSchema/Utils/joiHandlers.js +0 -59
- package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.d.ts +0 -3
- package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.d.ts.map +0 -1
- package/dist/common/VersionedSchema/Utils/mergeObjectSchemas.js +0 -12
- package/dist/common/VersionedSchema/Utils/traverseObjectStructure.d.ts +0 -3
- package/dist/common/VersionedSchema/Utils/traverseObjectStructure.d.ts.map +0 -1
- package/dist/common/VersionedSchema/Utils/traverseObjectStructure.js +0 -31
- package/dist/common/schemas/configSchemas.d.ts +0 -91
- package/dist/common/schemas/configSchemas.d.ts.map +0 -1
- package/dist/common/schemas/configSchemas.js +0 -131
- package/dist/common/utils/__tests__/__mock__/mockJoiSchema.d.ts +0 -19
- package/dist/common/utils/__tests__/__mock__/mockJoiSchema.d.ts.map +0 -1
- package/dist/common/utils/__tests__/__mock__/mockJoiSchema.js +0 -14
- package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.d.ts +0 -2
- package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.d.ts.map +0 -1
- package/dist/common/utils/__tests__/determineBestMatchingSchemaVersion.test.js +0 -38
- package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.d.ts +0 -2
- package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.d.ts.map +0 -1
- package/dist/common/utils/__tests__/getUniqueKeysFromSchemas.test.js +0 -20
- package/dist/common/utils/__tests__/mergeObjectSchemas.test.d.ts +0 -2
- package/dist/common/utils/__tests__/mergeObjectSchemas.test.d.ts.map +0 -1
- package/dist/common/utils/__tests__/mergeObjectSchemas.test.js +0 -35
- package/dist/common/utils/__tests__/migrationForMultiOptions.test.d.ts +0 -2
- package/dist/common/utils/__tests__/migrationForMultiOptions.test.d.ts.map +0 -1
- package/dist/common/utils/__tests__/migrationForMultiOptions.test.js +0 -112
- package/dist/common/utils/__tests__/migrationForOptions.test.d.ts +0 -2
- package/dist/common/utils/__tests__/migrationForOptions.test.d.ts.map +0 -1
- package/dist/common/utils/__tests__/migrationForOptions.test.js +0 -56
- package/dist/core/utils/__tests__/getRelativeModelPath.test.d.ts +0 -2
- package/dist/core/utils/__tests__/getRelativeModelPath.test.d.ts.map +0 -1
- package/dist/core/utils/__tests__/getRelativeModelPath.test.js +0 -21
- package/dist/core/utils/getRelativeModelPath.d.ts +0 -9
- package/dist/core/utils/getRelativeModelPath.d.ts.map +0 -1
- package/dist/core/utils/getRelativeModelPath.js +0 -37
- package/dist/templatesCompiled/client/core/createExecutorAdapter.d.ts.map +0 -1
- package/dist/templatesCompiled/client/core/request-executor.d.ts.map +0 -1
- package/dist/templatesCompiled/client/core/request-executor.js +0 -11
- /package/dist/templatesCompiled/client/core/{createExecutorAdapter.d.ts → executor/createExecutorAdapter.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -526,6 +526,110 @@ export function request<T>(config: TOpenAPIConfig, options: ApiRequestOptions):
|
|
|
526
526
|
}
|
|
527
527
|
```
|
|
528
528
|
|
|
529
|
+
### RequestExecutor
|
|
530
|
+
|
|
531
|
+
Starting from version **2.0.0** the generated services use the `RequestExecutor` interface
|
|
532
|
+
instead of direct calls to the `request` core function.
|
|
533
|
+
|
|
534
|
+
The `RequestExecutor` is a single HTTP logic integration point responsible for executing requests
|
|
535
|
+
and extending client behavior. It allows you to:
|
|
536
|
+
- use any transport (fetch/axios/xhr/custom);
|
|
537
|
+
- Centrally handle requests, responses, and errors;
|
|
538
|
+
- expand the client's behavior without changing the generated services.
|
|
539
|
+
|
|
540
|
+
#### Interceptors
|
|
541
|
+
|
|
542
|
+
`RequestExecutor` supports **interceptors**, which allow you to implement additional
|
|
543
|
+
logic at different stages of the request lifecycle.:
|
|
544
|
+
|
|
545
|
+
- `onRequest` — modification of the request before sending (headers, auth, logging);
|
|
546
|
+
- `onResponse` — processing successful responses;
|
|
547
|
+
- `onError` — centralized error handling.
|
|
548
|
+
|
|
549
|
+
Interceptors are applied at the executor level and are automatically used by all
|
|
550
|
+
generated services.
|
|
551
|
+
|
|
552
|
+
```ts
|
|
553
|
+
import { createClient } from './generated';
|
|
554
|
+
|
|
555
|
+
const client = createClient({
|
|
556
|
+
interceptors: {
|
|
557
|
+
onRequest: [
|
|
558
|
+
(config) => ({
|
|
559
|
+
...config,
|
|
560
|
+
headers: {
|
|
561
|
+
...config.headers,
|
|
562
|
+
Authorization: 'Bearer token',
|
|
563
|
+
},
|
|
564
|
+
}),
|
|
565
|
+
],
|
|
566
|
+
onError: [
|
|
567
|
+
(error) => {
|
|
568
|
+
console.error(error);
|
|
569
|
+
throw error;
|
|
570
|
+
},
|
|
571
|
+
],
|
|
572
|
+
},
|
|
573
|
+
});
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
#### Custom implementation of RequestExecutor with interceptors
|
|
577
|
+
|
|
578
|
+
A custom `RequestExecutor` can be used together with interceptors.
|
|
579
|
+
In this case, the executor is responsible only for the transport and execution of the request,
|
|
580
|
+
while the interceptors are responsible for the extensible business logic (authorization, logging, error handling).
|
|
581
|
+
|
|
582
|
+
```ts
|
|
583
|
+
import type { RequestExecutor, RequestConfig } from './generated/core/executor/requestExecutor';
|
|
584
|
+
import { withInterceptors } from './generated/core/interceptors/withInterceptors';
|
|
585
|
+
import { SimpleService } from './generated/services/SimpleService';
|
|
586
|
+
|
|
587
|
+
interface MyCustomOptions {
|
|
588
|
+
timeout?: number;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
const baseExecutor: RequestExecutor<MyCustomOptions> = {
|
|
592
|
+
async request<T>(config: RequestConfig, options?: MyCustomOptions): Promise<T> {
|
|
593
|
+
const response = await fetch(config.url, {
|
|
594
|
+
method: config.method,
|
|
595
|
+
headers: config.headers,
|
|
596
|
+
body: config.body ? JSON.stringify(config.body) : undefined,
|
|
597
|
+
signal: options?.timeout
|
|
598
|
+
? AbortSignal.timeout(options.timeout)
|
|
599
|
+
: undefined,
|
|
600
|
+
});
|
|
601
|
+
|
|
602
|
+
if (!response.ok) {
|
|
603
|
+
throw new Error(`Request failed: ${response.status}`);
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
return response.json();
|
|
607
|
+
},
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
// Wrapping the executor interceptors
|
|
611
|
+
const executor = withInterceptors(baseExecutor, {
|
|
612
|
+
onRequest: [
|
|
613
|
+
(config) => ({
|
|
614
|
+
...config,
|
|
615
|
+
headers: {
|
|
616
|
+
...config.headers,
|
|
617
|
+
Authorization: 'Bearer token',
|
|
618
|
+
},
|
|
619
|
+
}),
|
|
620
|
+
],
|
|
621
|
+
onError: [
|
|
622
|
+
(error) => {
|
|
623
|
+
console.error(error);
|
|
624
|
+
throw error;
|
|
625
|
+
},
|
|
626
|
+
],
|
|
627
|
+
});
|
|
628
|
+
|
|
629
|
+
const service = new SimpleService(executor);
|
|
630
|
+
await service.getCallWithoutParametersAndResponse({ timeout: 5000 });
|
|
631
|
+
```
|
|
632
|
+
|
|
529
633
|
### Sorting strategy for function arguments `--sortByRequired`
|
|
530
634
|
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.
|
|
531
635
|
|
package/README.rus.md
CHANGED
|
@@ -526,6 +526,110 @@ export function request<T>(config: TOpenAPIConfig, options: ApiRequestOptions):
|
|
|
526
526
|
}
|
|
527
527
|
```
|
|
528
528
|
|
|
529
|
+
### RequestExecutor
|
|
530
|
+
|
|
531
|
+
Начиная с версии **2.0.0**, сгенерированные сервисы используют интерфейс `RequestExecutor`
|
|
532
|
+
вместо прямых вызовов core-функции `request`.
|
|
533
|
+
|
|
534
|
+
`RequestExecutor` — это единая точка интеграции HTTP-логики, отвечающая за выполнение запросов
|
|
535
|
+
и расширение поведения клиента. Он позволяет:
|
|
536
|
+
- использовать любой транспорт (fetch / axios / xhr / custom);
|
|
537
|
+
- централизованно обрабатывать запросы, ответы и ошибки;
|
|
538
|
+
- расширять поведение клиента без изменения сгенерированных сервисов.
|
|
539
|
+
|
|
540
|
+
#### Interceptors
|
|
541
|
+
|
|
542
|
+
`RequestExecutor` поддерживает **interceptors**, которые позволяют внедрять дополнительную
|
|
543
|
+
логику на разных этапах жизненного цикла запроса:
|
|
544
|
+
|
|
545
|
+
- `onRequest` — модификация запроса перед отправкой (headers, auth, логирование);
|
|
546
|
+
- `onResponse` — обработка успешных ответов;
|
|
547
|
+
- `onError` — централизованная обработка ошибок.
|
|
548
|
+
|
|
549
|
+
Interceptors применяются на уровне executor’а и автоматически используются всеми
|
|
550
|
+
сгенерированными сервисами.
|
|
551
|
+
|
|
552
|
+
```ts
|
|
553
|
+
import { createClient } from './generated';
|
|
554
|
+
|
|
555
|
+
const client = createClient({
|
|
556
|
+
interceptors: {
|
|
557
|
+
onRequest: [
|
|
558
|
+
(config) => ({
|
|
559
|
+
...config,
|
|
560
|
+
headers: {
|
|
561
|
+
...config.headers,
|
|
562
|
+
Authorization: 'Bearer token',
|
|
563
|
+
},
|
|
564
|
+
}),
|
|
565
|
+
],
|
|
566
|
+
onError: [
|
|
567
|
+
(error) => {
|
|
568
|
+
console.error(error);
|
|
569
|
+
throw error;
|
|
570
|
+
},
|
|
571
|
+
],
|
|
572
|
+
},
|
|
573
|
+
});
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
#### Пользовательская реализация RequestExecutor с interceptors
|
|
577
|
+
|
|
578
|
+
Пользовательский `RequestExecutor` может быть использован вместе с interceptors.
|
|
579
|
+
В этом случае executor отвечает только за транспорт и выполнение запроса,
|
|
580
|
+
а interceptors — за расширяемую бизнес-логику (авторизация, логирование, обработка ошибок).
|
|
581
|
+
|
|
582
|
+
```ts
|
|
583
|
+
import type { RequestExecutor, RequestConfig } from './generated/core/executor/requestExecutor';
|
|
584
|
+
import { withInterceptors } from './generated/core/interceptors/withInterceptors';
|
|
585
|
+
import { SimpleService } from './generated/services/SimpleService';
|
|
586
|
+
|
|
587
|
+
interface MyCustomOptions {
|
|
588
|
+
timeout?: number;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
const baseExecutor: RequestExecutor<MyCustomOptions> = {
|
|
592
|
+
async request<T>(config: RequestConfig, options?: MyCustomOptions): Promise<T> {
|
|
593
|
+
const response = await fetch(config.url, {
|
|
594
|
+
method: config.method,
|
|
595
|
+
headers: config.headers,
|
|
596
|
+
body: config.body ? JSON.stringify(config.body) : undefined,
|
|
597
|
+
signal: options?.timeout
|
|
598
|
+
? AbortSignal.timeout(options.timeout)
|
|
599
|
+
: undefined,
|
|
600
|
+
});
|
|
601
|
+
|
|
602
|
+
if (!response.ok) {
|
|
603
|
+
throw new Error(`Request failed: ${response.status}`);
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
return response.json();
|
|
607
|
+
},
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
// Оборачиваем executor interceptors
|
|
611
|
+
const executor = withInterceptors(baseExecutor, {
|
|
612
|
+
onRequest: [
|
|
613
|
+
(config) => ({
|
|
614
|
+
...config,
|
|
615
|
+
headers: {
|
|
616
|
+
...config.headers,
|
|
617
|
+
Authorization: 'Bearer token',
|
|
618
|
+
},
|
|
619
|
+
}),
|
|
620
|
+
],
|
|
621
|
+
onError: [
|
|
622
|
+
(error) => {
|
|
623
|
+
console.error(error);
|
|
624
|
+
throw error;
|
|
625
|
+
},
|
|
626
|
+
],
|
|
627
|
+
});
|
|
628
|
+
|
|
629
|
+
const service = new SimpleService(executor);
|
|
630
|
+
await service.getCallWithoutParametersAndResponse({ timeout: 5000 });
|
|
631
|
+
```
|
|
632
|
+
|
|
529
633
|
### Стратегия сортировки аргументов функций `--sortByRequired`
|
|
530
634
|
По умолчанию генератор OpenAPI сортирует параметры сервисных функций согласно упрощенной схеме. Если вам нужна более строгая опция сортировки, используйте флаг `--sortByRequired`. Упрощенная опция сортировки похожа на ту, что использовалась в версии 0.2.3 генератора OpenAPI. Этот флаг позволяет обновиться до новой версии генератора, если вы "застряли" на версии 0.2.3.
|
|
531
635
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OptionValues } from 'commander';
|
|
1
2
|
/**
|
|
2
3
|
* Проверяет конфигурационный файл на корректность и актуальность.
|
|
3
4
|
* Если обнаружены проблемы, предлагает действия для их исправления.
|
|
@@ -8,5 +9,5 @@
|
|
|
8
9
|
* @example
|
|
9
10
|
* await checkConfig('./openapi-config.json');
|
|
10
11
|
*/
|
|
11
|
-
export declare function checkConfig(
|
|
12
|
+
export declare function checkConfig(options: OptionValues): Promise<void>;
|
|
12
13
|
//# sourceMappingURL=checkConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/checkAndUpdateConfig/checkConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/checkAndUpdateConfig/checkConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAUzC;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CtE"}
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.checkConfig = checkConfig;
|
|
4
4
|
const Consts_1 = require("../../common/Consts");
|
|
5
5
|
const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
|
|
6
|
+
const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
|
|
7
|
+
const schemas_1 = require("../schemas");
|
|
6
8
|
const constants_1 = require("./constants");
|
|
7
9
|
const selectConfigAction_1 = require("./utils/selectConfigAction");
|
|
8
10
|
const validateAndMigrateConfigData_1 = require("./utils/validateAndMigrateConfigData");
|
|
@@ -16,20 +18,26 @@ const validateAndMigrateConfigData_1 = require("./utils/validateAndMigrateConfig
|
|
|
16
18
|
* @example
|
|
17
19
|
* await checkConfig('./openapi-config.json');
|
|
18
20
|
*/
|
|
19
|
-
async function checkConfig(
|
|
20
|
-
const
|
|
21
|
+
async function checkConfig(options) {
|
|
22
|
+
const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.checkConfigOptionsSchema, options);
|
|
23
|
+
if (!validationResult.success) {
|
|
24
|
+
Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
const validatedOptions = validationResult.data;
|
|
28
|
+
const configData = (0, loadConfigIfExists_1.loadConfigIfExists)(validatedOptions.openapiConfig);
|
|
21
29
|
if (!configData) {
|
|
22
|
-
Consts_1.APP_LOGGER.error(`${constants_1.ERROR_MESSAGES.FILE_NOT_FOUND} ${
|
|
30
|
+
Consts_1.APP_LOGGER.error(`${constants_1.ERROR_MESSAGES.FILE_NOT_FOUND} ${validatedOptions.openapiConfig || ''}`);
|
|
23
31
|
return;
|
|
24
32
|
}
|
|
25
33
|
try {
|
|
26
34
|
const { isActualConfigVersion, hasDefaultValues, migratedData } = (0, validateAndMigrateConfigData_1.validateAndMigrateConfigData)(configData);
|
|
27
|
-
Consts_1.APP_LOGGER.info(constants_1.SUCCESS_MESSAGES.CONFIG_VALID(
|
|
35
|
+
Consts_1.APP_LOGGER.info(constants_1.SUCCESS_MESSAGES.CONFIG_VALID(validatedOptions.openapiConfig || ''));
|
|
28
36
|
// Если версия не актуальна, предложить обновление
|
|
29
37
|
if (!isActualConfigVersion) {
|
|
30
38
|
await (0, selectConfigAction_1.selectConfigAction)({
|
|
31
39
|
migratedData,
|
|
32
|
-
configPath,
|
|
40
|
+
configPath: validatedOptions.openapiConfig || '',
|
|
33
41
|
warningMessage: 'Ваша версия конфигурации устарела и нуждается в обновлении.',
|
|
34
42
|
actionChoices: constants_1.ACTION_FOR_CONFIG_DATA_OPTIONS,
|
|
35
43
|
});
|
|
@@ -39,7 +47,7 @@ async function checkConfig(configPath) {
|
|
|
39
47
|
if (hasDefaultValues) {
|
|
40
48
|
await (0, selectConfigAction_1.selectConfigAction)({
|
|
41
49
|
migratedData,
|
|
42
|
-
configPath,
|
|
50
|
+
configPath: validatedOptions.openapiConfig || '',
|
|
43
51
|
warningMessage: 'В вашей конфигурации есть значения по умолчанию, которые можно удалить.',
|
|
44
52
|
actionChoices: constants_1.ACTION_FOR_CONFIG_DATA_OPTIONS,
|
|
45
53
|
});
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { OptionValues } from 'commander';
|
|
1
2
|
/**
|
|
2
3
|
* Обновляет конфигурационный файл до актуальной версии.
|
|
3
4
|
* Выполняет миграцию данных при необходимости.
|
|
@@ -8,5 +9,5 @@
|
|
|
8
9
|
* @example
|
|
9
10
|
* await updateConfig('./openapi-config.json');
|
|
10
11
|
*/
|
|
11
|
-
export declare function updateConfig(
|
|
12
|
+
export declare function updateConfig(options: OptionValues): Promise<void>;
|
|
12
13
|
//# sourceMappingURL=updateConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/checkAndUpdateConfig/updateConfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"updateConfig.d.ts","sourceRoot":"","sources":["../../../src/cli/checkAndUpdateConfig/updateConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAUzC;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgCvE"}
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.updateConfig = updateConfig;
|
|
4
4
|
const Consts_1 = require("../../common/Consts");
|
|
5
5
|
const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
|
|
6
|
+
const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
|
|
7
|
+
const schemas_1 = require("../schemas");
|
|
6
8
|
const constants_1 = require("./constants");
|
|
7
9
|
const validateAndMigrateConfigData_1 = require("./utils/validateAndMigrateConfigData");
|
|
8
10
|
const writeConfigFile_1 = require("./utils/writeConfigFile");
|
|
@@ -16,21 +18,27 @@ const writeConfigFile_1 = require("./utils/writeConfigFile");
|
|
|
16
18
|
* @example
|
|
17
19
|
* await updateConfig('./openapi-config.json');
|
|
18
20
|
*/
|
|
19
|
-
async function updateConfig(
|
|
20
|
-
const
|
|
21
|
+
async function updateConfig(options) {
|
|
22
|
+
const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.updateConfigOptionsSchema, options);
|
|
23
|
+
if (!validationResult.success) {
|
|
24
|
+
Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
const validatedOptions = validationResult.data;
|
|
28
|
+
const configData = (0, loadConfigIfExists_1.loadConfigIfExists)(validatedOptions.openapiConfig);
|
|
21
29
|
if (!configData) {
|
|
22
|
-
Consts_1.APP_LOGGER.error(`${constants_1.ERROR_MESSAGES.FILE_NOT_FOUND} ${
|
|
30
|
+
Consts_1.APP_LOGGER.error(`${constants_1.ERROR_MESSAGES.FILE_NOT_FOUND} ${validatedOptions.openapiConfig}`);
|
|
23
31
|
return;
|
|
24
32
|
}
|
|
25
33
|
try {
|
|
26
34
|
const { isActualConfigVersion, migratedData } = (0, validateAndMigrateConfigData_1.validateAndMigrateConfigData)(configData);
|
|
27
35
|
if (isActualConfigVersion) {
|
|
28
|
-
Consts_1.APP_LOGGER.info(constants_1.SUCCESS_MESSAGES.CONFIG_UP_TO_DATE(
|
|
36
|
+
Consts_1.APP_LOGGER.info(constants_1.SUCCESS_MESSAGES.CONFIG_UP_TO_DATE(validatedOptions.openapiConfig || ''));
|
|
29
37
|
}
|
|
30
38
|
else {
|
|
31
39
|
await (0, writeConfigFile_1.writeConfigFile)({
|
|
32
40
|
data: migratedData,
|
|
33
|
-
configPath,
|
|
41
|
+
configPath: validatedOptions.openapiConfig || '',
|
|
34
42
|
isUpdating: true,
|
|
35
43
|
});
|
|
36
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateOpenApiClient.d.ts","sourceRoot":"","sources":["../../../src/cli/generateOpenApiClient/generateOpenApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAgBzC;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"generateOpenApiClient.d.ts","sourceRoot":"","sources":["../../../src/cli/generateOpenApiClient/generateOpenApiClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAgBzC;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DhF"}
|
|
@@ -40,12 +40,12 @@ const Enums_1 = require("../../common/Enums");
|
|
|
40
40
|
const LoggerMessages_1 = require("../../common/LoggerMessages");
|
|
41
41
|
const convertArrayToObject_1 = require("../../common/utils/convertArrayToObject");
|
|
42
42
|
const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
|
|
43
|
+
const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
|
|
43
44
|
const AllMigrationPlans_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans");
|
|
44
45
|
const AllVersionedSchemas_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas");
|
|
45
46
|
const migrateDataToLatestSchemaVersion_1 = require("../../common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion");
|
|
46
47
|
const OpenAPI = __importStar(require("../../core"));
|
|
47
|
-
const
|
|
48
|
-
const validation_1 = require("../validation");
|
|
48
|
+
const schemas_1 = require("../schemas");
|
|
49
49
|
/**
|
|
50
50
|
* Запускает генерацию OpenAPI клиента
|
|
51
51
|
* Поддерживает как конфиг-файл, так и параметры из CLI
|
|
@@ -53,13 +53,12 @@ const validation_1 = require("../validation");
|
|
|
53
53
|
async function generateOpenApiClient(options) {
|
|
54
54
|
const { openapiConfig, ...clientOptions } = options;
|
|
55
55
|
try {
|
|
56
|
-
|
|
57
|
-
const validationResult = (0, validation_1.validateCLIOptions)(generate_1.generateOptionsSchema, {
|
|
56
|
+
const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.generateOptionsSchema, {
|
|
58
57
|
openapiConfig,
|
|
59
58
|
...clientOptions,
|
|
60
59
|
});
|
|
61
60
|
if (!validationResult.success) {
|
|
62
|
-
Consts_1.APP_LOGGER.error(validationResult.
|
|
61
|
+
Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
|
|
63
62
|
process.exit(1);
|
|
64
63
|
}
|
|
65
64
|
const validatedOptions = validationResult.data;
|
package/dist/cli/index.js
CHANGED
|
@@ -89,7 +89,7 @@ program
|
|
|
89
89
|
await updateNotifier.checkAndNotify();
|
|
90
90
|
})
|
|
91
91
|
.action(async (options) => {
|
|
92
|
-
await (0, updateConfig_1.updateConfig)(options
|
|
92
|
+
await (0, updateConfig_1.updateConfig)(options);
|
|
93
93
|
});
|
|
94
94
|
/**
|
|
95
95
|
* init - Команда для инициализации конфигурационного файла
|
|
@@ -116,10 +116,10 @@ program
|
|
|
116
116
|
.command('preview-changes')
|
|
117
117
|
.description('Preview changes that will be made to generated code before applying them')
|
|
118
118
|
.addHelpText('before', (0, utils_1.getCLIName)(APP_NAME))
|
|
119
|
-
.option('-ocn, --openapi-config <value>', 'The path to the configuration file, listing the options', Consts_1.DEFAULT_OPENAPI_CONFIG_FILENAME)
|
|
120
|
-
.option('-gd, --generated-dir <value>', 'Directory with previously generated code (default: "generated")',
|
|
121
|
-
.option('-pd, --preview-dir <value>', 'Temporary directory for preview generation (default: "
|
|
122
|
-
.option('-dd, --diff-dir <value>', 'Directory to save diff files (default: "
|
|
119
|
+
.option('-ocn, --openapi-config <value>', 'The path to the configuration file, listing the options (default: "openapi.config.json")', Consts_1.DEFAULT_OPENAPI_CONFIG_FILENAME)
|
|
120
|
+
.option('-gd, --generated-dir <value>', 'Directory with previously generated code (default: "generated")', Consts_1.DEFAULT_OUTPUT_API_DIR)
|
|
121
|
+
.option('-pd, --preview-dir <value>', 'Temporary directory for preview generation (default: ".ts-openapi-codegen-preview-changes)', Consts_1.DEFAULT_PREVIEW_CHANGES_DIR)
|
|
122
|
+
.option('-dd, --diff-dir <value>', 'Directory to save diff files (default: ".ts-openapi-codegen-diff-changes")', Consts_1.DEFAULT_DIFF_CHANGES_DIR)
|
|
123
123
|
.hook('preAction', async () => {
|
|
124
124
|
await updateNotifier.checkAndNotify();
|
|
125
125
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/initOpenApiConfig/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAUzC;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/initOpenApiConfig/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAUzC;;GAEG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,YAAY,iBA4C/C"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.init = init;
|
|
4
4
|
const Consts_1 = require("../../common/Consts");
|
|
5
|
+
const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
|
|
5
6
|
const confirmDialog_1 = require("../interactive/confirmDialog");
|
|
6
7
|
const schemas_1 = require("../schemas");
|
|
7
|
-
const validation_1 = require("../validation");
|
|
8
8
|
const initConfig_1 = require("./initConfig");
|
|
9
9
|
const initCustomRequest_1 = require("./initCustomRequest");
|
|
10
10
|
const registerHandlebarTemplates_1 = require("./utils/registerHandlebarTemplates");
|
|
@@ -12,20 +12,12 @@ const registerHandlebarTemplates_1 = require("./utils/registerHandlebarTemplates
|
|
|
12
12
|
* Фнукция изначальной настройки файлов конфигурации для последующего запуска генератора
|
|
13
13
|
*/
|
|
14
14
|
async function init(options) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const validationResult = (0, validation_1.validateCLIOptions)(schemas_1.initOptionsSchema, options);
|
|
19
|
-
if (!validationResult.success) {
|
|
20
|
-
Consts_1.APP_LOGGER.error(validationResult.error);
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
validatedOptions = validationResult.data;
|
|
24
|
-
}
|
|
25
|
-
catch (error) {
|
|
26
|
-
Consts_1.APP_LOGGER.error(error.message);
|
|
15
|
+
const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.initOptionsSchema, options);
|
|
16
|
+
if (!validationResult.success) {
|
|
17
|
+
Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
|
|
27
18
|
process.exit(1);
|
|
28
19
|
}
|
|
20
|
+
const validatedOptions = validationResult.data;
|
|
29
21
|
const templates = (0, registerHandlebarTemplates_1.registerHandlebarTemplates)();
|
|
30
22
|
if (validatedOptions.useInteractiveMode) {
|
|
31
23
|
const shouldInitConfig = await (0, confirmDialog_1.confirmDialog)({
|
|
@@ -16,7 +16,7 @@ const writeConfigFile_1 = require("./utils/writeConfigFile");
|
|
|
16
16
|
* Инициализирует файл конфигурации OpenAPI
|
|
17
17
|
*/
|
|
18
18
|
async function initConfig(params) {
|
|
19
|
-
const configPath = (0, pathHelpers_1.resolveHelper)(process.cwd(), params.openapiConfig);
|
|
19
|
+
const configPath = (0, pathHelpers_1.resolveHelper)(process.cwd(), params.openapiConfig || '');
|
|
20
20
|
const configExists = await fileSystemHelpers_1.fileSystemHelpers.exists(configPath);
|
|
21
21
|
// Шаг 3: Проверка существования файла конфигурации
|
|
22
22
|
if (configExists) {
|
|
@@ -29,7 +29,7 @@ async function initConfig(params) {
|
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
const currentSpecsDir = params.specsDir;
|
|
32
|
+
const currentSpecsDir = params.specsDir || '';
|
|
33
33
|
// Шаг 4: Формирование файла конфигурации
|
|
34
34
|
// Поиск файлов спецификаций
|
|
35
35
|
let specFiles = [];
|
|
@@ -98,5 +98,5 @@ async function initConfig(params) {
|
|
|
98
98
|
config = (0, buildConfig_1.buildExampleConfig)(useMultiOption, customRequest, perSpecRequest);
|
|
99
99
|
}
|
|
100
100
|
// Записываем конфигурацию на диск
|
|
101
|
-
await (0, writeConfigFile_1.writeConfigFile)(params.openapiConfig, config, params.templates);
|
|
101
|
+
await (0, writeConfigFile_1.writeConfigFile)(params.openapiConfig || '', config, params.templates);
|
|
102
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"previewChanges.d.ts","sourceRoot":"","sources":["../../../src/cli/previewChanges/previewChanges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"previewChanges.d.ts","sourceRoot":"","sources":["../../../src/cli/previewChanges/previewChanges.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AA4BzC;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAiJzE"}
|
|
@@ -40,10 +40,12 @@ const convertArrayToObject_1 = require("../../common/utils/convertArrayToObject"
|
|
|
40
40
|
const fileSystemHelpers_1 = require("../../common/utils/fileSystemHelpers");
|
|
41
41
|
const loadConfigIfExists_1 = require("../../common/utils/loadConfigIfExists");
|
|
42
42
|
const pathHelpers_1 = require("../../common/utils/pathHelpers");
|
|
43
|
+
const validateZodOptions_1 = require("../../common/Validation/validateZodOptions");
|
|
43
44
|
const AllMigrationPlans_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllMigrationPlans");
|
|
44
45
|
const AllVersionedSchemas_1 = require("../../common/VersionedSchema/AllVersionedSchemas/AllVersionedSchemas");
|
|
45
46
|
const migrateDataToLatestSchemaVersion_1 = require("../../common/VersionedSchema/Utils/migrateDataToLatestSchemaVersion");
|
|
46
47
|
const OpenAPI = __importStar(require("../../core"));
|
|
48
|
+
const schemas_1 = require("../schemas");
|
|
47
49
|
const compareFiles_1 = require("./utils/compareFiles");
|
|
48
50
|
const formatDiff_1 = require("./utils/formatDiff");
|
|
49
51
|
const isDirectoryEmpty_1 = require("./utils/isDirectoryEmpty");
|
|
@@ -55,10 +57,15 @@ const updateOutputPaths_1 = require("./utils/updateOutputPaths");
|
|
|
55
57
|
* TODO: Добавить проверку опций команды перед выполнением
|
|
56
58
|
*/
|
|
57
59
|
async function previewChanges(options) {
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
const validationResult = (0, validateZodOptions_1.validateZodOptions)(schemas_1.previewChangesSchema, options);
|
|
61
|
+
if (!validationResult.success) {
|
|
62
|
+
Consts_1.APP_LOGGER.error(validationResult.errors.join('\n'));
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
const { openapiConfig, generatedDir, previewDir, diffDir } = validationResult.data;
|
|
66
|
+
const resolvedGeneratedDir = (0, pathHelpers_1.resolveHelper)(process.cwd(), generatedDir || '');
|
|
67
|
+
const resolvedPreviewDir = (0, pathHelpers_1.resolveHelper)(process.cwd(), previewDir || '');
|
|
68
|
+
const resolvedDiffDir = (0, pathHelpers_1.resolveHelper)(process.cwd(), diffDir || '');
|
|
62
69
|
let previewDirCreated = false;
|
|
63
70
|
try {
|
|
64
71
|
// 1. Проверка директории со сгенерированным кодом
|
|
@@ -89,7 +96,7 @@ async function previewChanges(options) {
|
|
|
89
96
|
}
|
|
90
97
|
// 4. Обновление путей output для генерации в preview директорию
|
|
91
98
|
const migratedValue = migratedOptions.value;
|
|
92
|
-
const previewOptions = (0, updateOutputPaths_1.updateOutputPaths)(migratedValue, previewDir, generatedDir);
|
|
99
|
+
const previewOptions = (0, updateOutputPaths_1.updateOutputPaths)(migratedValue, previewDir || '', generatedDir || '');
|
|
93
100
|
// 5. Генерация кода в preview директорию
|
|
94
101
|
Consts_1.APP_LOGGER.info(`Generating code to preview directory: ${previewDir}`);
|
|
95
102
|
await OpenAPI.generate(previewOptions);
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { ELogLevel, ELogOutput } from '../../common/Enums';
|
|
3
3
|
import { HttpClient } from '../../core/types/enums/HttpClient.enum';
|
|
4
|
+
/**
|
|
5
|
+
* Преобразует пустые строки в undefined для опциональных полей
|
|
6
|
+
* Это нужно, потому что Commander.js передает пустые строки для опций без значений
|
|
7
|
+
*/
|
|
8
|
+
export declare const emptyStringToUndefined: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
|
|
4
9
|
/**
|
|
5
10
|
* Базовая схема с общими опциями для всех команд
|
|
6
11
|
*/
|
|
7
12
|
export declare const baseCLIOptionsSchema: z.ZodObject<{
|
|
8
|
-
openapiConfig: z.
|
|
13
|
+
openapiConfig: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
|
|
9
14
|
}, z.core.$strip>;
|
|
10
15
|
export type BaseCLIOptions = z.infer<typeof baseCLIOptionsSchema>;
|
|
11
16
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,yEAAoF,CAAC;AAExH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,gBAAgB,8BAAqB,CAAC;AACnD,eAAO,MAAM,cAAc,6BAAoB,CAAC;AAChD,eAAO,MAAM,eAAe,8BAAqB,CAAC"}
|
package/dist/cli/schemas/base.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.logTargetSchema = exports.logLevelSchema = exports.httpClientSchema = exports.baseCLIOptionsSchema = void 0;
|
|
3
|
+
exports.logTargetSchema = exports.logLevelSchema = exports.httpClientSchema = exports.baseCLIOptionsSchema = exports.emptyStringToUndefined = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
|
-
const Consts_1 = require("../../common/Consts");
|
|
6
5
|
const Enums_1 = require("../../common/Enums");
|
|
7
6
|
const HttpClient_enum_1 = require("../../core/types/enums/HttpClient.enum");
|
|
7
|
+
/**
|
|
8
|
+
* Преобразует пустые строки в undefined для опциональных полей
|
|
9
|
+
* Это нужно, потому что Commander.js передает пустые строки для опций без значений
|
|
10
|
+
*/
|
|
11
|
+
exports.emptyStringToUndefined = zod_1.z.preprocess(val => (val === '' ? undefined : val), zod_1.z.string().min(1).optional());
|
|
8
12
|
/**
|
|
9
13
|
* Базовая схема с общими опциями для всех команд
|
|
10
14
|
*/
|
|
11
15
|
exports.baseCLIOptionsSchema = zod_1.z.object({
|
|
12
|
-
openapiConfig:
|
|
16
|
+
openapiConfig: exports.emptyStringToUndefined,
|
|
13
17
|
});
|
|
14
18
|
/**
|
|
15
19
|
* Enum схемы для типизированных значений
|
|
16
20
|
*/
|
|
17
|
-
exports.httpClientSchema = zod_1.z.
|
|
18
|
-
exports.logLevelSchema = zod_1.z.
|
|
19
|
-
exports.logTargetSchema = zod_1.z.
|
|
21
|
+
exports.httpClientSchema = zod_1.z.enum(HttpClient_enum_1.HttpClient);
|
|
22
|
+
exports.logLevelSchema = zod_1.z.enum(Enums_1.ELogLevel);
|
|
23
|
+
exports.logTargetSchema = zod_1.z.enum(Enums_1.ELogOutput);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const checkConfigOptionsSchema: z.ZodObject<{
|
|
3
|
-
openapiConfig: z.
|
|
3
|
+
openapiConfig: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
|
|
4
4
|
}, z.core.$strip>;
|
|
5
5
|
export type CheckConfigOptions = z.infer<typeof checkConfigOptionsSchema>;
|
|
6
6
|
//# sourceMappingURL=checkConfig.d.ts.map
|
|
@@ -1,32 +1,8 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
/**
|
|
3
|
-
* Схема для команды generate
|
|
4
|
-
* Основана на baseFlatOptionsSchema, но с добавлением:
|
|
5
|
-
* - openapiConfig (из baseCLIOptionsSchema)
|
|
6
|
-
* - опциональными input/output (валидируются условно)
|
|
7
|
-
*/
|
|
8
2
|
export declare const generateOptionsSchema: z.ZodObject<{
|
|
9
|
-
openapiConfig: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
10
|
-
outputCore: z.ZodOptional<z.ZodString>;
|
|
11
|
-
outputServices: z.ZodOptional<z.ZodString>;
|
|
12
|
-
outputModels: z.ZodOptional<z.ZodString>;
|
|
13
|
-
outputSchemas: z.ZodOptional<z.ZodString>;
|
|
14
|
-
interfacePrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
15
|
-
enumPrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
16
|
-
typePrefix: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
17
|
-
httpClient: z.ZodOptional<z.ZodEnum<typeof import("../..").HttpClient>>;
|
|
18
|
-
useOptions: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
19
|
-
useUnionTypes: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
20
|
-
excludeCoreServiceFiles: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
21
|
-
request: z.ZodOptional<z.ZodString>;
|
|
22
|
-
useCancelableRequest: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
23
|
-
logLevel: z.ZodOptional<z.ZodEnum<typeof import("../../common/Enums").ELogLevel>>;
|
|
24
|
-
logTarget: z.ZodOptional<z.ZodEnum<typeof import("../../common/Enums").ELogOutput>>;
|
|
25
|
-
sortByRequired: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
26
|
-
useSeparatedIndexes: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
27
|
-
validationLibrary: z.ZodOptional<z.ZodEnum<typeof import("../../core/types/enums/ValidationLibrary.enum").ValidationLibrary>>;
|
|
28
3
|
input: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
|
|
29
4
|
output: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
|
|
5
|
+
openapiConfig: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodOptional<z.ZodString>>;
|
|
30
6
|
}, z.core.$strip>;
|
|
31
7
|
export type GenerateOptions = z.infer<typeof generateOptionsSchema>;
|
|
32
8
|
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,qBAAqB;;;;iBA2C5B,CAAC;AAEP,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|