@azure-tools/typespec-ts 0.11.0
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/.eslintrc.json +23 -0
- package/.prettierignore +1 -0
- package/.prettierrc +7 -0
- package/.rush/temp/package-deps_build.json +303 -0
- package/.rush/temp/shrinkwrap-deps.json +469 -0
- package/CHANGELOG.md +65 -0
- package/CONTRIBUTING.md +134 -0
- package/README.md +150 -0
- package/dist/src/emitUtil.d.ts +6 -0
- package/dist/src/emitUtil.d.ts.map +1 -0
- package/dist/src/emitUtil.js +45 -0
- package/dist/src/emitUtil.js.map +1 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +59 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/lib.d.ts +159 -0
- package/dist/src/lib.d.ts.map +1 -0
- package/dist/src/lib.js +189 -0
- package/dist/src/lib.js.map +1 -0
- package/dist/src/modelUtils.d.ts +12 -0
- package/dist/src/modelUtils.d.ts.map +1 -0
- package/dist/src/modelUtils.js +812 -0
- package/dist/src/modelUtils.js.map +1 -0
- package/dist/src/operationUtil.d.ts +16 -0
- package/dist/src/operationUtil.d.ts.map +1 -0
- package/dist/src/operationUtil.js +142 -0
- package/dist/src/operationUtil.js.map +1 -0
- package/dist/src/transform/transform.d.ts +8 -0
- package/dist/src/transform/transform.d.ts.map +1 -0
- package/dist/src/transform/transform.js +131 -0
- package/dist/src/transform/transform.js.map +1 -0
- package/dist/src/transform/transformAnnotationDetails.d.ts +6 -0
- package/dist/src/transform/transformAnnotationDetails.d.ts.map +1 -0
- package/dist/src/transform/transformAnnotationDetails.js +188 -0
- package/dist/src/transform/transformAnnotationDetails.js.map +1 -0
- package/dist/src/transform/transformApiVersionParam.d.ts +5 -0
- package/dist/src/transform/transformApiVersionParam.d.ts.map +1 -0
- package/dist/src/transform/transformApiVersionParam.js +76 -0
- package/dist/src/transform/transformApiVersionParam.js.map +1 -0
- package/dist/src/transform/transformParameters.d.ts +14 -0
- package/dist/src/transform/transformParameters.d.ts.map +1 -0
- package/dist/src/transform/transformParameters.js +315 -0
- package/dist/src/transform/transformParameters.js.map +1 -0
- package/dist/src/transform/transformPaths.d.ts +10 -0
- package/dist/src/transform/transformPaths.d.ts.map +1 -0
- package/dist/src/transform/transformPaths.js +124 -0
- package/dist/src/transform/transformPaths.js.map +1 -0
- package/dist/src/transform/transformResponses.d.ts +5 -0
- package/dist/src/transform/transformResponses.d.ts.map +1 -0
- package/dist/src/transform/transformResponses.js +136 -0
- package/dist/src/transform/transformResponses.js.map +1 -0
- package/dist/src/transform/transformSchemas.d.ts +4 -0
- package/dist/src/transform/transformSchemas.d.ts.map +1 -0
- package/dist/src/transform/transformSchemas.js +175 -0
- package/dist/src/transform/transformSchemas.js.map +1 -0
- package/dist/src/transform/transfromRLCOptions.d.ts +10 -0
- package/dist/src/transform/transfromRLCOptions.d.ts.map +1 -0
- package/dist/src/transform/transfromRLCOptions.js +156 -0
- package/dist/src/transform/transfromRLCOptions.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +73 -0
- package/src/emitUtil.ts +63 -0
- package/src/index.ts +106 -0
- package/src/lib.ts +207 -0
- package/src/modelUtils.ts +961 -0
- package/src/operationUtil.ts +203 -0
- package/src/transform/transform.ts +224 -0
- package/src/transform/transformAnnotationDetails.ts +231 -0
- package/src/transform/transformApiVersionParam.ts +104 -0
- package/src/transform/transformParameters.ts +480 -0
- package/src/transform/transformPaths.ts +187 -0
- package/src/transform/transformResponses.ts +190 -0
- package/src/transform/transformSchemas.ts +209 -0
- package/src/transform/transfromRLCOptions.ts +202 -0
- package/test/commands/cadl-ranch-list.ts +83 -0
- package/test/commands/check-clean-tree.ts +55 -0
- package/test/commands/childProcessOnExit.ts +16 -0
- package/test/commands/gen-cadl-ranch.ts +21 -0
- package/test/commands/run.ts +41 -0
- package/test/integration/arrayItemTypes.spec.ts +93 -0
- package/test/integration/authApiKey.spec.ts +38 -0
- package/test/integration/authOauth2.spec.ts +65 -0
- package/test/integration/authUnion.spec.ts +72 -0
- package/test/integration/dictionary.spec.ts +102 -0
- package/test/integration/extensibleEnums.spec.ts +61 -0
- package/test/integration/fixedEnums.spec.ts +52 -0
- package/test/integration/generated/arrays/itemTypes/src/arrayItemTypesClient.ts +31 -0
- package/test/integration/generated/arrays/itemTypes/src/clientDefinitions.ts +150 -0
- package/test/integration/generated/arrays/itemTypes/src/index.ts +13 -0
- package/test/integration/generated/arrays/itemTypes/src/models.ts +9 -0
- package/test/integration/generated/arrays/itemTypes/src/outputModels.ts +9 -0
- package/test/integration/generated/arrays/itemTypes/src/parameters.ts +78 -0
- package/test/integration/generated/arrays/itemTypes/src/responses.ts +104 -0
- package/test/integration/generated/arrays/itemTypes/tspconfig.yaml +12 -0
- package/test/integration/generated/authentication/apiKey/.eslintrc.json +11 -0
- package/test/integration/generated/authentication/apiKey/README.md +56 -0
- package/test/integration/generated/authentication/apiKey/api-extractor.json +18 -0
- package/test/integration/generated/authentication/apiKey/karma.conf.js +133 -0
- package/test/integration/generated/authentication/apiKey/package.json +103 -0
- package/test/integration/generated/authentication/apiKey/rollup.config.js +118 -0
- package/test/integration/generated/authentication/apiKey/src/authApiKeyClient.ts +41 -0
- package/test/integration/generated/authentication/apiKey/src/clientDefinitions.ts +33 -0
- package/test/integration/generated/authentication/apiKey/src/index.ts +12 -0
- package/test/integration/generated/authentication/apiKey/src/outputModels.ts +6 -0
- package/test/integration/generated/authentication/apiKey/src/parameters.ts +7 -0
- package/test/integration/generated/authentication/apiKey/src/responses.ts +21 -0
- package/test/integration/generated/authentication/apiKey/test/public/sampleTest.spec.ts +23 -0
- package/test/integration/generated/authentication/apiKey/test/public/utils/env.browser.ts +2 -0
- package/test/integration/generated/authentication/apiKey/test/public/utils/env.ts +6 -0
- package/test/integration/generated/authentication/apiKey/test/public/utils/recordedClient.ts +29 -0
- package/test/integration/generated/authentication/apiKey/tsconfig.json +25 -0
- package/test/integration/generated/authentication/apiKey/tspconfig.yaml +10 -0
- package/test/integration/generated/authentication/oauth2/karma.conf.js +133 -0
- package/test/integration/generated/authentication/oauth2/src/authOauth2Client.ts +41 -0
- package/test/integration/generated/authentication/oauth2/src/clientDefinitions.ts +33 -0
- package/test/integration/generated/authentication/oauth2/src/index.ts +12 -0
- package/test/integration/generated/authentication/oauth2/src/outputModels.ts +6 -0
- package/test/integration/generated/authentication/oauth2/src/parameters.ts +7 -0
- package/test/integration/generated/authentication/oauth2/src/responses.ts +21 -0
- package/test/integration/generated/authentication/oauth2/test/public/sampleTest.spec.ts +23 -0
- package/test/integration/generated/authentication/oauth2/test/public/utils/env.browser.ts +2 -0
- package/test/integration/generated/authentication/oauth2/test/public/utils/env.ts +6 -0
- package/test/integration/generated/authentication/oauth2/test/public/utils/recordedClient.ts +29 -0
- package/test/integration/generated/authentication/oauth2/tspconfig.yaml +12 -0
- package/test/integration/generated/authentication/union/karma.conf.js +133 -0
- package/test/integration/generated/authentication/union/src/authUnionClient.ts +42 -0
- package/test/integration/generated/authentication/union/src/clientDefinitions.ts +27 -0
- package/test/integration/generated/authentication/union/src/index.ts +11 -0
- package/test/integration/generated/authentication/union/src/parameters.ts +7 -0
- package/test/integration/generated/authentication/union/src/responses.ts +14 -0
- package/test/integration/generated/authentication/union/test/public/sampleTest.spec.ts +23 -0
- package/test/integration/generated/authentication/union/test/public/utils/env.browser.ts +2 -0
- package/test/integration/generated/authentication/union/test/public/utils/env.ts +6 -0
- package/test/integration/generated/authentication/union/test/public/utils/recordedClient.ts +29 -0
- package/test/integration/generated/authentication/union/tspconfig.yaml +12 -0
- package/test/integration/generated/dictionary/.eslintrc.json +11 -0
- package/test/integration/generated/dictionary/README.md +56 -0
- package/test/integration/generated/dictionary/api-extractor.json +18 -0
- package/test/integration/generated/dictionary/package.json +80 -0
- package/test/integration/generated/dictionary/rollup.config.js +118 -0
- package/test/integration/generated/dictionary/src/clientDefinitions.ts +165 -0
- package/test/integration/generated/dictionary/src/dictClient.ts +29 -0
- package/test/integration/generated/dictionary/src/index.ts +13 -0
- package/test/integration/generated/dictionary/src/models.ts +9 -0
- package/test/integration/generated/dictionary/src/outputModels.ts +9 -0
- package/test/integration/generated/dictionary/src/parameters.ts +86 -0
- package/test/integration/generated/dictionary/src/responses.ts +115 -0
- package/test/integration/generated/dictionary/tsconfig.json +25 -0
- package/test/integration/generated/dictionary/tspconfig.yaml +12 -0
- package/test/integration/generated/enums/extensible/.eslintrc.json +11 -0
- package/test/integration/generated/enums/extensible/README.md +56 -0
- package/test/integration/generated/enums/extensible/api-extractor.json +18 -0
- package/test/integration/generated/enums/extensible/package.json +80 -0
- package/test/integration/generated/enums/extensible/rollup.config.js +118 -0
- package/test/integration/generated/enums/extensible/src/clientDefinitions.ts +45 -0
- package/test/integration/generated/enums/extensible/src/enumsExtensible.ts +31 -0
- package/test/integration/generated/enums/extensible/src/index.ts +11 -0
- package/test/integration/generated/enums/extensible/src/parameters.ts +23 -0
- package/test/integration/generated/enums/extensible/src/responses.ts +26 -0
- package/test/integration/generated/enums/extensible/tsconfig.json +25 -0
- package/test/integration/generated/enums/extensible/tspconfig.yaml +11 -0
- package/test/integration/generated/enums/fixed/.eslintrc.json +11 -0
- package/test/integration/generated/enums/fixed/README.md +56 -0
- package/test/integration/generated/enums/fixed/api-extractor.json +18 -0
- package/test/integration/generated/enums/fixed/package.json +80 -0
- package/test/integration/generated/enums/fixed/rollup.config.js +118 -0
- package/test/integration/generated/enums/fixed/src/clientDefinitions.ts +43 -0
- package/test/integration/generated/enums/fixed/src/enumsFixed.ts +31 -0
- package/test/integration/generated/enums/fixed/src/index.ts +11 -0
- package/test/integration/generated/enums/fixed/src/parameters.ts +36 -0
- package/test/integration/generated/enums/fixed/src/responses.ts +27 -0
- package/test/integration/generated/enums/fixed/tsconfig.json +25 -0
- package/test/integration/generated/enums/fixed/tspconfig.yaml +11 -0
- package/test/integration/generated/hello/.eslintrc.json +11 -0
- package/test/integration/generated/hello/README.md +56 -0
- package/test/integration/generated/hello/api-extractor.json +18 -0
- package/test/integration/generated/hello/package.json +80 -0
- package/test/integration/generated/hello/rollup.config.js +118 -0
- package/test/integration/generated/hello/src/clientDefinitions.ts +19 -0
- package/test/integration/generated/hello/src/hello.ts +29 -0
- package/test/integration/generated/hello/src/index.ts +11 -0
- package/test/integration/generated/hello/src/parameters.ts +6 -0
- package/test/integration/generated/hello/src/responses.ts +10 -0
- package/test/integration/generated/hello/tsconfig.json +25 -0
- package/test/integration/generated/hello/tspconfig.yaml +11 -0
- package/test/integration/generated/lro/lroBasic/.eslintrc.json +11 -0
- package/test/integration/generated/lro/lroBasic/README.md +56 -0
- package/test/integration/generated/lro/lroBasic/api-extractor.json +18 -0
- package/test/integration/generated/lro/lroBasic/package.json +82 -0
- package/test/integration/generated/lro/lroBasic/rollup.config.js +118 -0
- package/test/integration/generated/lro/lroBasic/src/azureLro.ts +31 -0
- package/test/integration/generated/lro/lroBasic/src/clientDefinitions.ts +37 -0
- package/test/integration/generated/lro/lroBasic/src/index.ts +12 -0
- package/test/integration/generated/lro/lroBasic/src/parameters.ts +8 -0
- package/test/integration/generated/lro/lroBasic/src/pollingHelper.ts +75 -0
- package/test/integration/generated/lro/lroBasic/src/responses.ts +22 -0
- package/test/integration/generated/lro/lroBasic/tsconfig.json +25 -0
- package/test/integration/generated/lro/lroBasic/tspconfig.yaml +11 -0
- package/test/integration/generated/models/inheritance/.eslintrc.json +11 -0
- package/test/integration/generated/models/inheritance/README.md +56 -0
- package/test/integration/generated/models/inheritance/api-extractor.json +18 -0
- package/test/integration/generated/models/inheritance/package.json +80 -0
- package/test/integration/generated/models/inheritance/rollup.config.js +118 -0
- package/test/integration/generated/models/inheritance/src/clientDefinitions.ts +79 -0
- package/test/integration/generated/models/inheritance/src/index.ts +13 -0
- package/test/integration/generated/models/inheritance/src/models.ts +52 -0
- package/test/integration/generated/models/inheritance/src/modelsInheritance.ts +31 -0
- package/test/integration/generated/models/inheritance/src/outputModels.ts +52 -0
- package/test/integration/generated/models/inheritance/src/parameters.ts +35 -0
- package/test/integration/generated/models/inheritance/src/responses.ts +56 -0
- package/test/integration/generated/models/inheritance/tsconfig.json +25 -0
- package/test/integration/generated/models/inheritance/tspconfig.yaml +11 -0
- package/test/integration/generated/models/propertyOptional/.eslintrc.json +11 -0
- package/test/integration/generated/models/propertyOptional/README.md +56 -0
- package/test/integration/generated/models/propertyOptional/api-extractor.json +18 -0
- package/test/integration/generated/models/propertyOptional/package.json +80 -0
- package/test/integration/generated/models/propertyOptional/rollup.config.js +118 -0
- package/test/integration/generated/models/propertyOptional/src/clientDefinitions.ts +263 -0
- package/test/integration/generated/models/propertyOptional/src/index.ts +13 -0
- package/test/integration/generated/models/propertyOptional/src/models.ts +46 -0
- package/test/integration/generated/models/propertyOptional/src/modelsPropertyOptional.ts +31 -0
- package/test/integration/generated/models/propertyOptional/src/outputModels.ts +46 -0
- package/test/integration/generated/models/propertyOptional/src/parameters.ts +124 -0
- package/test/integration/generated/models/propertyOptional/src/responses.ts +169 -0
- package/test/integration/generated/models/propertyOptional/tsconfig.json +25 -0
- package/test/integration/generated/models/propertyOptional/tspconfig.yaml +11 -0
- package/test/integration/generated/models/propertyTypes/.eslintrc.json +11 -0
- package/test/integration/generated/models/propertyTypes/README.md +56 -0
- package/test/integration/generated/models/propertyTypes/api-extractor.json +18 -0
- package/test/integration/generated/models/propertyTypes/package.json +80 -0
- package/test/integration/generated/models/propertyTypes/rollup.config.js +118 -0
- package/test/integration/generated/models/propertyTypes/src/clientDefinitions.ts +234 -0
- package/test/integration/generated/models/propertyTypes/src/index.ts +13 -0
- package/test/integration/generated/models/propertyTypes/src/models.ts +99 -0
- package/test/integration/generated/models/propertyTypes/src/modelsPropertyTypes.ts +31 -0
- package/test/integration/generated/models/propertyTypes/src/outputModels.ts +99 -0
- package/test/integration/generated/models/propertyTypes/src/parameters.ts +147 -0
- package/test/integration/generated/models/propertyTypes/src/responses.ts +186 -0
- package/test/integration/generated/models/propertyTypes/tsconfig.json +25 -0
- package/test/integration/generated/models/propertyTypes/tspconfig.yaml +11 -0
- package/test/integration/generated/models/usage/.eslintrc.json +11 -0
- package/test/integration/generated/models/usage/README.md +56 -0
- package/test/integration/generated/models/usage/api-extractor.json +18 -0
- package/test/integration/generated/models/usage/package.json +80 -0
- package/test/integration/generated/models/usage/rollup.config.js +118 -0
- package/test/integration/generated/models/usage/src/clientDefinitions.ts +41 -0
- package/test/integration/generated/models/usage/src/index.ts +13 -0
- package/test/integration/generated/models/usage/src/models.ts +12 -0
- package/test/integration/generated/models/usage/src/modelsUsage.ts +31 -0
- package/test/integration/generated/models/usage/src/outputModels.ts +12 -0
- package/test/integration/generated/models/usage/src/parameters.ts +19 -0
- package/test/integration/generated/models/usage/src/responses.ts +22 -0
- package/test/integration/generated/models/usage/tsconfig.json +25 -0
- package/test/integration/generated/models/usage/tspconfig.yaml +11 -0
- package/test/integration/generated/models/visibility/.eslintrc.json +11 -0
- package/test/integration/generated/models/visibility/README.md +56 -0
- package/test/integration/generated/models/visibility/api-extractor.json +18 -0
- package/test/integration/generated/models/visibility/package.json +80 -0
- package/test/integration/generated/models/visibility/rollup.config.js +118 -0
- package/test/integration/generated/models/visibility/src/clientDefinitions.ts +40 -0
- package/test/integration/generated/models/visibility/src/index.ts +13 -0
- package/test/integration/generated/models/visibility/src/models.ts +14 -0
- package/test/integration/generated/models/visibility/src/modelsVisibilityAutomatic.ts +31 -0
- package/test/integration/generated/models/visibility/src/outputModels.ts +16 -0
- package/test/integration/generated/models/visibility/src/parameters.ts +41 -0
- package/test/integration/generated/models/visibility/src/responses.ts +36 -0
- package/test/integration/generated/models/visibility/tsconfig.json +25 -0
- package/test/integration/generated/models/visibility/tspconfig.yaml +11 -0
- package/test/integration/generated/resiliency/devDriven/.eslintrc.json +11 -0
- package/test/integration/generated/resiliency/devDriven/README.md +56 -0
- package/test/integration/generated/resiliency/devDriven/api-extractor.json +18 -0
- package/test/integration/generated/resiliency/devDriven/package.json +81 -0
- package/test/integration/generated/resiliency/devDriven/rollup.config.js +118 -0
- package/test/integration/generated/resiliency/devDriven/src/clientDefinitions.ts +75 -0
- package/test/integration/generated/resiliency/devDriven/src/index.ts +15 -0
- package/test/integration/generated/resiliency/devDriven/src/isUnexpected.ts +117 -0
- package/test/integration/generated/resiliency/devDriven/src/models.ts +8 -0
- package/test/integration/generated/resiliency/devDriven/src/outputModels.ts +25 -0
- package/test/integration/generated/resiliency/devDriven/src/paginateHelper.ts +154 -0
- package/test/integration/generated/resiliency/devDriven/src/parameters.ts +17 -0
- package/test/integration/generated/resiliency/devDriven/src/resiliencyDevDriven.ts +31 -0
- package/test/integration/generated/resiliency/devDriven/src/responses.ts +62 -0
- package/test/integration/generated/resiliency/devDriven/tsconfig.json +25 -0
- package/test/integration/generated/resiliency/devDriven/tspconfig.yaml +11 -0
- package/test/integration/generated/resiliency/srvDriven1/.eslintrc.json +11 -0
- package/test/integration/generated/resiliency/srvDriven1/README.md +56 -0
- package/test/integration/generated/resiliency/srvDriven1/api-extractor.json +18 -0
- package/test/integration/generated/resiliency/srvDriven1/package.json +80 -0
- package/test/integration/generated/resiliency/srvDriven1/rollup.config.js +118 -0
- package/test/integration/generated/resiliency/srvDriven1/src/clientDefinitions.ts +70 -0
- package/test/integration/generated/resiliency/srvDriven1/src/index.ts +13 -0
- package/test/integration/generated/resiliency/srvDriven1/src/models.ts +6 -0
- package/test/integration/generated/resiliency/srvDriven1/src/outputModels.ts +6 -0
- package/test/integration/generated/resiliency/srvDriven1/src/parameters.ts +51 -0
- package/test/integration/generated/resiliency/srvDriven1/src/resiliencyServiceDriven1.ts +31 -0
- package/test/integration/generated/resiliency/srvDriven1/src/responses.ts +34 -0
- package/test/integration/generated/resiliency/srvDriven1/tsconfig.json +25 -0
- package/test/integration/generated/resiliency/srvDriven1/tspconfig.yaml +11 -0
- package/test/integration/generated/resiliency/srvDriven2/.eslintrc.json +11 -0
- package/test/integration/generated/resiliency/srvDriven2/README.md +56 -0
- package/test/integration/generated/resiliency/srvDriven2/api-extractor.json +18 -0
- package/test/integration/generated/resiliency/srvDriven2/package.json +80 -0
- package/test/integration/generated/resiliency/srvDriven2/rollup.config.js +118 -0
- package/test/integration/generated/resiliency/srvDriven2/src/clientDefinitions.ts +93 -0
- package/test/integration/generated/resiliency/srvDriven2/src/index.ts +13 -0
- package/test/integration/generated/resiliency/srvDriven2/src/models.ts +6 -0
- package/test/integration/generated/resiliency/srvDriven2/src/outputModels.ts +6 -0
- package/test/integration/generated/resiliency/srvDriven2/src/parameters.ts +68 -0
- package/test/integration/generated/resiliency/srvDriven2/src/resiliencyServiceDriven2.ts +31 -0
- package/test/integration/generated/resiliency/srvDriven2/src/responses.ts +45 -0
- package/test/integration/generated/resiliency/srvDriven2/tsconfig.json +25 -0
- package/test/integration/generated/resiliency/srvDriven2/tspconfig.yaml +11 -0
- package/test/integration/generated/specialWords/src/clientDefinitions.ts +61 -0
- package/test/integration/generated/specialWords/src/index.ts +13 -0
- package/test/integration/generated/specialWords/src/models.ts +17 -0
- package/test/integration/generated/specialWords/src/outputModels.ts +17 -0
- package/test/integration/generated/specialWords/src/parameters.ts +37 -0
- package/test/integration/generated/specialWords/src/responses.ts +31 -0
- package/test/integration/generated/specialWords/src/specialWordsClient.ts +31 -0
- package/test/integration/generated/specialWords/tspconfig.yaml +11 -0
- package/test/integration/generated/unions/src/clientDefinitions.ts +53 -0
- package/test/integration/generated/unions/src/index.ts +12 -0
- package/test/integration/generated/unions/src/models.ts +27 -0
- package/test/integration/generated/unions/src/parameters.ts +34 -0
- package/test/integration/generated/unions/src/responses.ts +24 -0
- package/test/integration/generated/unions/src/unionsClient.ts +31 -0
- package/test/integration/generated/unions/tspconfig.yaml +11 -0
- package/test/integration/helloWorld.spec.ts +20 -0
- package/test/integration/lroBasic.spec.ts +25 -0
- package/test/integration/modelInheritance.spec.ts +192 -0
- package/test/integration/modelPropertyOptional.spec.ts +362 -0
- package/test/integration/modelPropertyType.spec.ts +119 -0
- package/test/integration/modelUsage.spec.ts +47 -0
- package/test/integration/resiliencyDpgCustomization.spec.ts +52 -0
- package/test/integration/specialWords.spec.ts +73 -0
- package/test/integration/unions.spec.ts +69 -0
- package/test/tsconfig.json +4 -0
- package/test/unit/azureCoreOperationsGenerator.spec.ts +71 -0
- package/test/unit/clientDefinitionGenerator.spec.ts +73 -0
- package/test/unit/clientFactoryGenerator.spec.ts +507 -0
- package/test/unit/docsGenerator.spec.ts +201 -0
- package/test/unit/modelsGenerator.spec.ts +1319 -0
- package/test/unit/parametersGenerator.spec.ts +561 -0
- package/test/unit/responsesGenerator.spec.ts +462 -0
- package/test/unit/spreadAndAlias.spec.ts +200 -0
- package/test/unit/util/emitUtil.ts +156 -0
- package/test/unit/util/testUtil.ts +83 -0
- package/test/util/customBearerTokenTestingPolicy.ts +78 -0
- package/test/util/matrix.ts +48 -0
- package/tsconfig.json +36 -0
- package/tsconfig.test.json +7 -0
- package/typespec-ts.build.log +2 -0
|
@@ -0,0 +1,561 @@
|
|
|
1
|
+
import { assert } from "chai";
|
|
2
|
+
import { emitParameterFromCadl } from "./util/emitUtil.js";
|
|
3
|
+
import { assertEqualContent } from "./util/testUtil.js";
|
|
4
|
+
|
|
5
|
+
describe("Parameters.ts", () => {
|
|
6
|
+
describe("handle query apiVersion", () => {
|
|
7
|
+
it("should't generate apiVersion if there's a client level apiVersion", async () => {
|
|
8
|
+
const parameters = await emitParameterFromCadl(
|
|
9
|
+
`
|
|
10
|
+
model ApiVersionParameter {
|
|
11
|
+
@query
|
|
12
|
+
"api-version": string;
|
|
13
|
+
}
|
|
14
|
+
op test(...ApiVersionParameter): string;
|
|
15
|
+
`
|
|
16
|
+
);
|
|
17
|
+
assert.ok(parameters);
|
|
18
|
+
assertEqualContent(
|
|
19
|
+
parameters?.content!,
|
|
20
|
+
`
|
|
21
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
22
|
+
|
|
23
|
+
export type TestParameters = RequestParameters;
|
|
24
|
+
`
|
|
25
|
+
);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it("should generate apiVersion if there's no client level apiVersion", async () => {
|
|
29
|
+
const parameters = await emitParameterFromCadl(
|
|
30
|
+
`
|
|
31
|
+
model ApiVersionParameter {
|
|
32
|
+
@query
|
|
33
|
+
"api-version": string;
|
|
34
|
+
}
|
|
35
|
+
op test(...ApiVersionParameter): string;
|
|
36
|
+
`,
|
|
37
|
+
false,
|
|
38
|
+
true
|
|
39
|
+
);
|
|
40
|
+
assert.ok(parameters);
|
|
41
|
+
assertEqualContent(
|
|
42
|
+
parameters?.content!,
|
|
43
|
+
`
|
|
44
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
45
|
+
|
|
46
|
+
export interface TestQueryParamProperties {
|
|
47
|
+
"api-version": string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface TestQueryParam {
|
|
51
|
+
queryParameters: TestQueryParamProperties;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export type TestParameters = TestQueryParam & RequestParameters;
|
|
55
|
+
`
|
|
56
|
+
);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
describe("query parameters generation", () => {
|
|
61
|
+
it("should generate user-custom-query ", async () => {
|
|
62
|
+
const parameters = await emitParameterFromCadl(
|
|
63
|
+
`
|
|
64
|
+
model CustomParameter {
|
|
65
|
+
@query
|
|
66
|
+
"user-custom-query": string;
|
|
67
|
+
}
|
|
68
|
+
op test(...CustomParameter): string;
|
|
69
|
+
`
|
|
70
|
+
);
|
|
71
|
+
assert.ok(parameters);
|
|
72
|
+
assertEqualContent(
|
|
73
|
+
parameters?.content!,
|
|
74
|
+
`
|
|
75
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
76
|
+
|
|
77
|
+
export interface TestQueryParamProperties {
|
|
78
|
+
"user-custom-query": string;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface TestQueryParam {
|
|
82
|
+
queryParameters: TestQueryParamProperties;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export type TestParameters = TestQueryParam & RequestParameters;
|
|
86
|
+
`
|
|
87
|
+
);
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
describe("binary request generation", () => {
|
|
92
|
+
it("bytes request with application/json will be treated as string", async () => {
|
|
93
|
+
const parameters = await emitParameterFromCadl(
|
|
94
|
+
`
|
|
95
|
+
@post op read(@body body: bytes): {};
|
|
96
|
+
`
|
|
97
|
+
);
|
|
98
|
+
assert.ok(parameters);
|
|
99
|
+
assertEqualContent(
|
|
100
|
+
parameters?.content!,
|
|
101
|
+
`import { RequestParameters } from "@azure-rest/core-client";
|
|
102
|
+
|
|
103
|
+
export interface ReadBodyParam {
|
|
104
|
+
body: string;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
108
|
+
`
|
|
109
|
+
);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it("bytes request should respect @header contentType and use binary format when not json or text", async () => {
|
|
113
|
+
const parameters = await emitParameterFromCadl(
|
|
114
|
+
`
|
|
115
|
+
@post op read(@header contentType: "image/png", @body body: bytes): {};
|
|
116
|
+
`
|
|
117
|
+
);
|
|
118
|
+
assert.ok(parameters);
|
|
119
|
+
assertEqualContent(
|
|
120
|
+
parameters?.content!,
|
|
121
|
+
`
|
|
122
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
123
|
+
|
|
124
|
+
export interface ReadBodyParam {
|
|
125
|
+
/** Value may contain any sequence of octets */
|
|
126
|
+
body:
|
|
127
|
+
| string
|
|
128
|
+
| Uint8Array
|
|
129
|
+
| ReadableStream<Uint8Array>
|
|
130
|
+
| NodeJS.ReadableStream;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export interface ReadMediaTypesParam {
|
|
134
|
+
contentType: "image/png";
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export type ReadParameters = ReadMediaTypesParam &
|
|
138
|
+
ReadBodyParam &
|
|
139
|
+
RequestParameters;
|
|
140
|
+
`
|
|
141
|
+
);
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
// TODO: we need more discussions about current behavior
|
|
145
|
+
// issue tracked https://github.com/Azure/autorest.typescript/issues/1486
|
|
146
|
+
it("multiple contentTypes defined @header", async () => {
|
|
147
|
+
const parameters = await emitParameterFromCadl(
|
|
148
|
+
`
|
|
149
|
+
@post op read(@header contentType: "image/png" | "application/json", @body body: bytes): {};
|
|
150
|
+
`
|
|
151
|
+
);
|
|
152
|
+
assert.ok(parameters);
|
|
153
|
+
assertEqualContent(
|
|
154
|
+
parameters?.content!,
|
|
155
|
+
`
|
|
156
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
157
|
+
|
|
158
|
+
export interface ReadBodyParam {
|
|
159
|
+
/** Value may contain any sequence of octets */
|
|
160
|
+
body:
|
|
161
|
+
| string
|
|
162
|
+
| Uint8Array
|
|
163
|
+
| ReadableStream<Uint8Array>
|
|
164
|
+
| NodeJS.ReadableStream;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export interface ReadMediaTypesParam {
|
|
168
|
+
contentType: "image/png" | "application/json";
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
export type ReadParameters = ReadMediaTypesParam &
|
|
172
|
+
ReadBodyParam &
|
|
173
|
+
RequestParameters;
|
|
174
|
+
`
|
|
175
|
+
);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
it("contentTypes has binary data", async () => {
|
|
179
|
+
const parameters = await emitParameterFromCadl(
|
|
180
|
+
`
|
|
181
|
+
@route("/uploadFileViaBody")
|
|
182
|
+
@post op uploadFileViaBody(
|
|
183
|
+
@header contentType: "application/octet-stream",
|
|
184
|
+
@body body: bytes
|
|
185
|
+
): void;
|
|
186
|
+
`
|
|
187
|
+
);
|
|
188
|
+
assert.ok(parameters);
|
|
189
|
+
assertEqualContent(
|
|
190
|
+
parameters?.content!,
|
|
191
|
+
`
|
|
192
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
193
|
+
|
|
194
|
+
export interface UploadFileViaBodyBodyParam {
|
|
195
|
+
/** Value may contain any sequence of octets */
|
|
196
|
+
body:
|
|
197
|
+
| string
|
|
198
|
+
| Uint8Array
|
|
199
|
+
| ReadableStream<Uint8Array>
|
|
200
|
+
| NodeJS.ReadableStream;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export interface UploadFileViaBodyMediaTypesParam {
|
|
204
|
+
contentType: "application/octet-stream";
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export type UploadFileViaBodyParameters = UploadFileViaBodyMediaTypesParam &
|
|
208
|
+
UploadFileViaBodyBodyParam &
|
|
209
|
+
RequestParameters;
|
|
210
|
+
`
|
|
211
|
+
);
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
it("contentTypes has multiple form data", async () => {
|
|
215
|
+
const parameters = await emitParameterFromCadl(
|
|
216
|
+
`
|
|
217
|
+
@route("/uploadFile")
|
|
218
|
+
@post op uploadFile(
|
|
219
|
+
@header contentType: "multipart/form-data",
|
|
220
|
+
@body body: {
|
|
221
|
+
name: string;
|
|
222
|
+
file: bytes;
|
|
223
|
+
}
|
|
224
|
+
): void;
|
|
225
|
+
`
|
|
226
|
+
);
|
|
227
|
+
assert.ok(parameters);
|
|
228
|
+
assertEqualContent(
|
|
229
|
+
parameters?.content!,
|
|
230
|
+
`
|
|
231
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
232
|
+
|
|
233
|
+
export interface UploadFileBodyParam {
|
|
234
|
+
body: UploadFileFormBody;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export interface UploadFileFormBody {
|
|
238
|
+
name: string;
|
|
239
|
+
file:
|
|
240
|
+
| string
|
|
241
|
+
| Uint8Array
|
|
242
|
+
| ReadableStream<Uint8Array>
|
|
243
|
+
| NodeJS.ReadableStream;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
export interface UploadFileMediaTypesParam {
|
|
247
|
+
contentType: "multipart/form-data";
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
export type UploadFileParameters = UploadFileMediaTypesParam &
|
|
251
|
+
UploadFileBodyParam &
|
|
252
|
+
RequestParameters;
|
|
253
|
+
`
|
|
254
|
+
);
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
it("contentTypes has array data defined in form body", async () => {
|
|
258
|
+
const parameters = await emitParameterFromCadl(
|
|
259
|
+
`
|
|
260
|
+
@route("/uploadFiles")
|
|
261
|
+
@post op uploadFiles(
|
|
262
|
+
@header contentType: "multipart/form-data",
|
|
263
|
+
@body body: {
|
|
264
|
+
files: bytes[];
|
|
265
|
+
}
|
|
266
|
+
): void;
|
|
267
|
+
`
|
|
268
|
+
);
|
|
269
|
+
assert.ok(parameters);
|
|
270
|
+
assertEqualContent(
|
|
271
|
+
parameters?.content!,
|
|
272
|
+
`
|
|
273
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
274
|
+
|
|
275
|
+
export interface UploadFilesBodyParam {
|
|
276
|
+
body: UploadFilesFormBody;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export interface UploadFilesFormBody {
|
|
280
|
+
files: Array<
|
|
281
|
+
string | Uint8Array | ReadableStream<Uint8Array> | NodeJS.ReadableStream
|
|
282
|
+
>;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export interface UploadFilesMediaTypesParam {
|
|
286
|
+
contentType: "multipart/form-data";
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
export type UploadFilesParameters = UploadFilesMediaTypesParam &
|
|
290
|
+
UploadFilesBodyParam &
|
|
291
|
+
RequestParameters;
|
|
292
|
+
`
|
|
293
|
+
);
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
describe("Array in body generation", () => {
|
|
298
|
+
it("unknown array request generation", async () => {
|
|
299
|
+
const parameters = await emitParameterFromCadl(`
|
|
300
|
+
@post op read(@body body: unknown[]): void;
|
|
301
|
+
`);
|
|
302
|
+
assert.ok(parameters);
|
|
303
|
+
assertEqualContent(
|
|
304
|
+
parameters?.content!,
|
|
305
|
+
`
|
|
306
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
307
|
+
|
|
308
|
+
export interface ReadBodyParam {
|
|
309
|
+
body:unknown[];
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
313
|
+
`
|
|
314
|
+
);
|
|
315
|
+
});
|
|
316
|
+
it("string array request generation", async () => {
|
|
317
|
+
const parameters = await emitParameterFromCadl(`
|
|
318
|
+
@post op read(@body body: string[]): void;
|
|
319
|
+
`);
|
|
320
|
+
assert.ok(parameters);
|
|
321
|
+
assertEqualContent(
|
|
322
|
+
parameters?.content!,
|
|
323
|
+
`
|
|
324
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
325
|
+
|
|
326
|
+
export interface ReadBodyParam {
|
|
327
|
+
body:string[];
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
331
|
+
`
|
|
332
|
+
);
|
|
333
|
+
});
|
|
334
|
+
|
|
335
|
+
it("int32 array request generation", async () => {
|
|
336
|
+
const parameters = await emitParameterFromCadl(`
|
|
337
|
+
@post op read(@body body: int32[]): void ;
|
|
338
|
+
`);
|
|
339
|
+
assert.ok(parameters);
|
|
340
|
+
assertEqualContent(
|
|
341
|
+
parameters?.content!,
|
|
342
|
+
`
|
|
343
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
344
|
+
|
|
345
|
+
export interface ReadBodyParam {
|
|
346
|
+
body:number[];
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
350
|
+
`
|
|
351
|
+
);
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
it("int64 array request generation", async () => {
|
|
355
|
+
const parameters = await emitParameterFromCadl(`
|
|
356
|
+
@post op read(@body body: int64[]): void ;
|
|
357
|
+
`);
|
|
358
|
+
assert.ok(parameters);
|
|
359
|
+
assertEqualContent(
|
|
360
|
+
parameters?.content!,
|
|
361
|
+
`
|
|
362
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
363
|
+
|
|
364
|
+
export interface ReadBodyParam {
|
|
365
|
+
body:number[];
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
369
|
+
`
|
|
370
|
+
);
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
it("float32 array request generation", async () => {
|
|
374
|
+
const parameters = await emitParameterFromCadl(`
|
|
375
|
+
@post op read(@body body: float32[]): void ;
|
|
376
|
+
`);
|
|
377
|
+
assert.ok(parameters);
|
|
378
|
+
assertEqualContent(
|
|
379
|
+
parameters?.content!,
|
|
380
|
+
`
|
|
381
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
382
|
+
|
|
383
|
+
export interface ReadBodyParam {
|
|
384
|
+
body:number[];
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
388
|
+
`
|
|
389
|
+
);
|
|
390
|
+
});
|
|
391
|
+
|
|
392
|
+
it("boolean array request generation", async () => {
|
|
393
|
+
const parameters = await emitParameterFromCadl(`
|
|
394
|
+
@post op read(@body body: boolean[]): void ;
|
|
395
|
+
`);
|
|
396
|
+
assert.ok(parameters);
|
|
397
|
+
assertEqualContent(
|
|
398
|
+
parameters?.content!,
|
|
399
|
+
`
|
|
400
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
401
|
+
|
|
402
|
+
export interface ReadBodyParam {
|
|
403
|
+
body:boolean[];
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
407
|
+
`
|
|
408
|
+
);
|
|
409
|
+
});
|
|
410
|
+
|
|
411
|
+
it("bytes array request generation", async () => {
|
|
412
|
+
const parameters = await emitParameterFromCadl(`
|
|
413
|
+
@post op read(@body body: bytes[]): void ;
|
|
414
|
+
`);
|
|
415
|
+
assert.ok(parameters);
|
|
416
|
+
assertEqualContent(
|
|
417
|
+
parameters?.content!,
|
|
418
|
+
`
|
|
419
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
420
|
+
|
|
421
|
+
export interface ReadBodyParam {
|
|
422
|
+
body:string[];
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
426
|
+
`
|
|
427
|
+
);
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
it("plainDate array request generation", async () => {
|
|
431
|
+
const parameters = await emitParameterFromCadl(`
|
|
432
|
+
@post op read(@body body: plainDate[]): void;
|
|
433
|
+
`);
|
|
434
|
+
assert.ok(parameters);
|
|
435
|
+
assertEqualContent(
|
|
436
|
+
parameters?.content!,
|
|
437
|
+
`
|
|
438
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
439
|
+
|
|
440
|
+
export interface ReadBodyParam {
|
|
441
|
+
body: Date[] | string[];
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
445
|
+
`
|
|
446
|
+
);
|
|
447
|
+
});
|
|
448
|
+
|
|
449
|
+
it("datetime array request generation", async () => {
|
|
450
|
+
const parameters = await emitParameterFromCadl(`
|
|
451
|
+
@post op read(@body body: zonedDateTime[]): void;
|
|
452
|
+
`);
|
|
453
|
+
assert.ok(parameters);
|
|
454
|
+
assertEqualContent(
|
|
455
|
+
parameters?.content!,
|
|
456
|
+
`
|
|
457
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
458
|
+
|
|
459
|
+
export interface ReadBodyParam {
|
|
460
|
+
body: Date[] | string[];
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
464
|
+
`
|
|
465
|
+
);
|
|
466
|
+
});
|
|
467
|
+
|
|
468
|
+
it("duration array request generation", async () => {
|
|
469
|
+
const parameters = await emitParameterFromCadl(`
|
|
470
|
+
@post op read(@body body: duration[]): void;
|
|
471
|
+
`);
|
|
472
|
+
assert.ok(parameters);
|
|
473
|
+
assertEqualContent(
|
|
474
|
+
parameters?.content!,
|
|
475
|
+
`
|
|
476
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
477
|
+
|
|
478
|
+
export interface ReadBodyParam {
|
|
479
|
+
body:string[];
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
483
|
+
`
|
|
484
|
+
);
|
|
485
|
+
});
|
|
486
|
+
|
|
487
|
+
it("SimpleModel array request generation", async () => {
|
|
488
|
+
const parameters = await emitParameterFromCadl(`
|
|
489
|
+
model SimpleModel {
|
|
490
|
+
prop1: string;
|
|
491
|
+
prop2: int32;
|
|
492
|
+
}
|
|
493
|
+
@post op read(@body body: SimpleModel[]): void;
|
|
494
|
+
`);
|
|
495
|
+
assert.ok(parameters);
|
|
496
|
+
assertEqualContent(
|
|
497
|
+
parameters?.content!,
|
|
498
|
+
`
|
|
499
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
500
|
+
import { SimpleModel } from "./models";
|
|
501
|
+
|
|
502
|
+
export interface ReadBodyParam {
|
|
503
|
+
body:Array<SimpleModel>;
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
507
|
+
`
|
|
508
|
+
);
|
|
509
|
+
});
|
|
510
|
+
|
|
511
|
+
it("InnerModel array request generation", async () => {
|
|
512
|
+
const parameters = await emitParameterFromCadl(`
|
|
513
|
+
model InnerModel {
|
|
514
|
+
property: string;
|
|
515
|
+
children?: InnerModel[];
|
|
516
|
+
}
|
|
517
|
+
@post op read(@body body: InnerModel[]): void;
|
|
518
|
+
`);
|
|
519
|
+
assert.ok(parameters);
|
|
520
|
+
assertEqualContent(
|
|
521
|
+
parameters?.content!,
|
|
522
|
+
`
|
|
523
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
524
|
+
import { InnerModel } from "./models";
|
|
525
|
+
|
|
526
|
+
export interface ReadBodyParam {
|
|
527
|
+
body:Array<InnerModel>;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
531
|
+
`
|
|
532
|
+
);
|
|
533
|
+
});
|
|
534
|
+
});
|
|
535
|
+
|
|
536
|
+
describe("Dictionary in body generation", () => {
|
|
537
|
+
it("Simple model dictionary request generation", async () => {
|
|
538
|
+
const parameters = await emitParameterFromCadl(`
|
|
539
|
+
model SimpleModel {
|
|
540
|
+
prop1: string;
|
|
541
|
+
prop2: int32;
|
|
542
|
+
}
|
|
543
|
+
@post op read(@body body: Record<SimpleModel>): SimpleModel;
|
|
544
|
+
`);
|
|
545
|
+
assert.ok(parameters);
|
|
546
|
+
assertEqualContent(
|
|
547
|
+
parameters?.content!,
|
|
548
|
+
`
|
|
549
|
+
import { RequestParameters } from "@azure-rest/core-client";
|
|
550
|
+
import { SimpleModel } from "./models";
|
|
551
|
+
|
|
552
|
+
export interface ReadBodyParam {
|
|
553
|
+
body: Record<string, SimpleModel>;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
export type ReadParameters = ReadBodyParam & RequestParameters;
|
|
557
|
+
`
|
|
558
|
+
);
|
|
559
|
+
});
|
|
560
|
+
});
|
|
561
|
+
});
|