@azure-tools/typespec-ts 0.55.0 → 0.55.2
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 +16 -0
- package/README.md +24 -19
- package/dist/src/context-manager.d.ts +19 -2
- package/dist/src/context-manager.d.ts.map +1 -1
- package/dist/src/context-manager.js +21 -0
- package/dist/src/context-manager.js.map +1 -1
- package/dist/src/framework/declaration.d.ts.map +1 -1
- package/dist/src/framework/declaration.js +6 -20
- package/dist/src/framework/declaration.js.map +1 -1
- package/dist/src/framework/hooks/sdk-types.d.ts +9 -0
- package/dist/src/framework/hooks/sdk-types.d.ts.map +1 -1
- package/dist/src/framework/hooks/sdk-types.js +14 -1
- package/dist/src/framework/hooks/sdk-types.js.map +1 -1
- package/dist/src/framework/source-file-batch.d.ts +35 -0
- package/dist/src/framework/source-file-batch.d.ts.map +1 -0
- package/dist/src/framework/source-file-batch.js +128 -0
- package/dist/src/framework/source-file-batch.js.map +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +84 -66
- package/dist/src/index.js.map +1 -1
- package/dist/src/{rlc-common/interfaces.d.ts → interfaces.d.ts} +12 -14
- package/dist/src/interfaces.d.ts.map +1 -0
- package/dist/src/interfaces.js.map +1 -0
- package/dist/src/lib.d.ts +17 -5
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +24 -17
- package/dist/src/lib.js.map +1 -1
- package/dist/src/meta-tree.d.ts +4 -4
- package/dist/src/meta-tree.d.ts.map +1 -1
- package/dist/src/metadata/build-api-extractor-config.d.ts +6 -0
- package/dist/src/metadata/build-api-extractor-config.d.ts.map +1 -0
- package/dist/src/metadata/build-api-extractor-config.js.map +1 -0
- package/dist/src/metadata/build-changelog-file.d.ts +6 -0
- package/dist/src/metadata/build-changelog-file.d.ts.map +1 -0
- package/dist/src/metadata/build-changelog-file.js.map +1 -0
- package/dist/src/metadata/build-es-lint-config.d.ts +6 -0
- package/dist/src/metadata/build-es-lint-config.d.ts.map +1 -0
- package/dist/src/metadata/build-es-lint-config.js.map +1 -0
- package/dist/src/metadata/build-license-file.d.ts.map +1 -0
- package/dist/src/metadata/build-license-file.js.map +1 -0
- package/dist/src/{rlc-common/metadata → metadata}/build-package-file.d.ts +3 -3
- package/dist/src/metadata/build-package-file.d.ts.map +1 -0
- package/dist/src/{rlc-common/metadata → metadata}/build-package-file.js +1 -1
- package/dist/src/metadata/build-package-file.js.map +1 -0
- package/dist/src/metadata/build-readme-file.d.ts +11 -0
- package/dist/src/metadata/build-readme-file.d.ts.map +1 -0
- package/dist/src/{rlc-common/metadata → metadata}/build-readme-file.js +16 -69
- package/dist/src/metadata/build-readme-file.js.map +1 -0
- package/dist/src/metadata/build-sample-env-file.d.ts +6 -0
- package/dist/src/metadata/build-sample-env-file.d.ts.map +1 -0
- package/dist/src/metadata/build-sample-env-file.js.map +1 -0
- package/dist/src/{rlc-common/metadata → metadata}/build-test-config.d.ts +3 -3
- package/dist/src/metadata/build-test-config.d.ts.map +1 -0
- package/dist/src/metadata/build-test-config.js.map +1 -0
- package/dist/src/{rlc-common/metadata → metadata}/build-ts-config.d.ts +13 -7
- package/dist/src/metadata/build-ts-config.d.ts.map +1 -0
- package/dist/src/{rlc-common/metadata → metadata}/build-ts-config.js +24 -8
- package/dist/src/metadata/build-ts-config.js.map +1 -0
- package/dist/src/metadata/build-vitest-config.d.ts +6 -0
- package/dist/src/metadata/build-vitest-config.d.ts.map +1 -0
- package/dist/src/metadata/build-vitest-config.js.map +1 -0
- package/dist/src/{rlc-common/metadata → metadata}/build-warp-config.d.ts +2 -2
- package/dist/src/metadata/build-warp-config.d.ts.map +1 -0
- package/dist/src/metadata/build-warp-config.js.map +1 -0
- package/dist/src/metadata/package-json/azure-package-common.d.ts.map +1 -0
- package/dist/src/metadata/package-json/azure-package-common.js.map +1 -0
- package/dist/src/metadata/package-json/build-azure-monorepo-package.d.ts.map +1 -0
- package/dist/src/{rlc-common/metadata → metadata}/package-json/build-azure-monorepo-package.js +1 -1
- package/dist/src/metadata/package-json/build-azure-monorepo-package.js.map +1 -0
- package/dist/src/metadata/package-json/package-common.d.ts.map +1 -0
- package/dist/src/metadata/package-json/package-common.js.map +1 -0
- package/dist/src/metadata/render-template.d.ts +24 -0
- package/dist/src/metadata/render-template.d.ts.map +1 -0
- package/dist/src/metadata/render-template.js +148 -0
- package/dist/src/metadata/render-template.js.map +1 -0
- package/dist/src/metadata/test/build-recorded-client.d.ts +6 -0
- package/dist/src/metadata/test/build-recorded-client.d.ts.map +1 -0
- package/dist/src/metadata/test/build-recorded-client.js +8 -0
- package/dist/src/metadata/test/build-recorded-client.js.map +1 -0
- package/dist/src/metadata/test/build-sample-test.d.ts +6 -0
- package/dist/src/metadata/test/build-sample-test.d.ts.map +1 -0
- package/dist/src/metadata/test/build-sample-test.js +8 -0
- package/dist/src/metadata/test/build-sample-test.js.map +1 -0
- package/dist/src/metadata/test/build-snippets.d.ts +6 -0
- package/dist/src/metadata/test/build-snippets.d.ts.map +1 -0
- package/dist/src/{rlc-common → metadata}/test/build-snippets.js +3 -5
- package/dist/src/metadata/test/build-snippets.js.map +1 -0
- package/dist/src/metadata/test/template.d.ts +4 -0
- package/dist/src/metadata/test/template.d.ts.map +1 -0
- package/dist/src/metadata/test/template.js +100 -0
- package/dist/src/metadata/test/template.js.map +1 -0
- package/dist/src/metadata/utils.d.ts +3 -0
- package/dist/src/metadata/utils.d.ts.map +1 -0
- package/dist/src/metadata/utils.js.map +1 -0
- package/dist/src/modular/build-classical-client.d.ts.map +1 -1
- package/dist/src/modular/build-classical-client.js +11 -11
- package/dist/src/modular/build-classical-client.js.map +1 -1
- package/dist/src/modular/build-classical-operation-groups.d.ts.map +1 -1
- package/dist/src/modular/build-classical-operation-groups.js +3 -3
- package/dist/src/modular/build-classical-operation-groups.js.map +1 -1
- package/dist/src/modular/build-client-context.d.ts.map +1 -1
- package/dist/src/modular/build-client-context.js +7 -7
- package/dist/src/modular/build-client-context.js.map +1 -1
- package/dist/src/modular/build-modular-options.js +3 -3
- package/dist/src/modular/build-modular-options.js.map +1 -1
- package/dist/src/modular/build-operations.d.ts.map +1 -1
- package/dist/src/modular/build-operations.js +6 -6
- package/dist/src/modular/build-operations.js.map +1 -1
- package/dist/src/modular/build-project-files.d.ts.map +1 -1
- package/dist/src/modular/build-project-files.js +4 -4
- package/dist/src/modular/build-project-files.js.map +1 -1
- package/dist/src/modular/build-restore-poller.d.ts.map +1 -1
- package/dist/src/modular/build-restore-poller.js +3 -3
- package/dist/src/modular/build-restore-poller.js.map +1 -1
- package/dist/src/modular/build-root-index.d.ts.map +1 -1
- package/dist/src/modular/build-root-index.js +42 -14
- package/dist/src/modular/build-root-index.js.map +1 -1
- package/dist/src/modular/build-subpath-index.d.ts.map +1 -1
- package/dist/src/modular/build-subpath-index.js +17 -4
- package/dist/src/modular/build-subpath-index.js.map +1 -1
- package/dist/src/modular/emit-models-options.d.ts.map +1 -1
- package/dist/src/modular/emit-models-options.js +3 -3
- package/dist/src/modular/emit-models-options.js.map +1 -1
- package/dist/src/modular/emit-models.d.ts +1 -1
- package/dist/src/modular/emit-models.d.ts.map +1 -1
- package/dist/src/modular/emit-models.js +32 -25
- package/dist/src/modular/emit-models.js.map +1 -1
- package/dist/src/modular/emit-samples.d.ts.map +1 -1
- package/dist/src/modular/emit-samples.js +5 -5
- package/dist/src/modular/emit-samples.js.map +1 -1
- package/dist/src/modular/emit-tests.d.ts.map +1 -1
- package/dist/src/modular/emit-tests.js +1 -1
- package/dist/src/modular/emit-tests.js.map +1 -1
- package/dist/src/modular/helpers/classical-operation-helpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/classical-operation-helpers.js +11 -11
- package/dist/src/modular/helpers/classical-operation-helpers.js.map +1 -1
- package/dist/src/modular/helpers/client-helpers.d.ts +6 -1
- package/dist/src/modular/helpers/client-helpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/client-helpers.js +18 -14
- package/dist/src/modular/helpers/client-helpers.js.map +1 -1
- package/dist/src/modular/helpers/example-value-helpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/example-value-helpers.js +2 -2
- package/dist/src/modular/helpers/example-value-helpers.js.map +1 -1
- package/dist/src/modular/helpers/naming-helpers.d.ts +1 -1
- package/dist/src/modular/helpers/naming-helpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/naming-helpers.js +2 -2
- package/dist/src/modular/helpers/naming-helpers.js.map +1 -1
- package/dist/src/modular/helpers/operation-helpers.d.ts +4 -4
- package/dist/src/modular/helpers/operation-helpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/operation-helpers.js +25 -26
- package/dist/src/modular/helpers/operation-helpers.js.map +1 -1
- package/dist/src/modular/helpers/type-helpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/type-helpers.js +1 -1
- package/dist/src/modular/helpers/type-helpers.js.map +1 -1
- package/dist/src/modular/interfaces.d.ts +4 -4
- package/dist/src/modular/interfaces.d.ts.map +1 -1
- package/dist/src/modular/serialization/build-deserializer-function.d.ts.map +1 -1
- package/dist/src/modular/serialization/build-deserializer-function.js +2 -2
- package/dist/src/modular/serialization/build-deserializer-function.js.map +1 -1
- package/dist/src/modular/serialization/build-serializer-function.d.ts.map +1 -1
- package/dist/src/modular/serialization/build-serializer-function.js +2 -2
- package/dist/src/modular/serialization/build-serializer-function.js.map +1 -1
- package/dist/src/modular/serialization/build-xml-serializer-function.d.ts.map +1 -1
- package/dist/src/modular/serialization/build-xml-serializer-function.js +1 -1
- package/dist/src/modular/serialization/build-xml-serializer-function.js.map +1 -1
- package/dist/src/modular/type-expressions/get-enum-expression.js +1 -1
- package/dist/src/modular/type-expressions/get-enum-expression.js.map +1 -1
- package/dist/src/modular/type-expressions/get-nullable-expression.js +1 -1
- 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 +3 -3
- package/dist/src/modular/type-expressions/get-type-expression.js.map +1 -1
- package/dist/src/transform/transform-api-version-info.d.ts +1 -1
- package/dist/src/transform/transform-api-version-info.d.ts.map +1 -1
- package/dist/src/transform/transform-api-version-info.js +4 -3
- package/dist/src/transform/transform-api-version-info.js.map +1 -1
- package/dist/src/transform/{transfrom-rlc-options.d.ts → transform-client-options.d.ts} +3 -3
- package/dist/src/transform/transform-client-options.d.ts.map +1 -0
- package/dist/src/transform/{transfrom-rlc-options.js → transform-client-options.js} +9 -13
- package/dist/src/transform/transform-client-options.js.map +1 -0
- package/dist/src/transform/transform-helper-function-details.d.ts +1 -1
- package/dist/src/transform/transform-helper-function-details.d.ts.map +1 -1
- package/dist/src/transform/transform-helper-function-details.js +4 -4
- package/dist/src/transform/transform-helper-function-details.js.map +1 -1
- package/dist/src/transform/transform-parameters.d.ts +1 -1
- package/dist/src/transform/transform-parameters.d.ts.map +1 -1
- package/dist/src/transform/transform-parameters.js +11 -11
- package/dist/src/transform/transform-parameters.js.map +1 -1
- package/dist/src/transform/transform-paths.d.ts +1 -1
- package/dist/src/transform/transform-paths.d.ts.map +1 -1
- package/dist/src/transform/transform-paths.js +5 -4
- package/dist/src/transform/transform-paths.js.map +1 -1
- package/dist/src/transform/transform-responses.d.ts +1 -1
- package/dist/src/transform/transform-responses.d.ts.map +1 -1
- package/dist/src/transform/transform-responses.js +19 -18
- package/dist/src/transform/transform-responses.js.map +1 -1
- package/dist/src/transform/transform-schemas.js +5 -5
- package/dist/src/transform/transform-schemas.js.map +1 -1
- package/dist/src/transform/transform-telemetry-info.d.ts +1 -1
- package/dist/src/transform/transform-telemetry-info.d.ts.map +1 -1
- package/dist/src/transform/transform-telemetry-info.js +2 -2
- package/dist/src/transform/transform-telemetry-info.js.map +1 -1
- package/dist/src/transform/transform.d.ts +2 -2
- package/dist/src/transform/transform.d.ts.map +1 -1
- package/dist/src/transform/transform.js +9 -10
- package/dist/src/transform/transform.js.map +1 -1
- package/dist/src/utils/api-version-util.d.ts.map +1 -0
- package/dist/src/utils/api-version-util.js.map +1 -0
- package/dist/src/utils/client-utils.d.ts +5 -5
- package/dist/src/utils/client-utils.d.ts.map +1 -1
- package/dist/src/utils/client-utils.js +10 -10
- package/dist/src/utils/client-utils.js.map +1 -1
- package/dist/src/utils/cross-language-def.d.ts.map +1 -1
- package/dist/src/utils/cross-language-def.js +3 -3
- package/dist/src/utils/cross-language-def.js.map +1 -1
- package/dist/src/utils/emit-util.d.ts +2 -2
- package/dist/src/utils/emit-util.d.ts.map +1 -1
- package/dist/src/utils/emit-util.js +2 -2
- package/dist/src/utils/emit-util.js.map +1 -1
- package/dist/src/utils/imports-util.d.ts.map +1 -0
- package/dist/src/{rlc-common/helpers → utils}/imports-util.js +6 -6
- package/dist/src/utils/imports-util.js.map +1 -0
- package/dist/src/utils/interfaces.d.ts +3 -4
- package/dist/src/utils/interfaces.d.ts.map +1 -1
- package/dist/src/utils/model-utils.d.ts +1 -1
- package/dist/src/utils/model-utils.d.ts.map +1 -1
- package/dist/src/utils/model-utils.js +4 -2
- package/dist/src/utils/model-utils.js.map +1 -1
- package/dist/src/{rlc-common/helpers → utils}/name-constructors.d.ts +2 -2
- package/dist/src/utils/name-constructors.d.ts.map +1 -0
- package/dist/src/utils/name-constructors.js.map +1 -0
- package/dist/src/utils/name-utils.d.ts.map +1 -0
- package/dist/src/utils/name-utils.js.map +1 -0
- package/dist/src/utils/namespace-utils.js +4 -4
- package/dist/src/utils/namespace-utils.js.map +1 -1
- package/dist/src/utils/operation-helpers.d.ts +16 -0
- package/dist/src/utils/operation-helpers.d.ts.map +1 -0
- package/dist/src/utils/operation-helpers.js.map +1 -0
- package/dist/src/utils/operation-util.d.ts +2 -2
- package/dist/src/utils/operation-util.d.ts.map +1 -1
- package/dist/src/utils/operation-util.js +17 -18
- package/dist/src/utils/operation-util.js.map +1 -1
- package/dist/src/utils/parameter-utils.d.ts +1 -1
- package/dist/src/utils/parameter-utils.d.ts.map +1 -1
- package/dist/src/utils/parameter-utils.js +2 -4
- package/dist/src/utils/parameter-utils.js.map +1 -1
- package/dist/src/{rlc-common/helpers → utils}/schema-helpers.d.ts +2 -2
- package/dist/src/utils/schema-helpers.d.ts.map +1 -0
- package/dist/src/utils/schema-helpers.js.map +1 -0
- package/dist/src/utils/type-util.d.ts.map +1 -0
- package/dist/src/utils/type-util.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +36 -46
- package/src/context-manager.ts +25 -2
- package/src/framework/declaration.ts +8 -20
- package/src/framework/hooks/sdk-types.ts +15 -1
- package/src/framework/source-file-batch.ts +140 -0
- package/src/index.ts +104 -107
- package/src/{rlc-common/interfaces.ts → interfaces.ts} +14 -16
- package/src/lib.ts +43 -23
- package/src/meta-tree.ts +4 -4
- package/src/{rlc-common/metadata → metadata}/build-api-extractor-config.ts +2 -2
- package/src/{rlc-common/metadata → metadata}/build-changelog-file.ts +3 -3
- package/src/{rlc-common/metadata → metadata}/build-es-lint-config.ts +2 -2
- package/src/{rlc-common/metadata → metadata}/build-package-file.ts +6 -6
- package/src/{rlc-common/metadata → metadata}/build-readme-file.ts +25 -99
- package/src/{rlc-common/metadata → metadata}/build-sample-env-file.ts +2 -2
- package/src/{rlc-common/metadata → metadata}/build-test-config.ts +4 -4
- package/src/{rlc-common/metadata → metadata}/build-ts-config.ts +28 -11
- package/src/{rlc-common/metadata → metadata}/build-vitest-config.ts +2 -2
- package/src/{rlc-common/metadata → metadata}/build-warp-config.ts +2 -2
- package/src/{rlc-common/metadata → metadata}/package-json/build-azure-monorepo-package.ts +1 -1
- package/src/metadata/render-template.ts +202 -0
- package/src/metadata/test/build-recorded-client.ts +9 -0
- package/src/metadata/test/build-sample-test.ts +9 -0
- package/src/{rlc-common → metadata}/test/build-snippets.ts +5 -7
- package/src/metadata/test/template.ts +101 -0
- package/src/{rlc-common/metadata → metadata}/utils.ts +2 -2
- package/src/modular/build-classical-client.ts +11 -15
- package/src/modular/build-classical-operation-groups.ts +3 -3
- package/src/modular/build-client-context.ts +7 -7
- package/src/modular/build-modular-options.ts +3 -3
- package/src/modular/build-operations.ts +6 -6
- package/src/modular/build-project-files.ts +4 -5
- package/src/modular/build-restore-poller.ts +3 -3
- package/src/modular/build-root-index.ts +57 -19
- package/src/modular/build-subpath-index.ts +26 -5
- package/src/modular/emit-models-options.ts +3 -3
- package/src/modular/emit-models.ts +32 -26
- package/src/modular/emit-samples.ts +5 -5
- package/src/modular/emit-tests.ts +1 -1
- package/src/modular/helpers/classical-operation-helpers.ts +11 -11
- package/src/modular/helpers/client-helpers.ts +19 -16
- package/src/modular/helpers/example-value-helpers.ts +2 -2
- package/src/modular/helpers/naming-helpers.ts +2 -2
- package/src/modular/helpers/operation-helpers.ts +27 -27
- package/src/modular/helpers/type-helpers.ts +1 -1
- package/src/modular/interfaces.ts +4 -4
- package/src/modular/serialization/build-deserializer-function.ts +2 -2
- package/src/modular/serialization/build-serializer-function.ts +2 -2
- package/src/modular/serialization/build-xml-serializer-function.ts +1 -1
- package/src/modular/type-expressions/get-enum-expression.ts +1 -1
- package/src/modular/type-expressions/get-nullable-expression.ts +1 -1
- package/src/modular/type-expressions/get-type-expression.ts +3 -3
- package/src/transform/transform-api-version-info.ts +4 -10
- package/src/transform/{transfrom-rlc-options.ts → transform-client-options.ts} +12 -22
- package/src/transform/transform-helper-function-details.ts +5 -5
- package/src/transform/transform-parameters.ts +12 -12
- package/src/transform/transform-paths.ts +5 -12
- package/src/transform/transform-responses.ts +19 -19
- package/src/transform/transform-schemas.ts +5 -5
- package/src/transform/transform-telemetry-info.ts +3 -3
- package/src/transform/transform.ts +13 -18
- package/src/utils/client-utils.ts +11 -11
- package/src/utils/cross-language-def.ts +3 -3
- package/src/utils/emit-util.ts +3 -3
- package/src/{rlc-common/helpers → utils}/imports-util.ts +6 -6
- package/src/utils/interfaces.ts +3 -4
- package/src/utils/model-utils.ts +7 -8
- package/src/{rlc-common/helpers → utils}/name-constructors.ts +2 -2
- package/src/utils/namespace-utils.ts +4 -4
- package/src/{rlc-common/helpers → utils}/operation-helpers.ts +12 -12
- package/src/utils/operation-util.ts +19 -33
- package/src/utils/parameter-utils.ts +2 -4
- package/src/{rlc-common/helpers → utils}/schema-helpers.ts +2 -2
- package/dist/src/rlc-common/helpers/api-version-util.d.ts.map +0 -1
- package/dist/src/rlc-common/helpers/api-version-util.js.map +0 -1
- package/dist/src/rlc-common/helpers/imports-util.d.ts.map +0 -1
- package/dist/src/rlc-common/helpers/imports-util.js.map +0 -1
- package/dist/src/rlc-common/helpers/name-constructors.d.ts.map +0 -1
- package/dist/src/rlc-common/helpers/name-constructors.js.map +0 -1
- package/dist/src/rlc-common/helpers/name-utils.d.ts.map +0 -1
- package/dist/src/rlc-common/helpers/name-utils.js.map +0 -1
- package/dist/src/rlc-common/helpers/operation-helpers.d.ts +0 -16
- package/dist/src/rlc-common/helpers/operation-helpers.d.ts.map +0 -1
- package/dist/src/rlc-common/helpers/operation-helpers.js.map +0 -1
- package/dist/src/rlc-common/helpers/schema-helpers.d.ts.map +0 -1
- package/dist/src/rlc-common/helpers/schema-helpers.js.map +0 -1
- package/dist/src/rlc-common/helpers/type-util.d.ts.map +0 -1
- package/dist/src/rlc-common/helpers/type-util.js.map +0 -1
- package/dist/src/rlc-common/index.d.ts +0 -23
- package/dist/src/rlc-common/index.d.ts.map +0 -1
- package/dist/src/rlc-common/index.js +0 -25
- package/dist/src/rlc-common/index.js.map +0 -1
- package/dist/src/rlc-common/interfaces.d.ts.map +0 -1
- package/dist/src/rlc-common/interfaces.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts +0 -6
- package/dist/src/rlc-common/metadata/build-api-extractor-config.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-api-extractor-config.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-changelog-file.d.ts +0 -6
- package/dist/src/rlc-common/metadata/build-changelog-file.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-changelog-file.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts +0 -6
- package/dist/src/rlc-common/metadata/build-es-lint-config.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-es-lint-config.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-license-file.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-license-file.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-package-file.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-package-file.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-readme-file.d.ts +0 -11
- package/dist/src/rlc-common/metadata/build-readme-file.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-readme-file.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts +0 -6
- package/dist/src/rlc-common/metadata/build-sample-env-file.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-sample-env-file.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-test-config.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-test-config.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-ts-config.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-ts-config.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-vitest-config.d.ts +0 -6
- package/dist/src/rlc-common/metadata/build-vitest-config.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-vitest-config.js.map +0 -1
- package/dist/src/rlc-common/metadata/build-warp-config.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/build-warp-config.js.map +0 -1
- package/dist/src/rlc-common/metadata/package-json/azure-package-common.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/package-json/azure-package-common.js.map +0 -1
- package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js.map +0 -1
- package/dist/src/rlc-common/metadata/package-json/package-common.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/package-json/package-common.js.map +0 -1
- package/dist/src/rlc-common/metadata/utils.d.ts +0 -3
- package/dist/src/rlc-common/metadata/utils.d.ts.map +0 -1
- package/dist/src/rlc-common/metadata/utils.js.map +0 -1
- package/dist/src/rlc-common/static/paginate-content.d.ts +0 -2
- package/dist/src/rlc-common/static/paginate-content.d.ts.map +0 -1
- package/dist/src/rlc-common/static/paginate-content.js +0 -345
- package/dist/src/rlc-common/static/paginate-content.js.map +0 -1
- package/dist/src/rlc-common/static/polling-content.d.ts +0 -2
- package/dist/src/rlc-common/static/polling-content.d.ts.map +0 -1
- package/dist/src/rlc-common/static/polling-content.js +0 -225
- package/dist/src/rlc-common/static/polling-content.js.map +0 -1
- package/dist/src/rlc-common/static/sample-template.d.ts +0 -2
- package/dist/src/rlc-common/static/sample-template.d.ts.map +0 -1
- package/dist/src/rlc-common/static/sample-template.js +0 -56
- package/dist/src/rlc-common/static/sample-template.js.map +0 -1
- package/dist/src/rlc-common/static/serialize-helper.d.ts +0 -6
- package/dist/src/rlc-common/static/serialize-helper.d.ts.map +0 -1
- package/dist/src/rlc-common/static/serialize-helper.js +0 -31
- package/dist/src/rlc-common/static/serialize-helper.js.map +0 -1
- package/dist/src/rlc-common/test/build-karma-config.d.ts +0 -6
- package/dist/src/rlc-common/test/build-karma-config.d.ts.map +0 -1
- package/dist/src/rlc-common/test/build-karma-config.js +0 -11
- package/dist/src/rlc-common/test/build-karma-config.js.map +0 -1
- package/dist/src/rlc-common/test/build-recorded-client.d.ts +0 -6
- package/dist/src/rlc-common/test/build-recorded-client.d.ts.map +0 -1
- package/dist/src/rlc-common/test/build-recorded-client.js +0 -14
- package/dist/src/rlc-common/test/build-recorded-client.js.map +0 -1
- package/dist/src/rlc-common/test/build-sample-test.d.ts +0 -6
- package/dist/src/rlc-common/test/build-sample-test.d.ts.map +0 -1
- package/dist/src/rlc-common/test/build-sample-test.js +0 -11
- package/dist/src/rlc-common/test/build-sample-test.js.map +0 -1
- package/dist/src/rlc-common/test/build-snippets.d.ts +0 -6
- package/dist/src/rlc-common/test/build-snippets.d.ts.map +0 -1
- package/dist/src/rlc-common/test/build-snippets.js.map +0 -1
- package/dist/src/rlc-common/test/template.d.ts +0 -5
- package/dist/src/rlc-common/test/template.d.ts.map +0 -1
- package/dist/src/rlc-common/test/template.js +0 -227
- package/dist/src/rlc-common/test/template.js.map +0 -1
- package/dist/src/transform/transfrom-rlc-options.d.ts.map +0 -1
- package/dist/src/transform/transfrom-rlc-options.js.map +0 -1
- package/src/rlc-common/index.ts +0 -25
- package/src/rlc-common/static/paginate-content.ts +0 -345
- package/src/rlc-common/static/polling-content.ts +0 -225
- package/src/rlc-common/static/sample-template.ts +0 -56
- package/src/rlc-common/static/serialize-helper.ts +0 -34
- package/src/rlc-common/test/build-karma-config.ts +0 -12
- package/src/rlc-common/test/build-recorded-client.ts +0 -15
- package/src/rlc-common/test/build-sample-test.ts +0 -12
- package/src/rlc-common/test/template.ts +0 -229
- /package/dist/src/{rlc-common/interfaces.js → interfaces.js} +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/build-api-extractor-config.js +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/build-changelog-file.js +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/build-es-lint-config.js +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/build-license-file.d.ts +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/build-license-file.js +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/build-sample-env-file.js +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/build-test-config.js +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/build-vitest-config.js +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/build-warp-config.js +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/package-json/azure-package-common.d.ts +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/package-json/azure-package-common.js +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/package-json/build-azure-monorepo-package.d.ts +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/package-json/package-common.d.ts +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/package-json/package-common.js +0 -0
- /package/dist/src/{rlc-common/metadata → metadata}/utils.js +0 -0
- /package/dist/src/{rlc-common/helpers → utils}/api-version-util.d.ts +0 -0
- /package/dist/src/{rlc-common/helpers → utils}/api-version-util.js +0 -0
- /package/dist/src/{rlc-common/helpers → utils}/imports-util.d.ts +0 -0
- /package/dist/src/{rlc-common/helpers → utils}/name-constructors.js +0 -0
- /package/dist/src/{rlc-common/helpers → utils}/name-utils.d.ts +0 -0
- /package/dist/src/{rlc-common/helpers → utils}/name-utils.js +0 -0
- /package/dist/src/{rlc-common/helpers → utils}/operation-helpers.js +0 -0
- /package/dist/src/{rlc-common/helpers → utils}/schema-helpers.js +0 -0
- /package/dist/src/{rlc-common/helpers → utils}/type-util.d.ts +0 -0
- /package/dist/src/{rlc-common/helpers → utils}/type-util.js +0 -0
- /package/src/{rlc-common/metadata → metadata}/build-license-file.ts +0 -0
- /package/src/{rlc-common/metadata → metadata}/package-json/azure-package-common.ts +0 -0
- /package/src/{rlc-common/metadata → metadata}/package-json/package-common.ts +0 -0
- /package/src/{rlc-common/helpers → utils}/api-version-util.ts +0 -0
- /package/src/{rlc-common/helpers → utils}/name-utils.ts +0 -0
- /package/src/{rlc-common/helpers → utils}/type-util.ts +0 -0
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { SdkClientType, SdkServiceOperation } from "@azure-tools/typespec-client-generator-core";
|
|
2
2
|
import { joinPaths, NoTarget } from "@typespec/compiler";
|
|
3
|
-
import { Project, SourceFile } from "ts-morph";
|
|
3
|
+
import { Project, SourceFile, StructureKind } from "ts-morph";
|
|
4
4
|
import { useContext } from "../context-manager.js";
|
|
5
5
|
import { resolveReference } from "../framework/reference.js";
|
|
6
|
+
import {
|
|
7
|
+
beginSourceFileBatch,
|
|
8
|
+
enqueueStatement,
|
|
9
|
+
flushSourceFileBatch,
|
|
10
|
+
getEffectiveExportedNames,
|
|
11
|
+
getQueuedExportNames,
|
|
12
|
+
} from "../framework/source-file-batch.js";
|
|
6
13
|
import { reportDiagnostic } from "../lib.js";
|
|
7
|
-
import {
|
|
8
|
-
import { getModularClientOptions } from "../utils/client-utils.js";
|
|
14
|
+
import { getClientModuleInfo } from "../utils/client-utils.js";
|
|
9
15
|
import { SdkContext } from "../utils/interfaces.js";
|
|
16
|
+
import { NameType, normalizeName } from "../utils/name-utils.js";
|
|
10
17
|
import { getMethodHierarchiesMap } from "../utils/operation-util.js";
|
|
11
18
|
import { partitionAndEmitExports } from "./build-subpath-index.js";
|
|
12
19
|
import { getClassicalClientName } from "./helpers/naming-helpers.js";
|
|
@@ -24,6 +31,20 @@ export function buildRootIndex(
|
|
|
24
31
|
emitterOptions: ModularEmitterOptions,
|
|
25
32
|
rootIndexFile: SourceFile,
|
|
26
33
|
clientMap?: [string[], SdkClientType<SdkServiceOperation>],
|
|
34
|
+
) {
|
|
35
|
+
beginSourceFileBatch();
|
|
36
|
+
try {
|
|
37
|
+
buildRootIndexImpl(context, emitterOptions, rootIndexFile, clientMap);
|
|
38
|
+
} finally {
|
|
39
|
+
flushSourceFileBatch();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function buildRootIndexImpl(
|
|
44
|
+
context: SdkContext,
|
|
45
|
+
emitterOptions: ModularEmitterOptions,
|
|
46
|
+
rootIndexFile: SourceFile,
|
|
47
|
+
clientMap?: [string[], SdkClientType<SdkServiceOperation>],
|
|
27
48
|
) {
|
|
28
49
|
if (!clientMap) {
|
|
29
50
|
// we still need to export the models if no client is provided
|
|
@@ -34,7 +55,7 @@ export function buildRootIndex(
|
|
|
34
55
|
const project = useContext("outputProject");
|
|
35
56
|
const [_, client] = clientMap;
|
|
36
57
|
const srcPath = emitterOptions.modularOptions.sourceRoot;
|
|
37
|
-
const { subfolder } =
|
|
58
|
+
const { subfolder } = getClientModuleInfo(clientMap);
|
|
38
59
|
const clientName = `${getClassicalClientName(client)}`;
|
|
39
60
|
const clientFile = project.getSourceFile(
|
|
40
61
|
`${srcPath}/${subfolder && subfolder !== "" ? subfolder + "/" : ""}${normalizeName(
|
|
@@ -109,7 +130,8 @@ function exportRestErrorTypes(rootIndexFile: SourceFile) {
|
|
|
109
130
|
const existingExports = getExistingExports(rootIndexFile);
|
|
110
131
|
const namedExports = ["RestError", "isRestError"].filter((name) => !existingExports.has(name));
|
|
111
132
|
if (namedExports.length > 0) {
|
|
112
|
-
rootIndexFile
|
|
133
|
+
enqueueStatement(rootIndexFile, {
|
|
134
|
+
kind: StructureKind.ExportDeclaration,
|
|
113
135
|
moduleSpecifier: "@azure/core-rest-pipeline",
|
|
114
136
|
namedExports,
|
|
115
137
|
});
|
|
@@ -165,13 +187,7 @@ function exportFileContentsType(context: SdkContext, rootIndexFile: SourceFile)
|
|
|
165
187
|
}
|
|
166
188
|
|
|
167
189
|
function getExistingExports(rootIndexFile: SourceFile): Set<string> {
|
|
168
|
-
return
|
|
169
|
-
rootIndexFile
|
|
170
|
-
.getExportDeclarations()
|
|
171
|
-
.flatMap((exportDecl) =>
|
|
172
|
-
exportDecl.getNamedExports().map((namedExport) => namedExport.getName()),
|
|
173
|
-
),
|
|
174
|
-
);
|
|
190
|
+
return getEffectiveExportedNames(rootIndexFile);
|
|
175
191
|
}
|
|
176
192
|
|
|
177
193
|
function getNewNamedExports(namedExports: string[], existingExports: Set<string>): string[] {
|
|
@@ -186,7 +202,8 @@ function addExportsToRootIndexFile(
|
|
|
186
202
|
const existingExports = getExistingExports(rootIndexFile);
|
|
187
203
|
const newNamedExports = getNewNamedExports(namedExports, existingExports);
|
|
188
204
|
if (newNamedExports.length > 0) {
|
|
189
|
-
rootIndexFile
|
|
205
|
+
enqueueStatement(rootIndexFile, {
|
|
206
|
+
kind: StructureKind.ExportDeclaration,
|
|
190
207
|
isTypeOnly,
|
|
191
208
|
namedExports: newNamedExports,
|
|
192
209
|
});
|
|
@@ -208,7 +225,7 @@ function exportSimplePollerLike(
|
|
|
208
225
|
const hasLro = Array.from(methodMap.values()).some((operations) => {
|
|
209
226
|
return operations.some(isLroOnlyOperation);
|
|
210
227
|
});
|
|
211
|
-
if (!hasLro || context.
|
|
228
|
+
if (!hasLro || context.emitterOptions?.compatibilityLro !== true) {
|
|
212
229
|
return;
|
|
213
230
|
}
|
|
214
231
|
const helperFile = project.getSourceFile(
|
|
@@ -222,7 +239,8 @@ function exportSimplePollerLike(
|
|
|
222
239
|
const moduleSpecifier = `./${
|
|
223
240
|
isTopLevel && subfolder && subfolder !== "" ? subfolder + "/" : ""
|
|
224
241
|
}static-helpers/simplePollerHelpers.js`;
|
|
225
|
-
indexFile
|
|
242
|
+
enqueueStatement(indexFile, {
|
|
243
|
+
kind: StructureKind.ExportDeclaration,
|
|
226
244
|
isTypeOnly: true,
|
|
227
245
|
moduleSpecifier,
|
|
228
246
|
namedExports: ["SimplePollerLike"],
|
|
@@ -243,7 +261,10 @@ function exportRestoreHelpers(
|
|
|
243
261
|
if (!helperFile) {
|
|
244
262
|
return;
|
|
245
263
|
}
|
|
246
|
-
const exported = new Set(
|
|
264
|
+
const exported = new Set([
|
|
265
|
+
...indexFile.getExportedDeclarations().keys(),
|
|
266
|
+
...getQueuedExportNames(indexFile),
|
|
267
|
+
]);
|
|
247
268
|
const allEntries = [...helperFile.getExportedDeclarations().entries()];
|
|
248
269
|
const moduleSpecifier = `./${
|
|
249
270
|
isTopLevel && subfolder && subfolder !== "" ? subfolder + "/" : ""
|
|
@@ -259,7 +280,8 @@ function exportClassicalClient(
|
|
|
259
280
|
isSubClient: boolean = false,
|
|
260
281
|
) {
|
|
261
282
|
const clientName = client.name;
|
|
262
|
-
indexFile
|
|
283
|
+
enqueueStatement(indexFile, {
|
|
284
|
+
kind: StructureKind.ExportDeclaration,
|
|
263
285
|
namedExports: [clientName],
|
|
264
286
|
moduleSpecifier: `./${
|
|
265
287
|
subfolder && subfolder !== "" && !isSubClient ? subfolder + "/" : ""
|
|
@@ -321,7 +343,10 @@ function exportModules(
|
|
|
321
343
|
continue;
|
|
322
344
|
}
|
|
323
345
|
|
|
324
|
-
const exported = new Set(
|
|
346
|
+
const exported = new Set([
|
|
347
|
+
...indexFile.getExportedDeclarations().keys(),
|
|
348
|
+
...getQueuedExportNames(indexFile),
|
|
349
|
+
]);
|
|
325
350
|
const serializerOrDeserializerRegex = /.*(Serializer|Deserializer)(_\d+)?$/;
|
|
326
351
|
const filteredEntries = [...modelsFile.getExportedDeclarations().entries()].filter(
|
|
327
352
|
(exDeclaration) => {
|
|
@@ -362,10 +387,23 @@ export function buildSubClientIndexFile(
|
|
|
362
387
|
context: SdkContext,
|
|
363
388
|
clientMap: [string[], SdkClientType<SdkServiceOperation>],
|
|
364
389
|
emitterOptions: ModularEmitterOptions,
|
|
390
|
+
) {
|
|
391
|
+
beginSourceFileBatch();
|
|
392
|
+
try {
|
|
393
|
+
buildSubClientIndexFileImpl(context, clientMap, emitterOptions);
|
|
394
|
+
} finally {
|
|
395
|
+
flushSourceFileBatch();
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
function buildSubClientIndexFileImpl(
|
|
400
|
+
context: SdkContext,
|
|
401
|
+
clientMap: [string[], SdkClientType<SdkServiceOperation>],
|
|
402
|
+
emitterOptions: ModularEmitterOptions,
|
|
365
403
|
) {
|
|
366
404
|
const project = useContext("outputProject");
|
|
367
405
|
const [_, client] = clientMap;
|
|
368
|
-
const { subfolder } =
|
|
406
|
+
const { subfolder } = getClientModuleInfo(clientMap);
|
|
369
407
|
const srcPath = emitterOptions.modularOptions.sourceRoot;
|
|
370
408
|
const subClientIndexFile = project.createSourceFile(
|
|
371
409
|
`${srcPath}/${subfolder && subfolder !== "" ? subfolder + "/" : ""}index.ts`,
|
|
@@ -2,9 +2,14 @@ import { SdkClientType, SdkServiceOperation } from "@azure-tools/typespec-client
|
|
|
2
2
|
import { joinPaths } from "@typespec/compiler";
|
|
3
3
|
import { ModularEmitterOptions } from "./interfaces.js";
|
|
4
4
|
|
|
5
|
-
import { Node, SourceFile } from "ts-morph";
|
|
5
|
+
import { Node, SourceFile, StructureKind } from "ts-morph";
|
|
6
6
|
import { useContext } from "../context-manager.js";
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
beginSourceFileBatch,
|
|
9
|
+
enqueueStatement,
|
|
10
|
+
flushSourceFileBatch,
|
|
11
|
+
} from "../framework/source-file-batch.js";
|
|
12
|
+
import { getClientModuleInfo } from "../utils/client-utils.js";
|
|
8
13
|
|
|
9
14
|
export interface buildSubpathIndexFileOptions {
|
|
10
15
|
exportIndex?: boolean;
|
|
@@ -17,9 +22,23 @@ export function buildSubpathIndexFile(
|
|
|
17
22
|
subpath: string,
|
|
18
23
|
clientMap?: [string[], SdkClientType<SdkServiceOperation>],
|
|
19
24
|
options: buildSubpathIndexFileOptions = {},
|
|
25
|
+
) {
|
|
26
|
+
beginSourceFileBatch();
|
|
27
|
+
try {
|
|
28
|
+
buildSubpathIndexFileImpl(emitterOptions, subpath, clientMap, options);
|
|
29
|
+
} finally {
|
|
30
|
+
flushSourceFileBatch();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function buildSubpathIndexFileImpl(
|
|
35
|
+
emitterOptions: ModularEmitterOptions,
|
|
36
|
+
subpath: string,
|
|
37
|
+
clientMap?: [string[], SdkClientType<SdkServiceOperation>],
|
|
38
|
+
options: buildSubpathIndexFileOptions = {},
|
|
20
39
|
) {
|
|
21
40
|
const project = useContext("outputProject");
|
|
22
|
-
const subfolder = clientMap ? (
|
|
41
|
+
const subfolder = clientMap ? (getClientModuleInfo(clientMap).subfolder ?? "") : "";
|
|
23
42
|
const srcPath = emitterOptions.modularOptions.sourceRoot;
|
|
24
43
|
// Skip to export these files because they are used internally.
|
|
25
44
|
const skipFiles = ["pagingHelpers.ts", "pollingHelpers.ts"];
|
|
@@ -137,14 +156,16 @@ export function partitionAndEmitExports(
|
|
|
137
156
|
}
|
|
138
157
|
}
|
|
139
158
|
if (typeOnlyExports.length > 0) {
|
|
140
|
-
indexFile
|
|
159
|
+
enqueueStatement(indexFile, {
|
|
160
|
+
kind: StructureKind.ExportDeclaration,
|
|
141
161
|
isTypeOnly: true,
|
|
142
162
|
moduleSpecifier,
|
|
143
163
|
namedExports: typeOnlyExports,
|
|
144
164
|
});
|
|
145
165
|
}
|
|
146
166
|
if (valueExports.length > 0) {
|
|
147
|
-
indexFile
|
|
167
|
+
enqueueStatement(indexFile, {
|
|
168
|
+
kind: StructureKind.ExportDeclaration,
|
|
148
169
|
moduleSpecifier,
|
|
149
170
|
namedExports: valueExports,
|
|
150
171
|
});
|
|
@@ -4,9 +4,9 @@ import { ModularEmitterOptions } from "./interfaces.js";
|
|
|
4
4
|
|
|
5
5
|
import { SdkClientType, SdkServiceOperation } from "@azure-tools/typespec-client-generator-core";
|
|
6
6
|
import { useContext } from "../context-manager.js";
|
|
7
|
-
import {
|
|
8
|
-
import { getModularClientOptions } from "../utils/client-utils.js";
|
|
7
|
+
import { getClientModuleInfo } from "../utils/client-utils.js";
|
|
9
8
|
import { SdkContext } from "../utils/interfaces.js";
|
|
9
|
+
import { NameType, normalizeName } from "../utils/name-utils.js";
|
|
10
10
|
import { getMethodHierarchiesMap } from "../utils/operation-util.js";
|
|
11
11
|
import { buildOperationOptions } from "./build-operations.js";
|
|
12
12
|
|
|
@@ -20,7 +20,7 @@ export function buildApiOptions(
|
|
|
20
20
|
const project = useContext("outputProject");
|
|
21
21
|
const [_, client] = clientMap;
|
|
22
22
|
const modelOptionsFiles = [];
|
|
23
|
-
const { subfolder } =
|
|
23
|
+
const { subfolder } = getClientModuleInfo(clientMap);
|
|
24
24
|
const methodMap = getMethodHierarchiesMap(context, client);
|
|
25
25
|
for (const [prefixKey, operations] of methodMap) {
|
|
26
26
|
const prefixes = prefixKey.split("/");
|
|
@@ -28,7 +28,6 @@ import {
|
|
|
28
28
|
StructureKind,
|
|
29
29
|
TypeAliasDeclarationStructure,
|
|
30
30
|
} from "ts-morph";
|
|
31
|
-
import { fixLeadingNumber, NameType, normalizeName } from "../rlc-common/index.js";
|
|
32
31
|
// import { isKey } from "@typespec/compiler";
|
|
33
32
|
import {
|
|
34
33
|
getExternalModel,
|
|
@@ -47,10 +46,12 @@ import {
|
|
|
47
46
|
pagedModelsKeptPublic,
|
|
48
47
|
} from "../framework/hooks/sdk-types.js";
|
|
49
48
|
import { refkey } from "../framework/refkey.js";
|
|
49
|
+
import { beginSourceFileBatch, flushSourceFileBatch } from "../framework/source-file-batch.js";
|
|
50
50
|
import { reportDiagnostic } from "../lib.js";
|
|
51
51
|
import { getClientHierarchyMap } from "../utils/client-utils.js";
|
|
52
52
|
import { SdkContext } from "../utils/interfaces.js";
|
|
53
53
|
import { isAzureCoreErrorType } from "../utils/model-utils.js";
|
|
54
|
+
import { fixLeadingNumber, NameType, normalizeName } from "../utils/name-utils.js";
|
|
54
55
|
import { getMethodHierarchiesMap } from "../utils/operation-util.js";
|
|
55
56
|
import { getHeaderClientOptions } from "./helpers/client-option-helpers.js";
|
|
56
57
|
import {
|
|
@@ -117,32 +118,37 @@ export function emitTypes(context: SdkContext, { sourceRoot }: { sourceRoot: str
|
|
|
117
118
|
|
|
118
119
|
let sourceFile;
|
|
119
120
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
beginSourceFileBatch();
|
|
122
|
+
try {
|
|
123
|
+
for (const type of emitQueue) {
|
|
124
|
+
if (!isGenerableType(type)) {
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
124
127
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
128
|
+
const namespaces = getModelNamespaces(context, type);
|
|
129
|
+
const filepath = getModelsPath(sourceRoot, namespaces);
|
|
130
|
+
sourceFile = outputProject.getSourceFile(filepath);
|
|
131
|
+
if (!sourceFile) {
|
|
132
|
+
sourceFile = outputProject.createSourceFile(filepath);
|
|
133
|
+
sourceFile.addStatements(`/*
|
|
131
134
|
* This file contains only generated model types and their (de)serializers.
|
|
132
135
|
* Disable the following rules for internal models with '_' prefix and deserializers which require 'any' for raw JSON input.
|
|
133
136
|
*/
|
|
134
137
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
135
138
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */`);
|
|
139
|
+
}
|
|
140
|
+
emitType(context, type, sourceFile);
|
|
136
141
|
}
|
|
137
|
-
emitType(context, type, sourceFile);
|
|
138
|
-
}
|
|
139
142
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
143
|
+
// Emit serialization/deserialization functions for flattened properties
|
|
144
|
+
for (const [property, _] of flattenPropertyModelMap) {
|
|
145
|
+
const namespaces = getModelNamespaces(context, property.type);
|
|
146
|
+
const filepath = getModelsPath(sourceRoot, namespaces);
|
|
147
|
+
sourceFile = outputProject.getSourceFile(filepath);
|
|
148
|
+
addSerializationFunctions(context, property, sourceFile!);
|
|
149
|
+
}
|
|
150
|
+
} finally {
|
|
151
|
+
flushSourceFileBatch();
|
|
146
152
|
}
|
|
147
153
|
|
|
148
154
|
const modelFiles = outputProject.getSourceFiles(sourceRoot + "/models/**/*.ts");
|
|
@@ -245,7 +251,7 @@ function emitType(context: SdkContext, type: SdkType, sourceFile: SourceFile) {
|
|
|
245
251
|
}
|
|
246
252
|
const apiVersionEnumOnly = type.usage === UsageFlags.ApiVersionEnum;
|
|
247
253
|
// Skip known api version enums for multi-service scenarios as users are not allowed to set api versions
|
|
248
|
-
if (apiVersionEnumOnly && context.
|
|
254
|
+
if (apiVersionEnumOnly && context.emitterOptions?.isMultiService) {
|
|
249
255
|
return;
|
|
250
256
|
}
|
|
251
257
|
const inputUsage = (type.usage & UsageFlags.Input) === UsageFlags.Input;
|
|
@@ -290,7 +296,7 @@ function emitType(context: SdkContext, type: SdkType, sourceFile: SourceFile) {
|
|
|
290
296
|
|
|
291
297
|
export function getApiVersionEnum(context: SdkContext) {
|
|
292
298
|
// Skip api version enum for multi-service scenarios since each service may have different versions
|
|
293
|
-
if (context.
|
|
299
|
+
if (context.emitterOptions?.isMultiService) {
|
|
294
300
|
return;
|
|
295
301
|
}
|
|
296
302
|
const apiVersionEnum = context.sdkPackage.enums.find(
|
|
@@ -325,7 +331,7 @@ export function getModelNamespaces(context: SdkContext, model: SdkType): string[
|
|
|
325
331
|
}
|
|
326
332
|
const segments = model.namespace.split(".");
|
|
327
333
|
// Keep full namespace segments if multiple services are present because there isn't a root namespace to trim
|
|
328
|
-
if (context.
|
|
334
|
+
if (context.emitterOptions?.isMultiService) {
|
|
329
335
|
return segments;
|
|
330
336
|
}
|
|
331
337
|
|
|
@@ -603,7 +609,7 @@ function emitEnumMember(
|
|
|
603
609
|
): EnumMemberStructure {
|
|
604
610
|
const shouldNormalizeName = !member.name.startsWith("$DO_NOT_NORMALIZE$");
|
|
605
611
|
const enumTypeName = normalizeName(member.enumType.name, NameType.Interface, true);
|
|
606
|
-
let normalizedMemberName = context.
|
|
612
|
+
let normalizedMemberName = context.emitterOptions?.ignoreEnumMemberNameNormalize
|
|
607
613
|
? fixLeadingNumber(member.name, NameType.EnumMemberName) // need to fix the leading number also for enum member
|
|
608
614
|
: normalizeName(member.name, NameType.EnumMemberName, true);
|
|
609
615
|
// If the member name starts with _ due to a leading digit (not because the original has _),
|
|
@@ -744,7 +750,7 @@ function addExtendedDictInfo(
|
|
|
744
750
|
const additionalPropertiesType = model.additionalProperties
|
|
745
751
|
? getTypeExpression(context, model.additionalProperties)
|
|
746
752
|
: undefined;
|
|
747
|
-
if (context.
|
|
753
|
+
if (context.emitterOptions?.compatibilityMode) {
|
|
748
754
|
const ancestors = getAllAncestors(model);
|
|
749
755
|
const properties = getAllProperties(context, model, ancestors);
|
|
750
756
|
let anyType: boolean;
|
|
@@ -839,7 +845,7 @@ export function normalizeModelName(
|
|
|
839
845
|
unionSuffix = "Union";
|
|
840
846
|
}
|
|
841
847
|
}
|
|
842
|
-
const namespacePrefix = context.
|
|
848
|
+
const namespacePrefix = context.emitterOptions?.enableModelNamespace ? segments.join("") : "";
|
|
843
849
|
const internalModelPrefix =
|
|
844
850
|
(isPagedResultModel(context, type) && !pagedModelsKeptPublic.has(type)) || type.isGeneratedName
|
|
845
851
|
? "_"
|
|
@@ -883,7 +889,7 @@ function buildModelProperty(
|
|
|
883
889
|
): PropertySignatureStructure {
|
|
884
890
|
const normalizedPropName = normalizeModelPropertyName(context, property);
|
|
885
891
|
if (
|
|
886
|
-
!context.
|
|
892
|
+
!context.emitterOptions?.ignorePropertyNameNormalize &&
|
|
887
893
|
normalizedPropName !== `"${property.name}"`
|
|
888
894
|
) {
|
|
889
895
|
reportDiagnostic(context.program, {
|
|
@@ -14,10 +14,10 @@ import { useContext } from "../context-manager.js";
|
|
|
14
14
|
import { resolveReference } from "../framework/reference.js";
|
|
15
15
|
import { reportDiagnostic } from "../index.js";
|
|
16
16
|
import { AzureIdentityDependencies } from "../modular/external-dependencies.js";
|
|
17
|
-
import {
|
|
18
|
-
import { getSubscriptionId } from "../transform/transfrom-rlc-options.js";
|
|
17
|
+
import { getSubscriptionId } from "../transform/transform-client-options.js";
|
|
19
18
|
import { hasKeyCredential, hasTokenCredential } from "../utils/credential-utils.js";
|
|
20
19
|
import { SdkContext } from "../utils/interfaces.js";
|
|
20
|
+
import { NameType, normalizeName } from "../utils/name-utils.js";
|
|
21
21
|
import {
|
|
22
22
|
getMethodHierarchiesMap,
|
|
23
23
|
isTenantLevelOperation,
|
|
@@ -115,9 +115,9 @@ function emitMethodSamples(
|
|
|
115
115
|
});
|
|
116
116
|
const exampleFunctions = [];
|
|
117
117
|
// TODO: remove hard-coded for package
|
|
118
|
-
if (dpgContext.
|
|
118
|
+
if (dpgContext.emitterOptions?.packageDetails?.name) {
|
|
119
119
|
sourceFile.addImportDeclaration({
|
|
120
|
-
moduleSpecifier: dpgContext.
|
|
120
|
+
moduleSpecifier: dpgContext.emitterOptions?.packageDetails?.name,
|
|
121
121
|
namedImports: [getClassicalClientName(options.topLevelClient)],
|
|
122
122
|
});
|
|
123
123
|
}
|
|
@@ -606,7 +606,7 @@ function getParameterValue(
|
|
|
606
606
|
retValue = `${JSON.stringify(value.value)}`;
|
|
607
607
|
break;
|
|
608
608
|
case "null": {
|
|
609
|
-
const ignoreNullableOnOptional = context.
|
|
609
|
+
const ignoreNullableOnOptional = context.emitterOptions?.ignoreNullableOnOptional ?? false;
|
|
610
610
|
if (ignoreNullableOnOptional) {
|
|
611
611
|
// When ignore-nullable-on-optional is true, the TypeScript type won't include
|
|
612
612
|
// | null for optional properties, so we convert null to a type-appropriate default
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type CompilerHost, joinPaths } from "@typespec/compiler";
|
|
2
2
|
import { SourceFile } from "ts-morph";
|
|
3
3
|
import { resolveReference } from "../framework/reference.js";
|
|
4
|
-
import { NameType, normalizeName } from "../rlc-common/index.js";
|
|
5
4
|
import { SdkContext } from "../utils/interfaces.js";
|
|
5
|
+
import { NameType, normalizeName } from "../utils/name-utils.js";
|
|
6
6
|
import { ServiceOperation } from "../utils/operation-util.js";
|
|
7
7
|
import { AzureTestDependencies } from "./external-dependencies.js";
|
|
8
8
|
import {
|
|
@@ -10,9 +10,9 @@ import {
|
|
|
10
10
|
import { addDeclaration } from "../../framework/declaration.js";
|
|
11
11
|
import { resolveReference } from "../../framework/reference.js";
|
|
12
12
|
import { refkey } from "../../framework/refkey.js";
|
|
13
|
-
import {
|
|
14
|
-
import { getModularClientOptions } from "../../utils/client-utils.js";
|
|
13
|
+
import { getClientModuleInfo } from "../../utils/client-utils.js";
|
|
15
14
|
import { SdkContext } from "../../utils/interfaces.js";
|
|
15
|
+
import { NameType, normalizeName } from "../../utils/name-utils.js";
|
|
16
16
|
import { ServiceOperation } from "../../utils/operation-util.js";
|
|
17
17
|
import { AzurePollingDependencies } from "../external-dependencies.js";
|
|
18
18
|
import { PagingHelpers, SimplePollerHelpers } from "../static-helpers-metadata.js";
|
|
@@ -55,18 +55,18 @@ export function getClassicalOperation(
|
|
|
55
55
|
) {
|
|
56
56
|
const prefixes = operationGroup[0];
|
|
57
57
|
const operations = operationGroup[1];
|
|
58
|
-
const {
|
|
58
|
+
const { clientName } = getClientModuleInfo(clientMap);
|
|
59
59
|
const hasClientContextImport = classicFile.getImportDeclarations().filter((i) => {
|
|
60
60
|
return (
|
|
61
61
|
i.getModuleSpecifierValue() ===
|
|
62
|
-
`${"../".repeat(layer + 2)}api/${normalizeName(
|
|
62
|
+
`${"../".repeat(layer + 2)}api/${normalizeName(clientName, NameType.File)}.js`
|
|
63
63
|
);
|
|
64
64
|
});
|
|
65
65
|
if (!hasClientContextImport || hasClientContextImport.length === 0) {
|
|
66
66
|
classicFile.addImportDeclaration({
|
|
67
|
-
namedImports: [
|
|
67
|
+
namedImports: [clientName],
|
|
68
68
|
moduleSpecifier: `${"../".repeat(layer + 2)}api/${normalizeName(
|
|
69
|
-
|
|
69
|
+
clientName,
|
|
70
70
|
NameType.File,
|
|
71
71
|
)}.js`,
|
|
72
72
|
});
|
|
@@ -78,7 +78,7 @@ export function getClassicalOperation(
|
|
|
78
78
|
>();
|
|
79
79
|
const operationDeclarations: OptionalKind<FunctionDeclarationStructure>[] = operations.map(
|
|
80
80
|
(operation) => {
|
|
81
|
-
const declaration = getOperationFunction(dpgContext, [prefixes, operation],
|
|
81
|
+
const declaration = getOperationFunction(dpgContext, [prefixes, operation], clientName);
|
|
82
82
|
operationDeclarationMap.set(declaration, {
|
|
83
83
|
declaration,
|
|
84
84
|
oriName: operation.oriName,
|
|
@@ -141,7 +141,7 @@ export function getClassicalOperation(
|
|
|
141
141
|
});
|
|
142
142
|
// add LRO helper methods if applicable
|
|
143
143
|
if (
|
|
144
|
-
dpgContext.
|
|
144
|
+
dpgContext.emitterOptions?.compatibilityLro &&
|
|
145
145
|
(operationInfo?.isLro || operationInfo?.isLroPaging)
|
|
146
146
|
) {
|
|
147
147
|
const operationStateReference = resolveReference(AzurePollingDependencies.OperationState);
|
|
@@ -207,7 +207,7 @@ export function getClassicalOperation(
|
|
|
207
207
|
parameters: [
|
|
208
208
|
{
|
|
209
209
|
name: "context",
|
|
210
|
-
type:
|
|
210
|
+
type: clientName,
|
|
211
211
|
},
|
|
212
212
|
],
|
|
213
213
|
statements: `return {
|
|
@@ -237,7 +237,7 @@ export function getClassicalOperation(
|
|
|
237
237
|
];
|
|
238
238
|
// add LRO helper methods if applicable
|
|
239
239
|
if (
|
|
240
|
-
dpgContext.
|
|
240
|
+
dpgContext.emitterOptions?.compatibilityLro &&
|
|
241
241
|
(operationInfo?.isLro || operationInfo?.isLroPaging)
|
|
242
242
|
) {
|
|
243
243
|
const getSimplePollerReference = resolveReference(
|
|
@@ -336,7 +336,7 @@ export function getClassicalOperation(
|
|
|
336
336
|
parameters: [
|
|
337
337
|
{
|
|
338
338
|
name: "context",
|
|
339
|
-
type:
|
|
339
|
+
type: clientName,
|
|
340
340
|
},
|
|
341
341
|
],
|
|
342
342
|
returnType: resolveReference(refkey(interfaceName, layer, "classicOperations")),
|
|
@@ -10,8 +10,8 @@ import { OptionalKind, ParameterDeclarationStructure, StatementedNode } from "ts
|
|
|
10
10
|
import { ModularEmitterOptions } from "../interfaces.js";
|
|
11
11
|
|
|
12
12
|
import { resolveReference } from "../../framework/reference.js";
|
|
13
|
-
import { NameType, normalizeName } from "../../rlc-common/index.js";
|
|
14
13
|
import { SdkContext } from "../../utils/interfaces.js";
|
|
14
|
+
import { NameType, normalizeName } from "../../utils/name-utils.js";
|
|
15
15
|
import { CloudSettingHelpers } from "../static-helpers-metadata.js";
|
|
16
16
|
import { getTypeExpression } from "../type-expressions/get-type-expression.js";
|
|
17
17
|
import { getClassicalClientName } from "./naming-helpers.js";
|
|
@@ -87,10 +87,10 @@ export function getClientParameters(
|
|
|
87
87
|
const armSpecific = (p: SdkParameter) => !(p.kind === "endpoint" && dpgContext.arm);
|
|
88
88
|
// Skip apiVersion parameter when it's multi-service (each service has its own default apiVersion)
|
|
89
89
|
const skipApiVersionOnMultiService = (p: SdkParameter) =>
|
|
90
|
-
!(dpgContext.
|
|
90
|
+
!(dpgContext.emitterOptions?.isMultiService && p.isApiVersionParam);
|
|
91
91
|
const filters = [
|
|
92
92
|
options.requiredOnly ? isRequired : undefined,
|
|
93
|
-
dpgContext.
|
|
93
|
+
dpgContext.emitterOptions?.addCredentials === false ? skipCredentials : undefined,
|
|
94
94
|
options.optionalOnly ? isOptional : undefined,
|
|
95
95
|
options.onClientOnly ? skipMethodParam : undefined,
|
|
96
96
|
options.skipArmSpecific ? undefined : armSpecific,
|
|
@@ -241,7 +241,7 @@ export function buildGetClientOptionsParam(
|
|
|
241
241
|
endpointParam: string,
|
|
242
242
|
apiVersionParamName?: string,
|
|
243
243
|
): string {
|
|
244
|
-
const userAgentOptions = buildUserAgentOptions(context, emitterOptions
|
|
244
|
+
const userAgentOptions = buildUserAgentOptions(context, emitterOptions);
|
|
245
245
|
const loggingOptions = buildLoggingOptions();
|
|
246
246
|
const credentials = buildCredentials(emitterOptions, endpointParam);
|
|
247
247
|
|
|
@@ -313,10 +313,14 @@ function buildLoggingOptions(): string | undefined {
|
|
|
313
313
|
return `{ logger: options.loggingOptions?.logger ?? logger.info }`;
|
|
314
314
|
}
|
|
315
315
|
|
|
316
|
+
/**
|
|
317
|
+
* Builds the `userAgentOptions` for the generated client, producing a telemetry
|
|
318
|
+
* prefix of the form `[<application_id> ]azsdk-js-<package>/<version>` per the Azure
|
|
319
|
+
* Core telemetry policy: https://azure.github.io/azure-sdk/general_azurecore.html#telemetry-policy
|
|
320
|
+
*/
|
|
316
321
|
export function buildUserAgentOptions(
|
|
317
322
|
context: StatementedNode,
|
|
318
323
|
emitterOptions: ModularEmitterOptions,
|
|
319
|
-
sdkUserAgentPrefix: string,
|
|
320
324
|
): string {
|
|
321
325
|
const userAgentStatements = [];
|
|
322
326
|
const prefixFromOptions = "const prefixFromOptions = options?.userAgentOptions?.userAgentPrefix;";
|
|
@@ -329,21 +333,20 @@ export function buildUserAgentOptions(
|
|
|
329
333
|
const packageVersion = emitterOptions.options.packageDetails?.version ?? "";
|
|
330
334
|
|
|
331
335
|
const userAgentInfoStatement =
|
|
332
|
-
packageVersion && clientPackageName
|
|
336
|
+
packageVersion && clientPackageName
|
|
333
337
|
? "const userAgentInfo = `azsdk-js-" + clientPackageName + "/" + packageVersion + "`;"
|
|
334
338
|
: "";
|
|
335
339
|
|
|
336
|
-
if (userAgentInfoStatement) {
|
|
337
|
-
|
|
340
|
+
if (!userAgentInfoStatement) {
|
|
341
|
+
// Without package name/version we cannot build a meaningful telemetry token,
|
|
342
|
+
// so we leave the user agent untouched (the caller's userAgentOptions still flow
|
|
343
|
+
// through `...options`) and let core-rest-pipeline defaults apply.
|
|
344
|
+
return "";
|
|
338
345
|
}
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
"` : `" +
|
|
344
|
-
`${sdkUserAgentPrefix}` +
|
|
345
|
-
`${userAgentInfoStatement ? " ${userAgentInfo}`" : "`"}`
|
|
346
|
-
};`;
|
|
346
|
+
|
|
347
|
+
userAgentStatements.push(userAgentInfoStatement);
|
|
348
|
+
const userAgentPrefix =
|
|
349
|
+
"const userAgentPrefix = prefixFromOptions ? `${prefixFromOptions} ${userAgentInfo}` : `${userAgentInfo}`;";
|
|
347
350
|
userAgentStatements.push(userAgentPrefix);
|
|
348
351
|
|
|
349
352
|
context.addStatements(userAgentStatements.join("\n"));
|
|
@@ -12,10 +12,10 @@ import { joinPaths } from "@typespec/compiler";
|
|
|
12
12
|
import { SourceFile } from "ts-morph";
|
|
13
13
|
import { useContext } from "../../context-manager.js";
|
|
14
14
|
import { resolveReference } from "../../framework/reference.js";
|
|
15
|
-
import {
|
|
16
|
-
import { getSubscriptionId } from "../../transform/transfrom-rlc-options.js";
|
|
15
|
+
import { getSubscriptionId } from "../../transform/transform-client-options.js";
|
|
17
16
|
import { hasKeyCredential, hasTokenCredential } from "../../utils/credential-utils.js";
|
|
18
17
|
import { SdkContext } from "../../utils/interfaces.js";
|
|
18
|
+
import { NameType, normalizeName } from "../../utils/name-utils.js";
|
|
19
19
|
import { getMethodHierarchiesMap, ServiceOperation } from "../../utils/operation-util.js";
|
|
20
20
|
import { AzureIdentityDependencies, AzureTestDependencies } from "../external-dependencies.js";
|
|
21
21
|
import { getClientParametersDeclaration } from "./client-helpers.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SdkClientType, SdkServiceOperation } from "@azure-tools/typespec-client-generator-core";
|
|
2
|
-
import { NameType, normalizeName, ReservedModelNames } from "../../rlc-common/index.js";
|
|
3
2
|
import { SdkContext } from "../../utils/interfaces.js";
|
|
3
|
+
import { NameType, normalizeName, ReservedModelNames } from "../../utils/name-utils.js";
|
|
4
4
|
import { ServiceOperation } from "../../utils/operation-util.js";
|
|
5
5
|
|
|
6
6
|
export function getClientName(client: SdkClientType<SdkServiceOperation>): string {
|
|
@@ -21,7 +21,7 @@ export function getOperationName(
|
|
|
21
21
|
dpgContext?: SdkContext,
|
|
22
22
|
): GuardedName {
|
|
23
23
|
const norm = normalizeName(operation.name, NameType.Method, true);
|
|
24
|
-
const isDataplane = dpgContext !== undefined && !dpgContext.
|
|
24
|
+
const isDataplane = dpgContext !== undefined && !dpgContext.emitterOptions?.azureArm;
|
|
25
25
|
if (isReservedName(operation.name, NameType.Method) && isDataplane) {
|
|
26
26
|
return {
|
|
27
27
|
name: norm,
|