@azure-tools/typespec-ts 0.54.0 → 0.54.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/CHANGELOG.md +25 -10
- package/README.md +0 -4
- package/dist/src/contextManager.d.ts +5 -5
- package/dist/src/contextManager.d.ts.map +1 -1
- package/dist/src/contextManager.js +3 -3
- package/dist/src/contextManager.js.map +1 -1
- package/dist/src/framework/declaration.d.ts +1 -1
- package/dist/src/framework/declaration.d.ts.map +1 -1
- package/dist/src/framework/declaration.js +2 -4
- package/dist/src/framework/declaration.js.map +1 -1
- package/dist/src/framework/dependency.d.ts.map +1 -1
- package/dist/src/framework/hooks/binder.d.ts +1 -1
- package/dist/src/framework/hooks/binder.d.ts.map +1 -1
- package/dist/src/framework/hooks/binder.js +31 -40
- package/dist/src/framework/hooks/binder.js.map +1 -1
- package/dist/src/framework/hooks/sdkTypes.d.ts +1 -1
- package/dist/src/framework/hooks/sdkTypes.d.ts.map +1 -1
- package/dist/src/framework/hooks/sdkTypes.js +8 -12
- package/dist/src/framework/hooks/sdkTypes.js.map +1 -1
- package/dist/src/framework/hooks/useDependencies.d.ts.map +1 -1
- package/dist/src/framework/hooks/useDependencies.js +1 -1
- package/dist/src/framework/hooks/useDependencies.js.map +1 -1
- package/dist/src/framework/load-static-helpers.d.ts +1 -1
- package/dist/src/framework/load-static-helpers.d.ts.map +1 -1
- package/dist/src/framework/load-static-helpers.js +17 -31
- package/dist/src/framework/load-static-helpers.js.map +1 -1
- package/dist/src/framework/reference.d.ts.map +1 -1
- package/dist/src/framework/reference.js +2 -2
- package/dist/src/framework/reference.js.map +1 -1
- package/dist/src/framework/sample.js +8 -8
- package/dist/src/framework/sample.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +103 -92
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib.d.ts +1 -1
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +140 -140
- package/dist/src/lib.js.map +1 -1
- package/dist/src/metaTree.d.ts +1 -1
- package/dist/src/metaTree.d.ts.map +1 -1
- package/dist/src/modular/buildClassicalClient.d.ts +1 -1
- package/dist/src/modular/buildClassicalClient.d.ts.map +1 -1
- package/dist/src/modular/buildClassicalClient.js +60 -74
- package/dist/src/modular/buildClassicalClient.js.map +1 -1
- package/dist/src/modular/buildClassicalOperationGroups.d.ts +2 -2
- package/dist/src/modular/buildClassicalOperationGroups.d.ts.map +1 -1
- package/dist/src/modular/buildClassicalOperationGroups.js +8 -10
- package/dist/src/modular/buildClassicalOperationGroups.js.map +1 -1
- package/dist/src/modular/buildClientContext.d.ts +2 -2
- package/dist/src/modular/buildClientContext.d.ts.map +1 -1
- package/dist/src/modular/buildClientContext.js +31 -38
- package/dist/src/modular/buildClientContext.js.map +1 -1
- package/dist/src/modular/buildModularOptions.d.ts +1 -1
- package/dist/src/modular/buildModularOptions.d.ts.map +1 -1
- package/dist/src/modular/buildModularOptions.js +5 -6
- package/dist/src/modular/buildModularOptions.js.map +1 -1
- package/dist/src/modular/buildOperations.d.ts +3 -3
- package/dist/src/modular/buildOperations.d.ts.map +1 -1
- package/dist/src/modular/buildOperations.js +23 -25
- package/dist/src/modular/buildOperations.js.map +1 -1
- package/dist/src/modular/buildProjectFiles.d.ts +1 -1
- package/dist/src/modular/buildProjectFiles.d.ts.map +1 -1
- package/dist/src/modular/buildProjectFiles.js +8 -11
- package/dist/src/modular/buildProjectFiles.js.map +1 -1
- package/dist/src/modular/buildRestorePoller.d.ts +1 -1
- package/dist/src/modular/buildRestorePoller.d.ts.map +1 -1
- package/dist/src/modular/buildRestorePoller.js +12 -13
- package/dist/src/modular/buildRestorePoller.js.map +1 -1
- package/dist/src/modular/buildRootIndex.d.ts +2 -2
- package/dist/src/modular/buildRootIndex.d.ts.map +1 -1
- package/dist/src/modular/buildRootIndex.js +36 -50
- package/dist/src/modular/buildRootIndex.js.map +1 -1
- package/dist/src/modular/buildSubpathIndex.d.ts.map +1 -1
- package/dist/src/modular/buildSubpathIndex.js +9 -18
- package/dist/src/modular/buildSubpathIndex.js.map +1 -1
- package/dist/src/modular/emitLoggerFile.d.ts.map +1 -1
- package/dist/src/modular/emitLoggerFile.js +4 -4
- package/dist/src/modular/emitLoggerFile.js.map +1 -1
- package/dist/src/modular/emitModels.d.ts +1 -1
- package/dist/src/modular/emitModels.d.ts.map +1 -1
- package/dist/src/modular/emitModels.js +81 -113
- package/dist/src/modular/emitModels.js.map +1 -1
- package/dist/src/modular/emitModelsOptions.d.ts +1 -1
- package/dist/src/modular/emitModelsOptions.d.ts.map +1 -1
- package/dist/src/modular/emitModelsOptions.js +7 -8
- package/dist/src/modular/emitModelsOptions.js.map +1 -1
- package/dist/src/modular/emitSamples.d.ts.map +1 -1
- package/dist/src/modular/emitSamples.js +69 -77
- package/dist/src/modular/emitSamples.js.map +1 -1
- package/dist/src/modular/emitTests.d.ts.map +1 -1
- package/dist/src/modular/emitTests.js +13 -18
- package/dist/src/modular/emitTests.js.map +1 -1
- package/dist/src/modular/external-dependencies.js +54 -54
- package/dist/src/modular/helpers/classicalOperationHelpers.d.ts +1 -1
- package/dist/src/modular/helpers/classicalOperationHelpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/classicalOperationHelpers.js +59 -68
- package/dist/src/modular/helpers/classicalOperationHelpers.js.map +1 -1
- package/dist/src/modular/helpers/clientHelpers.d.ts +2 -2
- package/dist/src/modular/helpers/clientHelpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/clientHelpers.js +31 -54
- package/dist/src/modular/helpers/clientHelpers.js.map +1 -1
- package/dist/src/modular/helpers/clientOptionHelpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/clientOptionHelpers.js +1 -1
- package/dist/src/modular/helpers/clientOptionHelpers.js.map +1 -1
- package/dist/src/modular/helpers/exampleValueHelpers.d.ts +2 -2
- package/dist/src/modular/helpers/exampleValueHelpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/exampleValueHelpers.js +72 -84
- package/dist/src/modular/helpers/exampleValueHelpers.js.map +1 -1
- package/dist/src/modular/helpers/namingHelpers.d.ts +1 -1
- package/dist/src/modular/helpers/namingHelpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/namingHelpers.js +7 -10
- package/dist/src/modular/helpers/namingHelpers.js.map +1 -1
- package/dist/src/modular/helpers/operationHelpers.d.ts +2 -2
- package/dist/src/modular/helpers/operationHelpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/operationHelpers.js +204 -288
- package/dist/src/modular/helpers/operationHelpers.js.map +1 -1
- package/dist/src/modular/helpers/typeHelpers.d.ts +1 -1
- package/dist/src/modular/helpers/typeHelpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/typeHelpers.js +4 -6
- package/dist/src/modular/helpers/typeHelpers.js.map +1 -1
- package/dist/src/modular/serialization/buildDeserializerFunction.d.ts +1 -1
- package/dist/src/modular/serialization/buildDeserializerFunction.d.ts.map +1 -1
- package/dist/src/modular/serialization/buildDeserializerFunction.js +58 -67
- package/dist/src/modular/serialization/buildDeserializerFunction.js.map +1 -1
- package/dist/src/modular/serialization/buildSerializerFunction.d.ts +1 -1
- package/dist/src/modular/serialization/buildSerializerFunction.d.ts.map +1 -1
- package/dist/src/modular/serialization/buildSerializerFunction.js +65 -75
- package/dist/src/modular/serialization/buildSerializerFunction.js.map +1 -1
- package/dist/src/modular/serialization/buildXmlSerializerFunction.d.ts +1 -1
- package/dist/src/modular/serialization/buildXmlSerializerFunction.d.ts.map +1 -1
- package/dist/src/modular/serialization/buildXmlSerializerFunction.js +73 -90
- package/dist/src/modular/serialization/buildXmlSerializerFunction.js.map +1 -1
- package/dist/src/modular/serialization/serializeUtils.d.ts.map +1 -1
- package/dist/src/modular/serialization/serializeUtils.js +25 -33
- package/dist/src/modular/serialization/serializeUtils.js.map +1 -1
- package/dist/src/modular/static-helpers-metadata.js +60 -60
- package/dist/src/modular/type-expressions/get-credential-expression.js +1 -1
- package/dist/src/modular/type-expressions/get-credential-expression.js.map +1 -1
- package/dist/src/modular/type-expressions/get-enum-expression.d.ts +1 -1
- package/dist/src/modular/type-expressions/get-enum-expression.d.ts.map +1 -1
- package/dist/src/modular/type-expressions/get-enum-expression.js +1 -2
- package/dist/src/modular/type-expressions/get-enum-expression.js.map +1 -1
- package/dist/src/modular/type-expressions/get-model-expression.d.ts.map +1 -1
- package/dist/src/modular/type-expressions/get-model-expression.js +10 -13
- package/dist/src/modular/type-expressions/get-model-expression.js.map +1 -1
- package/dist/src/modular/type-expressions/get-nullable-expression.d.ts +1 -1
- package/dist/src/modular/type-expressions/get-nullable-expression.d.ts.map +1 -1
- package/dist/src/modular/type-expressions/get-nullable-expression.js +2 -3
- package/dist/src/modular/type-expressions/get-nullable-expression.js.map +1 -1
- package/dist/src/modular/type-expressions/get-type-expression.d.ts.map +1 -1
- package/dist/src/modular/type-expressions/get-type-expression.js +5 -11
- package/dist/src/modular/type-expressions/get-type-expression.js.map +1 -1
- package/dist/src/modular/type-expressions/get-union-expression.d.ts +1 -1
- package/dist/src/modular/type-expressions/get-union-expression.d.ts.map +1 -1
- package/dist/src/modular/type-expressions/get-union-expression.js.map +1 -1
- package/dist/src/rlc-common/buildClient.d.ts +1 -1
- package/dist/src/rlc-common/buildClient.d.ts.map +1 -1
- package/dist/src/rlc-common/buildClient.js +67 -89
- package/dist/src/rlc-common/buildClient.js.map +1 -1
- package/dist/src/rlc-common/buildClientDefinitions.d.ts.map +1 -1
- package/dist/src/rlc-common/buildClientDefinitions.js +28 -45
- package/dist/src/rlc-common/buildClientDefinitions.js.map +1 -1
- package/dist/src/rlc-common/buildIndexFile.d.ts.map +1 -1
- package/dist/src/rlc-common/buildIndexFile.js +59 -60
- package/dist/src/rlc-common/buildIndexFile.js.map +1 -1
- package/dist/src/rlc-common/buildIsUnexpectedHelper.d.ts.map +1 -1
- package/dist/src/rlc-common/buildIsUnexpectedHelper.js +37 -38
- package/dist/src/rlc-common/buildIsUnexpectedHelper.js.map +1 -1
- package/dist/src/rlc-common/buildLogger.d.ts.map +1 -1
- package/dist/src/rlc-common/buildLogger.js +4 -5
- package/dist/src/rlc-common/buildLogger.js.map +1 -1
- package/dist/src/rlc-common/buildMethodShortcuts.d.ts.map +1 -1
- package/dist/src/rlc-common/buildMethodShortcuts.js +4 -4
- package/dist/src/rlc-common/buildMethodShortcuts.js.map +1 -1
- package/dist/src/rlc-common/buildObjectTypes.d.ts.map +1 -1
- package/dist/src/rlc-common/buildObjectTypes.js +57 -96
- package/dist/src/rlc-common/buildObjectTypes.js.map +1 -1
- package/dist/src/rlc-common/buildPaginateHelper.d.ts.map +1 -1
- package/dist/src/rlc-common/buildPaginateHelper.js +2 -2
- package/dist/src/rlc-common/buildPaginateHelper.js.map +1 -1
- package/dist/src/rlc-common/buildParameterTypes.d.ts.map +1 -1
- package/dist/src/rlc-common/buildParameterTypes.js +71 -61
- package/dist/src/rlc-common/buildParameterTypes.js.map +1 -1
- package/dist/src/rlc-common/buildPollingHelper.d.ts.map +1 -1
- package/dist/src/rlc-common/buildPollingHelper.js +9 -10
- package/dist/src/rlc-common/buildPollingHelper.js.map +1 -1
- package/dist/src/rlc-common/buildResponseTypes.d.ts.map +1 -1
- package/dist/src/rlc-common/buildResponseTypes.js +23 -27
- package/dist/src/rlc-common/buildResponseTypes.js.map +1 -1
- package/dist/src/rlc-common/buildSamples.d.ts +1 -1
- package/dist/src/rlc-common/buildSamples.d.ts.map +1 -1
- package/dist/src/rlc-common/buildSamples.js +2 -2
- package/dist/src/rlc-common/buildSchemaType.d.ts.map +1 -1
- package/dist/src/rlc-common/buildSchemaType.js +31 -13
- package/dist/src/rlc-common/buildSchemaType.js.map +1 -1
- package/dist/src/rlc-common/buildSerializeHelper.d.ts.map +1 -1
- package/dist/src/rlc-common/buildSerializeHelper.js +4 -4
- package/dist/src/rlc-common/buildSerializeHelper.js.map +1 -1
- package/dist/src/rlc-common/buildTopLevelIndexFile.d.ts.map +1 -1
- package/dist/src/rlc-common/buildTopLevelIndexFile.js +9 -13
- package/dist/src/rlc-common/buildTopLevelIndexFile.js.map +1 -1
- package/dist/src/rlc-common/helpers/apiVersionUtil.d.ts.map +1 -1
- package/dist/src/rlc-common/helpers/apiVersionUtil.js +6 -8
- package/dist/src/rlc-common/helpers/apiVersionUtil.js.map +1 -1
- package/dist/src/rlc-common/helpers/importsUtil.d.ts.map +1 -1
- package/dist/src/rlc-common/helpers/importsUtil.js +32 -37
- package/dist/src/rlc-common/helpers/importsUtil.js.map +1 -1
- package/dist/src/rlc-common/helpers/nameConstructors.d.ts.map +1 -1
- package/dist/src/rlc-common/helpers/nameConstructors.js +2 -4
- package/dist/src/rlc-common/helpers/nameConstructors.js.map +1 -1
- package/dist/src/rlc-common/helpers/nameUtils.d.ts.map +1 -1
- package/dist/src/rlc-common/helpers/nameUtils.js +17 -23
- package/dist/src/rlc-common/helpers/nameUtils.js.map +1 -1
- package/dist/src/rlc-common/helpers/operationHelpers.d.ts.map +1 -1
- package/dist/src/rlc-common/helpers/operationHelpers.js +16 -31
- package/dist/src/rlc-common/helpers/operationHelpers.js.map +1 -1
- package/dist/src/rlc-common/helpers/packageUtil.js +3 -6
- package/dist/src/rlc-common/helpers/packageUtil.js.map +1 -1
- package/dist/src/rlc-common/helpers/pathUtils.d.ts.map +1 -1
- package/dist/src/rlc-common/helpers/pathUtils.js +1 -3
- package/dist/src/rlc-common/helpers/pathUtils.js.map +1 -1
- package/dist/src/rlc-common/helpers/schemaHelpers.d.ts.map +1 -1
- package/dist/src/rlc-common/helpers/schemaHelpers.js +3 -7
- package/dist/src/rlc-common/helpers/schemaHelpers.js.map +1 -1
- package/dist/src/rlc-common/helpers/shortcutMethods.d.ts +1 -1
- package/dist/src/rlc-common/helpers/shortcutMethods.d.ts.map +1 -1
- package/dist/src/rlc-common/helpers/shortcutMethods.js +2 -2
- package/dist/src/rlc-common/helpers/shortcutMethods.js.map +1 -1
- package/dist/src/rlc-common/helpers/typeUtil.d.ts.map +1 -1
- package/dist/src/rlc-common/helpers/typeUtil.js +4 -9
- package/dist/src/rlc-common/helpers/typeUtil.js.map +1 -1
- package/dist/src/rlc-common/helpers/valueGenerationUtil.js +7 -11
- package/dist/src/rlc-common/helpers/valueGenerationUtil.js.map +1 -1
- package/dist/src/rlc-common/index.d.ts +28 -28
- package/dist/src/rlc-common/index.d.ts.map +1 -1
- package/dist/src/rlc-common/index.js +28 -28
- package/dist/src/rlc-common/index.js.map +1 -1
- package/dist/src/rlc-common/interfaces.d.ts.map +1 -1
- package/dist/src/rlc-common/interfaces.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildApiExtractorConfig.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/buildApiExtractorConfig.js +14 -15
- package/dist/src/rlc-common/metadata/buildApiExtractorConfig.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildChangelogFile.js +2 -3
- package/dist/src/rlc-common/metadata/buildChangelogFile.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildESLintConfig.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/buildESLintConfig.js +5 -8
- package/dist/src/rlc-common/metadata/buildESLintConfig.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildLicenseFile.js +1 -1
- package/dist/src/rlc-common/metadata/buildPackageFile.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/buildPackageFile.js +33 -37
- package/dist/src/rlc-common/metadata/buildPackageFile.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildReadmeFile.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/buildReadmeFile.js +31 -39
- package/dist/src/rlc-common/metadata/buildReadmeFile.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildRollupConfig.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/buildRollupConfig.js +4 -6
- package/dist/src/rlc-common/metadata/buildRollupConfig.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildSampleEnvFile.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/buildSampleEnvFile.js +3 -5
- package/dist/src/rlc-common/metadata/buildSampleEnvFile.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildTestConfig.js +11 -12
- package/dist/src/rlc-common/metadata/buildTestConfig.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildTsConfig.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/buildTsConfig.js +28 -28
- package/dist/src/rlc-common/metadata/buildTsConfig.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildVitestConfig.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/buildVitestConfig.js +3 -5
- package/dist/src/rlc-common/metadata/buildVitestConfig.js.map +1 -1
- package/dist/src/rlc-common/metadata/buildWarpConfig.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/buildWarpConfig.js +4 -5
- package/dist/src/rlc-common/metadata/buildWarpConfig.js.map +1 -1
- package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.d.ts +1 -1
- package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.js +14 -14
- package/dist/src/rlc-common/metadata/packageJson/azurePackageCommon.js.map +1 -1
- package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.js +24 -29
- package/dist/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.js.map +1 -1
- package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.js +15 -16
- package/dist/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.js.map +1 -1
- package/dist/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.js +8 -8
- package/dist/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.js.map +1 -1
- package/dist/src/rlc-common/metadata/packageJson/packageCommon.d.ts.map +1 -1
- package/dist/src/rlc-common/metadata/packageJson/packageCommon.js +28 -31
- package/dist/src/rlc-common/metadata/packageJson/packageCommon.js.map +1 -1
- package/dist/src/rlc-common/metadata/utils.js +1 -2
- package/dist/src/rlc-common/metadata/utils.js.map +1 -1
- package/dist/src/rlc-common/test/buildKarmaConfig.js +1 -1
- package/dist/src/rlc-common/test/buildRecordedClient.js +4 -5
- package/dist/src/rlc-common/test/buildRecordedClient.js.map +1 -1
- package/dist/src/rlc-common/test/buildSampleTest.d.ts.map +1 -1
- package/dist/src/rlc-common/test/buildSampleTest.js +3 -4
- package/dist/src/rlc-common/test/buildSampleTest.js.map +1 -1
- package/dist/src/rlc-common/test/buildSnippets.d.ts.map +1 -1
- package/dist/src/rlc-common/test/buildSnippets.js +7 -10
- package/dist/src/rlc-common/test/buildSnippets.js.map +1 -1
- package/dist/src/rlc-common/transformSampleGroups.d.ts.map +1 -1
- package/dist/src/rlc-common/transformSampleGroups.js +41 -45
- package/dist/src/rlc-common/transformSampleGroups.js.map +1 -1
- package/dist/src/testing/index.d.ts.map +1 -1
- package/dist/src/testing/index.js +1 -1
- package/dist/src/testing/index.js.map +1 -1
- package/dist/src/transform/transform.d.ts +1 -1
- package/dist/src/transform/transform.d.ts.map +1 -1
- package/dist/src/transform/transform.js +28 -27
- package/dist/src/transform/transform.js.map +1 -1
- package/dist/src/transform/transformApiVersionInfo.d.ts +1 -1
- package/dist/src/transform/transformApiVersionInfo.d.ts.map +1 -1
- package/dist/src/transform/transformApiVersionInfo.js +12 -14
- package/dist/src/transform/transformApiVersionInfo.js.map +1 -1
- package/dist/src/transform/transformHelperFunctionDetails.d.ts +1 -1
- package/dist/src/transform/transformHelperFunctionDetails.d.ts.map +1 -1
- package/dist/src/transform/transformHelperFunctionDetails.js +11 -14
- package/dist/src/transform/transformHelperFunctionDetails.js.map +1 -1
- package/dist/src/transform/transformParameters.d.ts +2 -2
- package/dist/src/transform/transformParameters.d.ts.map +1 -1
- package/dist/src/transform/transformParameters.js +32 -45
- package/dist/src/transform/transformParameters.js.map +1 -1
- package/dist/src/transform/transformPaths.d.ts +1 -1
- package/dist/src/transform/transformPaths.d.ts.map +1 -1
- package/dist/src/transform/transformPaths.js +19 -23
- package/dist/src/transform/transformPaths.js.map +1 -1
- package/dist/src/transform/transformResponses.d.ts +1 -1
- package/dist/src/transform/transformResponses.d.ts.map +1 -1
- package/dist/src/transform/transformResponses.js +21 -25
- package/dist/src/transform/transformResponses.js.map +1 -1
- package/dist/src/transform/transformSchemas.d.ts.map +1 -1
- package/dist/src/transform/transformSchemas.js +21 -32
- package/dist/src/transform/transformSchemas.js.map +1 -1
- package/dist/src/transform/transformTelemetryInfo.d.ts +1 -1
- package/dist/src/transform/transformTelemetryInfo.d.ts.map +1 -1
- package/dist/src/transform/transformTelemetryInfo.js +3 -3
- package/dist/src/transform/transformTelemetryInfo.js.map +1 -1
- package/dist/src/transform/transfromRLCOptions.d.ts +1 -1
- package/dist/src/transform/transfromRLCOptions.d.ts.map +1 -1
- package/dist/src/transform/transfromRLCOptions.js +28 -39
- package/dist/src/transform/transfromRLCOptions.js.map +1 -1
- package/dist/src/utils/clientUtils.d.ts +1 -1
- package/dist/src/utils/clientUtils.d.ts.map +1 -1
- package/dist/src/utils/clientUtils.js +15 -23
- package/dist/src/utils/clientUtils.js.map +1 -1
- package/dist/src/utils/credentialUtils.d.ts +1 -1
- package/dist/src/utils/credentialUtils.d.ts.map +1 -1
- package/dist/src/utils/credentialUtils.js +4 -5
- package/dist/src/utils/credentialUtils.js.map +1 -1
- package/dist/src/utils/crossLanguageDef.d.ts.map +1 -1
- package/dist/src/utils/crossLanguageDef.js +11 -15
- package/dist/src/utils/crossLanguageDef.js.map +1 -1
- package/dist/src/utils/emitUtil.d.ts +1 -1
- package/dist/src/utils/emitUtil.d.ts.map +1 -1
- package/dist/src/utils/emitUtil.js +5 -7
- package/dist/src/utils/emitUtil.js.map +1 -1
- package/dist/src/utils/fileSystemUtils.d.ts +2 -0
- package/dist/src/utils/fileSystemUtils.d.ts.map +1 -1
- package/dist/src/utils/fileSystemUtils.js +26 -7
- package/dist/src/utils/fileSystemUtils.js.map +1 -1
- package/dist/src/utils/importHelper.d.ts.map +1 -1
- package/dist/src/utils/importHelper.js +3 -6
- package/dist/src/utils/importHelper.js.map +1 -1
- package/dist/src/utils/interfaces.d.ts +1 -1
- package/dist/src/utils/interfaces.d.ts.map +1 -1
- package/dist/src/utils/mediaTypes.d.ts.map +1 -1
- package/dist/src/utils/mediaTypes.js +7 -19
- package/dist/src/utils/mediaTypes.js.map +1 -1
- package/dist/src/utils/modelUtils.d.ts +5 -5
- package/dist/src/utils/modelUtils.d.ts.map +1 -1
- package/dist/src/utils/modelUtils.js +168 -257
- package/dist/src/utils/modelUtils.js.map +1 -1
- package/dist/src/utils/namespaceUtils.d.ts.map +1 -1
- package/dist/src/utils/namespaceUtils.js +6 -7
- package/dist/src/utils/namespaceUtils.js.map +1 -1
- package/dist/src/utils/operationUtil.d.ts +1 -1
- package/dist/src/utils/operationUtil.d.ts.map +1 -1
- package/dist/src/utils/operationUtil.js +60 -81
- package/dist/src/utils/operationUtil.js.map +1 -1
- package/dist/src/utils/parameterUtils.d.ts +1 -1
- package/dist/src/utils/parameterUtils.d.ts.map +1 -1
- package/dist/src/utils/parameterUtils.js +26 -33
- package/dist/src/utils/parameterUtils.js.map +1 -1
- package/dist/src/utils/resolve-project-root.js +2 -2
- package/dist/src/utils/resolve-project-root.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +36 -43
- package/src/contextManager.ts +6 -9
- package/src/framework/declaration.ts +18 -28
- package/src/framework/dependency.ts +1 -2
- package/src/framework/hooks/binder.ts +47 -120
- package/src/framework/hooks/sdkTypes.ts +27 -54
- package/src/framework/hooks/useDependencies.ts +2 -4
- package/src/framework/load-static-helpers.ts +28 -51
- package/src/framework/reference.ts +2 -5
- package/src/framework/sample.ts +9 -9
- package/src/index.ts +145 -185
- package/src/lib.ts +143 -158
- package/src/metaTree.ts +1 -1
- package/src/modular/buildClassicalClient.ts +83 -160
- package/src/modular/buildClassicalOperationGroups.ts +14 -39
- package/src/modular/buildClientContext.ts +54 -83
- package/src/modular/buildModularOptions.ts +4 -5
- package/src/modular/buildOperations.ts +46 -73
- package/src/modular/buildProjectFiles.ts +18 -47
- package/src/modular/buildRestorePoller.ts +27 -46
- package/src/modular/buildRootIndex.ts +86 -160
- package/src/modular/buildSubpathIndex.ts +35 -58
- package/src/modular/emitLoggerFile.ts +4 -9
- package/src/modular/emitModels.ts +136 -266
- package/src/modular/emitModelsOptions.ts +10 -16
- package/src/modular/emitSamples.ts +92 -180
- package/src/modular/emitTests.ts +28 -61
- package/src/modular/external-dependencies.ts +54 -54
- package/src/modular/helpers/classicalOperationHelpers.ts +73 -126
- package/src/modular/helpers/clientHelpers.ts +41 -88
- package/src/modular/helpers/clientOptionHelpers.ts +4 -11
- package/src/modular/helpers/exampleValueHelpers.ts +99 -215
- package/src/modular/helpers/namingHelpers.ts +12 -28
- package/src/modular/helpers/operationHelpers.ts +430 -757
- package/src/modular/helpers/typeHelpers.ts +11 -22
- package/src/modular/serialization/buildDeserializerFunction.ts +88 -122
- package/src/modular/serialization/buildSerializerFunction.ts +91 -129
- package/src/modular/serialization/buildXmlSerializerFunction.ts +104 -183
- package/src/modular/serialization/serializeUtils.ts +12 -22
- package/src/modular/static/rollup.test.config.js +11 -14
- package/src/modular/static/scripts/renameOutput.mjs +2 -2
- package/src/modular/static-helpers-metadata.ts +60 -60
- package/src/modular/type-expressions/get-credential-expression.ts +1 -1
- package/src/modular/type-expressions/get-enum-expression.ts +5 -10
- package/src/modular/type-expressions/get-model-expression.ts +13 -17
- package/src/modular/type-expressions/get-nullable-expression.ts +4 -5
- package/src/modular/type-expressions/get-type-expression.ts +8 -12
- package/src/modular/type-expressions/get-union-expression.ts +4 -4
- package/src/modular/type-expressions/utils.ts +1 -1
- package/src/rlc-common/buildClient.ts +70 -141
- package/src/rlc-common/buildClientDefinitions.ts +44 -87
- package/src/rlc-common/buildIndexFile.ts +78 -78
- package/src/rlc-common/buildIsUnexpectedHelper.ts +34 -41
- package/src/rlc-common/buildLogger.ts +7 -7
- package/src/rlc-common/buildMethodShortcuts.ts +9 -21
- package/src/rlc-common/buildObjectTypes.ts +79 -156
- package/src/rlc-common/buildPaginateHelper.ts +9 -12
- package/src/rlc-common/buildParameterTypes.ts +116 -137
- package/src/rlc-common/buildPollingHelper.ts +7 -7
- package/src/rlc-common/buildResponseTypes.ts +34 -57
- package/src/rlc-common/buildSamples.ts +3 -3
- package/src/rlc-common/buildSchemaType.ts +37 -29
- package/src/rlc-common/buildSerializeHelper.ts +5 -5
- package/src/rlc-common/buildTopLevelIndexFile.ts +12 -19
- package/src/rlc-common/helpers/apiVersionUtil.ts +5 -10
- package/src/rlc-common/helpers/importsUtil.ts +27 -30
- package/src/rlc-common/helpers/nameConstructors.ts +16 -50
- package/src/rlc-common/helpers/nameUtils.ts +19 -42
- package/src/rlc-common/helpers/operationHelpers.ts +14 -31
- package/src/rlc-common/helpers/pathUtils.ts +2 -7
- package/src/rlc-common/helpers/schemaHelpers.ts +4 -15
- package/src/rlc-common/helpers/shortcutMethods.ts +6 -15
- package/src/rlc-common/helpers/typeUtil.ts +4 -11
- package/src/rlc-common/helpers/valueGenerationUtil.ts +16 -39
- package/src/rlc-common/index.ts +28 -28
- package/src/rlc-common/interfaces.ts +3 -11
- package/src/rlc-common/metadata/buildApiExtractorConfig.ts +17 -24
- package/src/rlc-common/metadata/buildChangelogFile.ts +1 -1
- package/src/rlc-common/metadata/buildESLintConfig.ts +3 -5
- package/src/rlc-common/metadata/buildLicenseFile.ts +1 -1
- package/src/rlc-common/metadata/buildPackageFile.ts +27 -35
- package/src/rlc-common/metadata/buildReadmeFile.ts +16 -29
- package/src/rlc-common/metadata/buildRollupConfig.ts +5 -8
- package/src/rlc-common/metadata/buildSampleEnvFile.ts +2 -3
- package/src/rlc-common/metadata/buildTestConfig.ts +10 -10
- package/src/rlc-common/metadata/buildTsConfig.ts +32 -35
- package/src/rlc-common/metadata/buildVitestConfig.ts +4 -10
- package/src/rlc-common/metadata/buildWarpConfig.ts +3 -6
- package/src/rlc-common/metadata/packageJson/azurePackageCommon.ts +16 -25
- package/src/rlc-common/metadata/packageJson/buildAzureMonorepoPackage.ts +29 -50
- package/src/rlc-common/metadata/packageJson/buildAzureStandalonePackage.ts +20 -31
- package/src/rlc-common/metadata/packageJson/buildFlavorlessPackage.ts +11 -13
- package/src/rlc-common/metadata/packageJson/packageCommon.ts +32 -52
- package/src/rlc-common/test/buildKarmaConfig.ts +1 -1
- package/src/rlc-common/test/buildRecordedClient.ts +3 -3
- package/src/rlc-common/test/buildSampleTest.ts +3 -3
- package/src/rlc-common/test/buildSnippets.ts +6 -12
- package/src/rlc-common/transformSampleGroups.ts +54 -105
- package/src/testing/index.ts +2 -5
- package/src/transform/transform.ts +22 -34
- package/src/transform/transformApiVersionInfo.ts +17 -30
- package/src/transform/transformHelperFunctionDetails.ts +14 -26
- package/src/transform/transformParameters.ts +55 -105
- package/src/transform/transformPaths.ts +26 -43
- package/src/transform/transformResponses.ts +26 -33
- package/src/transform/transformSchemas.ts +15 -33
- package/src/transform/transformTelemetryInfo.ts +8 -14
- package/src/transform/transfromRLCOptions.ts +53 -116
- package/src/utils/clientUtils.ts +22 -41
- package/src/utils/credentialUtils.ts +8 -19
- package/src/utils/crossLanguageDef.ts +15 -34
- package/src/utils/emitUtil.ts +11 -17
- package/src/utils/fileSystemUtils.ts +30 -8
- package/src/utils/importHelper.ts +5 -10
- package/src/utils/interfaces.ts +1 -1
- package/src/utils/mediaTypes.ts +13 -34
- package/src/utils/modelUtils.ts +175 -384
- package/src/utils/namespaceUtils.ts +8 -24
- package/src/utils/operationUtil.ts +98 -190
- package/src/utils/parameterUtils.ts +31 -54
- package/src/utils/resolve-project-root.ts +3 -3
- package/static/static-helpers/cloudSettingHelpers.ts +4 -6
- package/static/static-helpers/multipartHelpers.ts +3 -3
- package/static/static-helpers/pagingHelpers.ts +28 -63
- package/static/static-helpers/pollingHelpers.ts +16 -29
- package/static/static-helpers/serialization/build-multi-collection.ts +1 -4
- package/static/static-helpers/serialization/check-prop-undefined.ts +1 -4
- package/static/static-helpers/serialization/get-binary-response-browser.mts +3 -1
- package/static/static-helpers/serialization/get-binary-response.ts +2 -2
- package/static/static-helpers/serialization/get-binary-stream-response-browser.mts +1 -3
- package/static/static-helpers/serialization/get-binary-stream-response.ts +2 -4
- package/static/static-helpers/serialization/serialize-record.ts +1 -1
- package/static/static-helpers/serialization/serializers.ts +4 -7
- package/static/static-helpers/serialization/xml-helpers.ts +42 -90
- package/static/static-helpers/simplePollerHelpers.ts +10 -19
- package/static/static-helpers/storageCompatResponse.ts +10 -27
- package/static/static-helpers/urlTemplate.ts +4 -7
- package/static/test-helpers/recordedClient.ts +5 -10
|
@@ -1,37 +1,33 @@
|
|
|
1
|
+
import { getHttpOperationWithCache } from "@azure-tools/typespec-client-generator-core";
|
|
2
|
+
import { getDoc, NoTarget, Program } from "@typespec/compiler";
|
|
3
|
+
import { getAuthentication } from "@typespec/http";
|
|
4
|
+
import { EmitterOptions, reportDiagnostic } from "../lib.js";
|
|
5
|
+
import { getClientParameters } from "../modular/helpers/clientHelpers.js";
|
|
1
6
|
import {
|
|
2
|
-
pascalCase,
|
|
3
7
|
NameType,
|
|
4
8
|
normalizeName,
|
|
5
9
|
PackageDetails,
|
|
6
10
|
PackageFlavor,
|
|
11
|
+
pascalCase,
|
|
7
12
|
RLCOptions,
|
|
8
|
-
ServiceInfo
|
|
13
|
+
ServiceInfo,
|
|
9
14
|
} from "../rlc-common/index.js";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { getAuthentication } from "@typespec/http";
|
|
13
|
-
import { EmitterOptions, reportDiagnostic } from "../lib.js";
|
|
14
|
-
import {
|
|
15
|
-
getRLCClients,
|
|
16
|
-
listOperationsUnderRLCClient
|
|
17
|
-
} from "../utils/clientUtils.js";
|
|
15
|
+
import { getRLCClients, listOperationsUnderRLCClient } from "../utils/clientUtils.js";
|
|
16
|
+
import { getSupportedHttpAuth } from "../utils/credentialUtils.js";
|
|
18
17
|
import { SdkContext } from "../utils/interfaces.js";
|
|
19
18
|
import { getDefaultService } from "../utils/modelUtils.js";
|
|
20
19
|
import { detectModelConflicts } from "../utils/namespaceUtils.js";
|
|
21
20
|
import { getOperationName } from "../utils/operationUtil.js";
|
|
22
|
-
import { getSupportedHttpAuth } from "../utils/credentialUtils.js";
|
|
23
|
-
import _ from "lodash";
|
|
24
|
-
import { getClientParameters } from "../modular/helpers/clientHelpers.js";
|
|
25
21
|
|
|
26
22
|
export function transformRLCOptions(
|
|
27
23
|
emitterOptions: EmitterOptions,
|
|
28
|
-
dpgContext: SdkContext
|
|
24
|
+
dpgContext: SdkContext,
|
|
29
25
|
): RLCOptions {
|
|
30
26
|
// Extract the options from emitter option
|
|
31
27
|
const options = extractRLCOptions(
|
|
32
28
|
dpgContext,
|
|
33
29
|
emitterOptions,
|
|
34
|
-
dpgContext.generationPathDetail?.rootDir ?? ""
|
|
30
|
+
dpgContext.generationPathDetail?.rootDir ?? "",
|
|
35
31
|
);
|
|
36
32
|
const batch = getRLCClients(dpgContext, options.isModularLibrary);
|
|
37
33
|
options.batch = batch;
|
|
@@ -40,41 +36,29 @@ export function transformRLCOptions(
|
|
|
40
36
|
function extractRLCOptions(
|
|
41
37
|
dpgContext: SdkContext,
|
|
42
38
|
emitterOptions: EmitterOptions,
|
|
43
|
-
generationRootDir: string
|
|
39
|
+
generationRootDir: string,
|
|
44
40
|
): RLCOptions {
|
|
45
41
|
const program = dpgContext.program;
|
|
46
42
|
// Compute isModularLibrary early - defaults to true unless explicitly set to false
|
|
47
43
|
const isModularLibrary = emitterOptions["is-modular-library"] !== false;
|
|
48
44
|
const includeShortcuts = getIncludeShortcuts(emitterOptions);
|
|
49
|
-
const packageDetails = getPackageDetails(
|
|
50
|
-
program,
|
|
51
|
-
emitterOptions,
|
|
52
|
-
isModularLibrary
|
|
53
|
-
);
|
|
45
|
+
const packageDetails = getPackageDetails(program, emitterOptions, isModularLibrary);
|
|
54
46
|
const flavor = getFlavor(emitterOptions, packageDetails);
|
|
55
47
|
const moduleKind = getModuleKind(emitterOptions);
|
|
56
48
|
const serviceInfo = getServiceInfo(program, isModularLibrary);
|
|
57
|
-
const includeHeadersInResponse =
|
|
58
|
-
emitterOptions["include-headers-in-response"] === true;
|
|
49
|
+
const includeHeadersInResponse = emitterOptions["include-headers-in-response"] === true;
|
|
59
50
|
const azureSdkForJs = getAzureSdkForJs(emitterOptions, flavor);
|
|
60
51
|
const generateMetadata = getGenerateMetadata(emitterOptions);
|
|
61
52
|
const generateTest = getGenerateTest(emitterOptions, flavor);
|
|
62
53
|
const generateSample = getGenerateSample(dpgContext, emitterOptions);
|
|
63
|
-
const credentialInfo = getCredentialInfo(
|
|
64
|
-
program,
|
|
65
|
-
emitterOptions,
|
|
66
|
-
isModularLibrary
|
|
67
|
-
);
|
|
54
|
+
const credentialInfo = getCredentialInfo(program, emitterOptions, isModularLibrary);
|
|
68
55
|
const azureOutputDirectory = getAzureOutputDirectory(generationRootDir);
|
|
69
56
|
const enableOperationGroup = getEnableOperationGroup(
|
|
70
57
|
dpgContext,
|
|
71
58
|
emitterOptions,
|
|
72
|
-
isModularLibrary
|
|
73
|
-
);
|
|
74
|
-
const enableModelNamespace = getEnableModelNamespace(
|
|
75
|
-
dpgContext,
|
|
76
|
-
emitterOptions
|
|
59
|
+
isModularLibrary,
|
|
77
60
|
);
|
|
61
|
+
const enableModelNamespace = getEnableModelNamespace(dpgContext, emitterOptions);
|
|
78
62
|
const hierarchyClient = getHierarchyClient(emitterOptions);
|
|
79
63
|
const clearOutputFolder = getClearOutputFolder(emitterOptions);
|
|
80
64
|
const multiClient = emitterOptions["multi-client"];
|
|
@@ -84,25 +68,16 @@ function extractRLCOptions(
|
|
|
84
68
|
const productDocLink = emitterOptions["product-doc-link"];
|
|
85
69
|
const compatibilityMode = emitterOptions["compatibility-mode"];
|
|
86
70
|
const compatibilityLro = emitterOptions["compatibility-lro"];
|
|
87
|
-
const experimentalExtensibleEnums =
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
const ignoreEnumMemberNameNormalize =
|
|
92
|
-
emitterOptions["ignore-enum-member-name-normalize"];
|
|
93
|
-
const compatibilityQueryMultiFormat =
|
|
94
|
-
emitterOptions["compatibility-query-multi-format"];
|
|
71
|
+
const experimentalExtensibleEnums = emitterOptions["experimental-extensible-enums"];
|
|
72
|
+
const ignorePropertyNameNormalize = emitterOptions["ignore-property-name-normalize"];
|
|
73
|
+
const ignoreEnumMemberNameNormalize = emitterOptions["ignore-enum-member-name-normalize"];
|
|
74
|
+
const compatibilityQueryMultiFormat = emitterOptions["compatibility-query-multi-format"];
|
|
95
75
|
const enableStorageCompat = emitterOptions["enable-storage-compat"] === true;
|
|
96
|
-
const treatUnknownAsRecord =
|
|
97
|
-
emitterOptions["treat-unknown-as-record"] === true;
|
|
76
|
+
const treatUnknownAsRecord = emitterOptions["treat-unknown-as-record"] === true;
|
|
98
77
|
const typespecTitleMap = emitterOptions["typespec-title-map"];
|
|
99
|
-
const generateReactNativeTarget =
|
|
100
|
-
emitterOptions["generate-react-native-target"] === true;
|
|
78
|
+
const generateReactNativeTarget = emitterOptions["generate-react-native-target"] === true;
|
|
101
79
|
const hasSubscriptionId = getSubscriptionId(dpgContext);
|
|
102
|
-
const ignoreNullableOnOptional = getIgnoreNullableOnOptional(
|
|
103
|
-
emitterOptions,
|
|
104
|
-
flavor
|
|
105
|
-
);
|
|
80
|
+
const ignoreNullableOnOptional = getIgnoreNullableOnOptional(emitterOptions, flavor);
|
|
106
81
|
const wrapNonModelReturn = getWrapNonModelReturn(emitterOptions, flavor);
|
|
107
82
|
const isMultiService = (dpgContext.allServiceNamespaces?.length ?? 0) > 1;
|
|
108
83
|
|
|
@@ -144,7 +119,7 @@ function extractRLCOptions(
|
|
|
144
119
|
isMultiService,
|
|
145
120
|
enableStorageCompat,
|
|
146
121
|
treatUnknownAsRecord,
|
|
147
|
-
generateReactNativeTarget
|
|
122
|
+
generateReactNativeTarget,
|
|
148
123
|
};
|
|
149
124
|
}
|
|
150
125
|
|
|
@@ -164,10 +139,9 @@ function processAuth(program: Program, isModularLibrary: boolean) {
|
|
|
164
139
|
securityInfo.addCredentials = true;
|
|
165
140
|
securityInfo.customHttpAuthHeaderName = "Authorization";
|
|
166
141
|
// If it is basic or bearer auth we should generate it as Basic or Bearer
|
|
167
|
-
securityInfo.customHttpAuthSharedKeyPrefix = [
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
].includes(auth.scheme.toLowerCase())
|
|
142
|
+
securityInfo.customHttpAuthSharedKeyPrefix = ["basic", "bearer"].includes(
|
|
143
|
+
auth.scheme.toLowerCase(),
|
|
144
|
+
)
|
|
171
145
|
? pascalCase(auth.scheme)
|
|
172
146
|
: auth.scheme;
|
|
173
147
|
break;
|
|
@@ -190,7 +164,7 @@ function processAuth(program: Program, isModularLibrary: boolean) {
|
|
|
190
164
|
if (flow.scopes.length === 0) {
|
|
191
165
|
reportDiagnostic(program, {
|
|
192
166
|
code: "no-credential-scopes",
|
|
193
|
-
target: NoTarget
|
|
167
|
+
target: NoTarget,
|
|
194
168
|
});
|
|
195
169
|
}
|
|
196
170
|
// ignore the user_impersonation scope
|
|
@@ -204,7 +178,7 @@ function processAuth(program: Program, isModularLibrary: boolean) {
|
|
|
204
178
|
securityInfo.credentialScopes.push(
|
|
205
179
|
...flow.scopes.map((item) => {
|
|
206
180
|
return item.value;
|
|
207
|
-
})
|
|
181
|
+
}),
|
|
208
182
|
);
|
|
209
183
|
break;
|
|
210
184
|
}
|
|
@@ -218,7 +192,7 @@ function processAuth(program: Program, isModularLibrary: boolean) {
|
|
|
218
192
|
function getEnableOperationGroup(
|
|
219
193
|
dpgContext: SdkContext,
|
|
220
194
|
emitterOptions: EmitterOptions,
|
|
221
|
-
isModularLibrary: boolean
|
|
195
|
+
isModularLibrary: boolean,
|
|
222
196
|
) {
|
|
223
197
|
if (
|
|
224
198
|
emitterOptions["enable-operation-group"] === true ||
|
|
@@ -230,10 +204,7 @@ function getEnableOperationGroup(
|
|
|
230
204
|
return detectIfNameConflicts(dpgContext, isModularLibrary);
|
|
231
205
|
}
|
|
232
206
|
|
|
233
|
-
function getEnableModelNamespace(
|
|
234
|
-
dpgContext: SdkContext,
|
|
235
|
-
emitterOptions: EmitterOptions
|
|
236
|
-
) {
|
|
207
|
+
function getEnableModelNamespace(dpgContext: SdkContext, emitterOptions: EmitterOptions) {
|
|
237
208
|
if (
|
|
238
209
|
emitterOptions["enable-model-namespace"] === true ||
|
|
239
210
|
emitterOptions["enable-model-namespace"] === false
|
|
@@ -245,10 +216,7 @@ function getEnableModelNamespace(
|
|
|
245
216
|
}
|
|
246
217
|
|
|
247
218
|
function getHierarchyClient(emitterOptions: EmitterOptions) {
|
|
248
|
-
if (
|
|
249
|
-
emitterOptions["hierarchy-client"] === true ||
|
|
250
|
-
emitterOptions["hierarchy-client"] === false
|
|
251
|
-
) {
|
|
219
|
+
if (emitterOptions["hierarchy-client"] === true || emitterOptions["hierarchy-client"] === false) {
|
|
252
220
|
return emitterOptions["hierarchy-client"];
|
|
253
221
|
}
|
|
254
222
|
// enable hierarchy client by default if customers didn't set the option explicitly
|
|
@@ -259,10 +227,7 @@ function getClearOutputFolder(emitterOptions: EmitterOptions) {
|
|
|
259
227
|
return emitterOptions["clear-output-folder"] ? true : false;
|
|
260
228
|
}
|
|
261
229
|
|
|
262
|
-
function detectIfNameConflicts(
|
|
263
|
-
dpgContext: SdkContext,
|
|
264
|
-
isModularLibrary: boolean
|
|
265
|
-
) {
|
|
230
|
+
function detectIfNameConflicts(dpgContext: SdkContext, isModularLibrary: boolean) {
|
|
266
231
|
const clients = getRLCClients(dpgContext, isModularLibrary);
|
|
267
232
|
for (const client of clients) {
|
|
268
233
|
// only consider it's conflict when there are conflicts in the same client
|
|
@@ -284,7 +249,7 @@ function detectIfNameConflicts(
|
|
|
284
249
|
|
|
285
250
|
function getIgnoreNullableOnOptional(
|
|
286
251
|
emitterOptions: EmitterOptions,
|
|
287
|
-
flavor: PackageFlavor
|
|
252
|
+
flavor: PackageFlavor,
|
|
288
253
|
): boolean {
|
|
289
254
|
// If explicitly set in options, use that value
|
|
290
255
|
if (emitterOptions["ignore-nullable-on-optional"] !== undefined) {
|
|
@@ -294,10 +259,7 @@ function getIgnoreNullableOnOptional(
|
|
|
294
259
|
return flavor === "azure";
|
|
295
260
|
}
|
|
296
261
|
|
|
297
|
-
function getWrapNonModelReturn(
|
|
298
|
-
emitterOptions: EmitterOptions,
|
|
299
|
-
flavor: PackageFlavor
|
|
300
|
-
): boolean {
|
|
262
|
+
function getWrapNonModelReturn(emitterOptions: EmitterOptions, flavor: PackageFlavor): boolean {
|
|
301
263
|
// If explicitly set in options, use that value
|
|
302
264
|
if (emitterOptions["wrap-non-model-return"] !== undefined) {
|
|
303
265
|
return Boolean(emitterOptions["wrap-non-model-return"]);
|
|
@@ -314,10 +276,7 @@ function getModuleKind(emitterOptions: EmitterOptions) {
|
|
|
314
276
|
return emitterOptions["module-kind"] ?? "esm";
|
|
315
277
|
}
|
|
316
278
|
|
|
317
|
-
function getFlavor(
|
|
318
|
-
emitterOptions: EmitterOptions,
|
|
319
|
-
packageDetails?: PackageDetails
|
|
320
|
-
): PackageFlavor {
|
|
279
|
+
function getFlavor(emitterOptions: EmitterOptions, packageDetails?: PackageDetails): PackageFlavor {
|
|
321
280
|
const flavor = emitterOptions.flavor;
|
|
322
281
|
|
|
323
282
|
if (flavor !== undefined) {
|
|
@@ -346,28 +305,24 @@ function getFlavor(
|
|
|
346
305
|
function buildPackageDetails(
|
|
347
306
|
program: Program,
|
|
348
307
|
emitterOptions: EmitterOptions,
|
|
349
|
-
isModularLibrary: boolean
|
|
308
|
+
isModularLibrary: boolean,
|
|
350
309
|
): PackageDetails {
|
|
351
310
|
const defaultDetail = {
|
|
352
311
|
name: "@msinternal/unamedpackage",
|
|
353
312
|
nameWithoutScope: "unamedpackage",
|
|
354
|
-
version: "1.0.0-beta.1"
|
|
313
|
+
version: "1.0.0-beta.1",
|
|
355
314
|
};
|
|
356
|
-
const isVersionUserProvided = Boolean(
|
|
357
|
-
emitterOptions["package-details"]?.version
|
|
358
|
-
);
|
|
315
|
+
const isVersionUserProvided = Boolean(emitterOptions["package-details"]?.version);
|
|
359
316
|
const packageDetails: PackageDetails = {
|
|
360
317
|
...emitterOptions["package-details"],
|
|
361
318
|
name:
|
|
362
319
|
emitterOptions["package-details"]?.name ??
|
|
363
320
|
normalizeName(
|
|
364
|
-
emitterOptions?.title ??
|
|
365
|
-
|
|
366
|
-
"",
|
|
367
|
-
NameType.Class
|
|
321
|
+
emitterOptions?.title ?? getDefaultService(program, isModularLibrary)?.title ?? "",
|
|
322
|
+
NameType.Class,
|
|
368
323
|
),
|
|
369
324
|
version: emitterOptions["package-details"]?.version ?? "1.0.0-beta.1",
|
|
370
|
-
isVersionUserProvided
|
|
325
|
+
isVersionUserProvided,
|
|
371
326
|
};
|
|
372
327
|
if (emitterOptions["package-details"]?.name) {
|
|
373
328
|
const nameParts = emitterOptions["package-details"]?.name.split("/");
|
|
@@ -382,26 +337,20 @@ function buildPackageDetails(
|
|
|
382
337
|
function getPackageDetails(
|
|
383
338
|
program: Program,
|
|
384
339
|
emitterOptions: EmitterOptions,
|
|
385
|
-
isModularLibrary: boolean
|
|
340
|
+
isModularLibrary: boolean,
|
|
386
341
|
): PackageDetails {
|
|
387
342
|
return buildPackageDetails(program, emitterOptions, isModularLibrary);
|
|
388
343
|
}
|
|
389
344
|
|
|
390
|
-
function getServiceInfo(
|
|
391
|
-
program: Program,
|
|
392
|
-
isModularLibrary: boolean
|
|
393
|
-
): ServiceInfo {
|
|
345
|
+
function getServiceInfo(program: Program, isModularLibrary: boolean): ServiceInfo {
|
|
394
346
|
const defaultService = getDefaultService(program, isModularLibrary);
|
|
395
347
|
return {
|
|
396
348
|
title: defaultService?.title,
|
|
397
|
-
description: defaultService && getDoc(program, defaultService.type)
|
|
349
|
+
description: defaultService && getDoc(program, defaultService.type),
|
|
398
350
|
};
|
|
399
351
|
}
|
|
400
352
|
|
|
401
|
-
function getAzureSdkForJs(
|
|
402
|
-
emitterOptions: EmitterOptions,
|
|
403
|
-
flavor: PackageFlavor
|
|
404
|
-
) {
|
|
353
|
+
function getAzureSdkForJs(emitterOptions: EmitterOptions, flavor: PackageFlavor) {
|
|
405
354
|
return flavor !== "azure"
|
|
406
355
|
? false
|
|
407
356
|
: emitterOptions["azure-sdk-for-js"] === undefined ||
|
|
@@ -425,10 +374,7 @@ function getGenerateMetadata(emitterOptions: EmitterOptions) {
|
|
|
425
374
|
* @param emitterOptions
|
|
426
375
|
* @returns
|
|
427
376
|
*/
|
|
428
|
-
function getGenerateTest(
|
|
429
|
-
emitterOptions: EmitterOptions,
|
|
430
|
-
flavor: PackageFlavor
|
|
431
|
-
) {
|
|
377
|
+
function getGenerateTest(emitterOptions: EmitterOptions, flavor: PackageFlavor) {
|
|
432
378
|
// Disable generateTest if azureSdkForJS is false
|
|
433
379
|
if (!getAzureSdkForJs(emitterOptions, flavor)) {
|
|
434
380
|
return false;
|
|
@@ -441,10 +387,7 @@ function getGenerateTest(
|
|
|
441
387
|
* @param emitterOptions
|
|
442
388
|
* @returns
|
|
443
389
|
*/
|
|
444
|
-
function getGenerateSample(
|
|
445
|
-
dpgContext: SdkContext,
|
|
446
|
-
emitterOptions: EmitterOptions
|
|
447
|
-
) {
|
|
390
|
+
function getGenerateSample(dpgContext: SdkContext, emitterOptions: EmitterOptions) {
|
|
448
391
|
if (dpgContext.arm && emitterOptions["generate-sample"] === undefined) {
|
|
449
392
|
return true;
|
|
450
393
|
}
|
|
@@ -460,7 +403,7 @@ function getGenerateSample(
|
|
|
460
403
|
export function getCredentialInfo(
|
|
461
404
|
program: Program,
|
|
462
405
|
emitterOptions: EmitterOptions,
|
|
463
|
-
isModularLibrary: boolean = true
|
|
406
|
+
isModularLibrary: boolean = true,
|
|
464
407
|
) {
|
|
465
408
|
const securityInfo = processAuth(program, isModularLibrary);
|
|
466
409
|
const addCredentials =
|
|
@@ -490,20 +433,14 @@ export function getCredentialInfo(
|
|
|
490
433
|
credentialScopes,
|
|
491
434
|
credentialKeyHeaderName,
|
|
492
435
|
customHttpAuthHeaderName,
|
|
493
|
-
customHttpAuthSharedKeyPrefix
|
|
436
|
+
customHttpAuthSharedKeyPrefix,
|
|
494
437
|
};
|
|
495
438
|
}
|
|
496
439
|
|
|
497
440
|
function getAzureOutputDirectory(emitterOutputDir: string): string | undefined {
|
|
498
441
|
const sdkFolder = emitterOutputDir;
|
|
499
|
-
const sdkReletivePath = sdkFolder
|
|
500
|
-
|
|
501
|
-
.split("/")
|
|
502
|
-
.slice(-3)
|
|
503
|
-
.join("/");
|
|
504
|
-
return sdkReletivePath?.substring(0, 3) === "sdk"
|
|
505
|
-
? sdkReletivePath
|
|
506
|
-
: undefined;
|
|
442
|
+
const sdkReletivePath = sdkFolder?.replace(/\/$/, "").split("/").slice(-3).join("/");
|
|
443
|
+
return sdkReletivePath?.substring(0, 3) === "sdk" ? sdkReletivePath : undefined;
|
|
507
444
|
}
|
|
508
445
|
|
|
509
446
|
export function getSubscriptionId(dpgContext: SdkContext) {
|
package/src/utils/clientUtils.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
InitializedByFlags,
|
|
3
|
+
listAllServiceNamespaces,
|
|
4
|
+
listClients,
|
|
3
5
|
SdkClient,
|
|
4
6
|
SdkClientType,
|
|
5
7
|
SdkServiceOperation,
|
|
6
|
-
listAllServiceNamespaces,
|
|
7
|
-
listClients
|
|
8
8
|
} from "@azure-tools/typespec-client-generator-core";
|
|
9
9
|
import {
|
|
10
10
|
getNamespaceFullName,
|
|
@@ -12,18 +12,14 @@ import {
|
|
|
12
12
|
isTemplateDeclaration,
|
|
13
13
|
isTemplateDeclarationOrInstance,
|
|
14
14
|
Namespace,
|
|
15
|
-
Operation
|
|
15
|
+
Operation,
|
|
16
16
|
} from "@typespec/compiler";
|
|
17
|
-
import { SdkContext } from "./interfaces.js";
|
|
18
17
|
import { ModularClientOptions } from "../modular/interfaces.js";
|
|
19
18
|
import { NameType, normalizeName } from "../rlc-common/index.js";
|
|
19
|
+
import { SdkContext } from "./interfaces.js";
|
|
20
20
|
|
|
21
|
-
export function getRLCClients(
|
|
22
|
-
dpgContext
|
|
23
|
-
isModularLibrary?: boolean
|
|
24
|
-
): SdkClient[] {
|
|
25
|
-
const modular =
|
|
26
|
-
isModularLibrary ?? dpgContext.rlcOptions?.isModularLibrary ?? false;
|
|
21
|
+
export function getRLCClients(dpgContext: SdkContext, isModularLibrary?: boolean): SdkClient[] {
|
|
22
|
+
const modular = isModularLibrary ?? dpgContext.rlcOptions?.isModularLibrary ?? false;
|
|
27
23
|
const clients = listClients(dpgContext);
|
|
28
24
|
const rawServiceNamespaces =
|
|
29
25
|
dpgContext.allServiceNamespaces ?? listAllServiceNamespaces(dpgContext);
|
|
@@ -35,9 +31,7 @@ export function getRLCClients(
|
|
|
35
31
|
return {
|
|
36
32
|
...client,
|
|
37
33
|
services: services,
|
|
38
|
-
crossLanguageDefinitionId: `${getNamespaceFullName(
|
|
39
|
-
services[0]!
|
|
40
|
-
)}.${client.name}`
|
|
34
|
+
crossLanguageDefinitionId: `${getNamespaceFullName(services[0]!)}.${client.name}`,
|
|
41
35
|
};
|
|
42
36
|
});
|
|
43
37
|
} else {
|
|
@@ -61,10 +55,8 @@ export function getRLCClients(
|
|
|
61
55
|
subClients: [],
|
|
62
56
|
clientPath: clientName,
|
|
63
57
|
arm: Boolean(dpgContext.arm),
|
|
64
|
-
crossLanguageDefinitionId: `${getNamespaceFullName(
|
|
65
|
-
|
|
66
|
-
)}.${clientName}`,
|
|
67
|
-
subOperationGroups: []
|
|
58
|
+
crossLanguageDefinitionId: `${getNamespaceFullName(service)}.${clientName}`,
|
|
59
|
+
subOperationGroups: [],
|
|
68
60
|
};
|
|
69
61
|
});
|
|
70
62
|
}
|
|
@@ -82,10 +74,8 @@ export function getRLCClients(
|
|
|
82
74
|
subClients: [],
|
|
83
75
|
clientPath: clientName,
|
|
84
76
|
arm: Boolean(dpgContext.arm),
|
|
85
|
-
crossLanguageDefinitionId: `${getNamespaceFullName(
|
|
86
|
-
|
|
87
|
-
)}.${clientName}`,
|
|
88
|
-
subOperationGroups: []
|
|
77
|
+
crossLanguageDefinitionId: `${getNamespaceFullName(service)}.${clientName}`,
|
|
78
|
+
subOperationGroups: [],
|
|
89
79
|
};
|
|
90
80
|
});
|
|
91
81
|
}
|
|
@@ -100,8 +90,7 @@ export function listOperationsUnderRLCClient(client: SdkClient): Operation[] {
|
|
|
100
90
|
current.decorators.some(
|
|
101
91
|
(d) =>
|
|
102
92
|
d.definition?.name === "@client" &&
|
|
103
|
-
getNamespaceFullName(d.definition?.namespace) ===
|
|
104
|
-
"Azure.ClientGenerator.Core"
|
|
93
|
+
getNamespaceFullName(d.definition?.namespace) === "Azure.ClientGenerator.Core",
|
|
105
94
|
) &&
|
|
106
95
|
!serviceArray.includes(current as Namespace)
|
|
107
96
|
) {
|
|
@@ -109,15 +98,13 @@ export function listOperationsUnderRLCClient(client: SdkClient): Operation[] {
|
|
|
109
98
|
}
|
|
110
99
|
operations.push(
|
|
111
100
|
...[...current.operations.values()].filter(
|
|
112
|
-
(op) => isTemplateDeclarationOrInstance(op) === false
|
|
113
|
-
)
|
|
101
|
+
(op) => isTemplateDeclarationOrInstance(op) === false,
|
|
102
|
+
),
|
|
114
103
|
);
|
|
115
104
|
if (current.kind === "Namespace") {
|
|
116
105
|
queue.push(...current.namespaces.values());
|
|
117
106
|
queue.push(
|
|
118
|
-
...[...current.interfaces.values()].filter(
|
|
119
|
-
(i) => isTemplateDeclaration(i) === false
|
|
120
|
-
)
|
|
107
|
+
...[...current.interfaces.values()].filter((i) => isTemplateDeclaration(i) === false),
|
|
121
108
|
);
|
|
122
109
|
}
|
|
123
110
|
}
|
|
@@ -128,33 +115,28 @@ export function isRLCMultiEndpoint(dpgContext: SdkContext): boolean {
|
|
|
128
115
|
return getRLCClients(dpgContext).length > 1;
|
|
129
116
|
}
|
|
130
117
|
|
|
131
|
-
export function getModularClientOptions(
|
|
132
|
-
clientMap: [string[], SdkClientType<SdkServiceOperation>]
|
|
133
|
-
) {
|
|
118
|
+
export function getModularClientOptions(clientMap: [string[], SdkClientType<SdkServiceOperation>]) {
|
|
134
119
|
const [hierarchy, client] = clientMap;
|
|
135
120
|
const clientOptions: ModularClientOptions = {
|
|
136
|
-
rlcClientName: `${client.name.replace(/Client$/, "")}Context
|
|
121
|
+
rlcClientName: `${client.name.replace(/Client$/, "")}Context`,
|
|
137
122
|
};
|
|
138
123
|
clientOptions.subfolder = hierarchy.join("/");
|
|
139
124
|
return clientOptions;
|
|
140
125
|
}
|
|
141
126
|
|
|
142
127
|
export function getClientHierarchyMap(
|
|
143
|
-
context: SdkContext
|
|
128
|
+
context: SdkContext,
|
|
144
129
|
): [string[], SdkClientType<SdkServiceOperation>][] {
|
|
145
130
|
const clientMap: [string[], SdkClientType<SdkServiceOperation>][] = [];
|
|
146
131
|
const individualClients = context.sdkPackage.clients.filter((client) => {
|
|
147
|
-
return
|
|
148
|
-
client.clientInitialization.initializedBy &
|
|
149
|
-
InitializedByFlags.Individually
|
|
150
|
-
);
|
|
132
|
+
return client.clientInitialization.initializedBy & InitializedByFlags.Individually;
|
|
151
133
|
});
|
|
152
134
|
const clients = individualClients.map((client) => {
|
|
153
135
|
return [
|
|
154
136
|
context.sdkPackage.clients.length > 1
|
|
155
137
|
? [normalizeName(client.name.replace("Client", ""), NameType.File)]
|
|
156
138
|
: [],
|
|
157
|
-
client
|
|
139
|
+
client,
|
|
158
140
|
];
|
|
159
141
|
}) as [string[], SdkClientType<SdkServiceOperation>][];
|
|
160
142
|
for (let i = 0; i < clients.length; i++) {
|
|
@@ -162,8 +144,7 @@ export function getClientHierarchyMap(
|
|
|
162
144
|
clientMap.push([hierarchy, client]);
|
|
163
145
|
const childClientsToGenerate = client.children?.filter((child) => {
|
|
164
146
|
return (
|
|
165
|
-
child.clientInitialization.initializedBy &
|
|
166
|
-
InitializedByFlags.Individually ||
|
|
147
|
+
child.clientInitialization.initializedBy & InitializedByFlags.Individually ||
|
|
167
148
|
child.clientInitialization.initializedBy & InitializedByFlags.Parent
|
|
168
149
|
);
|
|
169
150
|
});
|
|
@@ -171,7 +152,7 @@ export function getClientHierarchyMap(
|
|
|
171
152
|
childClientsToGenerate.forEach((child) => {
|
|
172
153
|
const childHierarchy = [
|
|
173
154
|
...hierarchy,
|
|
174
|
-
normalizeName(child.name.replace("Client", ""), NameType.File)
|
|
155
|
+
normalizeName(child.name.replace("Client", ""), NameType.File),
|
|
175
156
|
];
|
|
176
157
|
clients.push([childHierarchy, child]);
|
|
177
158
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { SdkClientInitializationType } from "@azure-tools/typespec-client-generator-core";
|
|
1
2
|
import { NoTarget, Program } from "@typespec/compiler";
|
|
2
3
|
import { Authentication, HttpAuth } from "@typespec/http";
|
|
3
4
|
import { reportDiagnostic } from "../lib.js";
|
|
4
|
-
import { SdkClientInitializationType } from "@azure-tools/typespec-client-generator-core";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Get supported HTTP authentication schemes and filter out unsupported ones.
|
|
@@ -9,10 +9,7 @@ import { SdkClientInitializationType } from "@azure-tools/typespec-client-genera
|
|
|
9
9
|
* @param authorization authentication object
|
|
10
10
|
* @returns supported HTTP authentication schemes
|
|
11
11
|
*/
|
|
12
|
-
export function getSupportedHttpAuth(
|
|
13
|
-
program: Program,
|
|
14
|
-
authorization: Authentication
|
|
15
|
-
): HttpAuth[] {
|
|
12
|
+
export function getSupportedHttpAuth(program: Program, authorization: Authentication): HttpAuth[] {
|
|
16
13
|
const authList = [];
|
|
17
14
|
for (const option of authorization.options) {
|
|
18
15
|
for (const auth of option.schemes) {
|
|
@@ -25,9 +22,9 @@ export function getSupportedHttpAuth(
|
|
|
25
22
|
reportDiagnostic(program, {
|
|
26
23
|
code: "un-supported-credential",
|
|
27
24
|
format: {
|
|
28
|
-
credentialType: `${auth.type} ${auth.in}
|
|
25
|
+
credentialType: `${auth.type} ${auth.in}`,
|
|
29
26
|
},
|
|
30
|
-
target: NoTarget
|
|
27
|
+
target: NoTarget,
|
|
31
28
|
});
|
|
32
29
|
}
|
|
33
30
|
break;
|
|
@@ -42,9 +39,7 @@ export function getSupportedHttpAuth(
|
|
|
42
39
|
}
|
|
43
40
|
|
|
44
41
|
export function isSupportedKeyCredential(auth: HttpAuth): boolean {
|
|
45
|
-
return (
|
|
46
|
-
(auth.type === "apiKey" && auth.in === "header") || auth.type === "http"
|
|
47
|
-
);
|
|
42
|
+
return (auth.type === "apiKey" && auth.in === "header") || auth.type === "http";
|
|
48
43
|
}
|
|
49
44
|
|
|
50
45
|
export function isSupportedTokenCredential(auth: HttpAuth): boolean {
|
|
@@ -56,19 +51,13 @@ export function hasKeyCredential(initialization: SdkClientInitializationType) {
|
|
|
56
51
|
return authScheme.some((auth) => isSupportedKeyCredential(auth));
|
|
57
52
|
}
|
|
58
53
|
|
|
59
|
-
export function hasTokenCredential(
|
|
60
|
-
initialization: SdkClientInitializationType
|
|
61
|
-
) {
|
|
54
|
+
export function hasTokenCredential(initialization: SdkClientInitializationType) {
|
|
62
55
|
const authScheme = getAuthScheme(initialization);
|
|
63
56
|
return authScheme.some((auth) => isSupportedTokenCredential(auth));
|
|
64
57
|
}
|
|
65
58
|
|
|
66
|
-
function getAuthScheme(
|
|
67
|
-
initialization
|
|
68
|
-
): HttpAuth[] {
|
|
69
|
-
const credentialParams = initialization.parameters?.find(
|
|
70
|
-
(param) => param.kind === "credential"
|
|
71
|
-
);
|
|
59
|
+
function getAuthScheme(initialization: SdkClientInitializationType): HttpAuth[] {
|
|
60
|
+
const credentialParams = initialization.parameters?.find((param) => param.kind === "credential");
|
|
72
61
|
if (!credentialParams) {
|
|
73
62
|
return [];
|
|
74
63
|
}
|
|
@@ -1,27 +1,21 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { UsageFlags } from "@azure-tools/typespec-client-generator-core";
|
|
5
5
|
import { transformModularEmitterOptions } from "../modular/buildModularOptions.js";
|
|
6
|
-
import { getMethodHierarchiesMap } from "./operationUtil.js";
|
|
7
6
|
import { NameType, normalizeName } from "../rlc-common/index.js";
|
|
8
|
-
import {
|
|
7
|
+
import { SdkContext } from "./interfaces.js";
|
|
8
|
+
import { getMethodHierarchiesMap } from "./operationUtil.js";
|
|
9
9
|
|
|
10
10
|
export function generateCrossLanguageDefinitionFile(dpgContext: SdkContext): {
|
|
11
11
|
CrossLanguagePackageId: string;
|
|
12
12
|
CrossLanguageDefinitionId: Record<string, string>;
|
|
13
13
|
} {
|
|
14
|
-
const modularSourcesRoot =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
{
|
|
20
|
-
casing: "camel"
|
|
21
|
-
}
|
|
22
|
-
);
|
|
23
|
-
const packageName =
|
|
24
|
-
emitterOptions.options?.packageDetails?.name ?? "package-name";
|
|
14
|
+
const modularSourcesRoot = dpgContext.generationPathDetail?.modularSourcesDir ?? "src";
|
|
15
|
+
const emitterOptions = transformModularEmitterOptions(dpgContext, modularSourcesRoot, {
|
|
16
|
+
casing: "camel",
|
|
17
|
+
});
|
|
18
|
+
const packageName = emitterOptions.options?.packageDetails?.name ?? "package-name";
|
|
25
19
|
const CrossLanguageDefinitionId: Record<string, string> = {};
|
|
26
20
|
|
|
27
21
|
for (const model of dpgContext.sdkPackage.models) {
|
|
@@ -30,10 +24,7 @@ export function generateCrossLanguageDefinitionFile(dpgContext: SdkContext): {
|
|
|
30
24
|
}
|
|
31
25
|
for (const enm of dpgContext.sdkPackage.enums) {
|
|
32
26
|
// Skip api version enum for multi-service scenarios since each service may have different versions
|
|
33
|
-
if (
|
|
34
|
-
dpgContext.rlcOptions?.isMultiService &&
|
|
35
|
-
enm.usage === UsageFlags.ApiVersionEnum
|
|
36
|
-
) {
|
|
27
|
+
if (dpgContext.rlcOptions?.isMultiService && enm.usage === UsageFlags.ApiVersionEnum) {
|
|
37
28
|
continue;
|
|
38
29
|
}
|
|
39
30
|
CrossLanguageDefinitionId[`${packageName}!Known${enm.name}:enum`] =
|
|
@@ -45,9 +36,7 @@ export function generateCrossLanguageDefinitionFile(dpgContext: SdkContext): {
|
|
|
45
36
|
}
|
|
46
37
|
|
|
47
38
|
for (const subClient of dpgContext.sdkPackage.clients) {
|
|
48
|
-
const clientName =
|
|
49
|
-
emitterOptions.options?.typespecTitleMap?.[subClient.name] ??
|
|
50
|
-
subClient.name;
|
|
39
|
+
const clientName = emitterOptions.options?.typespecTitleMap?.[subClient.name] ?? subClient.name;
|
|
51
40
|
const methodMap = getMethodHierarchiesMap(dpgContext, subClient);
|
|
52
41
|
for (const [prefixKey, operations] of methodMap) {
|
|
53
42
|
const prefixes = prefixKey.split("/");
|
|
@@ -55,24 +44,16 @@ export function generateCrossLanguageDefinitionFile(dpgContext: SdkContext): {
|
|
|
55
44
|
for (const operation of operations) {
|
|
56
45
|
const { name } = operation;
|
|
57
46
|
const operationName = `${packageName}!${clientName}#${name}:member(1)`;
|
|
58
|
-
CrossLanguageDefinitionId[operationName] =
|
|
59
|
-
operation.crossLanguageDefinitionId;
|
|
47
|
+
CrossLanguageDefinitionId[operationName] = operation.crossLanguageDefinitionId;
|
|
60
48
|
}
|
|
61
49
|
} else {
|
|
62
50
|
// e,g., @azure/ai-client!ConnectionsOperations#getConnectionWithSecrets:member": "Azure.AI.Projects.Connections.getConnectionWithSecrets"
|
|
63
|
-
const rawGroupName = normalizeName(
|
|
64
|
-
|
|
65
|
-
NameType.Interface
|
|
66
|
-
);
|
|
67
|
-
const propertyType = `${normalizeName(
|
|
68
|
-
rawGroupName,
|
|
69
|
-
NameType.OperationGroup
|
|
70
|
-
)}Operations`;
|
|
51
|
+
const rawGroupName = normalizeName(prefixes[0] ?? "", NameType.Interface);
|
|
52
|
+
const propertyType = `${normalizeName(rawGroupName, NameType.OperationGroup)}Operations`;
|
|
71
53
|
for (const operation of operations) {
|
|
72
54
|
const { name } = operation;
|
|
73
55
|
const operationName = `${packageName}!${propertyType}#${name}:member`;
|
|
74
|
-
CrossLanguageDefinitionId[operationName] =
|
|
75
|
-
operation.crossLanguageDefinitionId;
|
|
56
|
+
CrossLanguageDefinitionId[operationName] = operation.crossLanguageDefinitionId;
|
|
76
57
|
}
|
|
77
58
|
}
|
|
78
59
|
}
|
|
@@ -80,6 +61,6 @@ export function generateCrossLanguageDefinitionFile(dpgContext: SdkContext): {
|
|
|
80
61
|
|
|
81
62
|
return {
|
|
82
63
|
CrossLanguagePackageId: dpgContext.sdkPackage.crossLanguagePackageId,
|
|
83
|
-
CrossLanguageDefinitionId
|
|
64
|
+
CrossLanguageDefinitionId,
|
|
84
65
|
};
|
|
85
66
|
}
|