@azure-tools/typespec-ts 0.11.0 → 0.12.0-alpha.20230501.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/.rush/temp/package-deps_build.json +265 -152
  2. package/.rush/temp/shrinkwrap-deps.json +58 -54
  3. package/CHANGELOG.md +4 -0
  4. package/CONTRIBUTING.md +5 -2
  5. package/README.md +3 -3
  6. package/dist/src/casingUtils.d.ts +4 -0
  7. package/dist/src/casingUtils.d.ts.map +1 -0
  8. package/dist/src/casingUtils.js +39 -0
  9. package/dist/src/casingUtils.js.map +1 -0
  10. package/dist/src/emitUtil.js +7 -1
  11. package/dist/src/emitUtil.js.map +1 -1
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +41 -9
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/lib.d.ts.map +1 -1
  16. package/dist/src/lib.js +2 -1
  17. package/dist/src/lib.js.map +1 -1
  18. package/dist/src/modelUtils.d.ts +22 -1
  19. package/dist/src/modelUtils.d.ts.map +1 -1
  20. package/dist/src/modelUtils.js +105 -13
  21. package/dist/src/modelUtils.js.map +1 -1
  22. package/dist/src/modular/buildApiIndex.d.ts +3 -0
  23. package/dist/src/modular/buildApiIndex.d.ts.map +1 -0
  24. package/dist/src/modular/buildApiIndex.js +12 -0
  25. package/dist/src/modular/buildApiIndex.js.map +1 -0
  26. package/dist/src/modular/buildClassicalClient.d.ts +4 -0
  27. package/dist/src/modular/buildClassicalClient.d.ts.map +1 -0
  28. package/dist/src/modular/buildClassicalClient.js +112 -0
  29. package/dist/src/modular/buildClassicalClient.js.map +1 -0
  30. package/dist/src/modular/buildClientContext.d.ts +7 -0
  31. package/dist/src/modular/buildClientContext.d.ts.map +1 -0
  32. package/dist/src/modular/buildClientContext.js +72 -0
  33. package/dist/src/modular/buildClientContext.js.map +1 -0
  34. package/dist/src/modular/buildCodeModel.d.ts +14 -0
  35. package/dist/src/modular/buildCodeModel.d.ts.map +1 -0
  36. package/dist/src/modular/buildCodeModel.js +1110 -0
  37. package/dist/src/modular/buildCodeModel.js.map +1 -0
  38. package/dist/src/modular/buildOperations.d.ts +13 -0
  39. package/dist/src/modular/buildOperations.d.ts.map +1 -0
  40. package/dist/src/modular/buildOperations.js +70 -0
  41. package/dist/src/modular/buildOperations.js.map +1 -0
  42. package/dist/src/modular/buildProjectFiles.d.ts +5 -0
  43. package/dist/src/modular/buildProjectFiles.d.ts.map +1 -0
  44. package/dist/src/modular/buildProjectFiles.js +182 -0
  45. package/dist/src/modular/buildProjectFiles.js.map +1 -0
  46. package/dist/src/modular/buildRootIndex.d.ts +4 -0
  47. package/dist/src/modular/buildRootIndex.d.ts.map +1 -0
  48. package/dist/src/modular/buildRootIndex.js +66 -0
  49. package/dist/src/modular/buildRootIndex.js.map +1 -0
  50. package/dist/src/modular/buildSharedTypes.d.ts +6 -0
  51. package/dist/src/modular/buildSharedTypes.d.ts.map +1 -0
  52. package/dist/src/modular/buildSharedTypes.js +33 -0
  53. package/dist/src/modular/buildSharedTypes.js.map +1 -0
  54. package/dist/src/modular/emitModels.d.ts +7 -0
  55. package/dist/src/modular/emitModels.d.ts.map +1 -0
  56. package/dist/src/modular/emitModels.js +63 -0
  57. package/dist/src/modular/emitModels.js.map +1 -0
  58. package/dist/src/modular/helpers/clientHelpers.d.ts +4 -0
  59. package/dist/src/modular/helpers/clientHelpers.d.ts.map +1 -0
  60. package/dist/src/modular/helpers/clientHelpers.js +31 -0
  61. package/dist/src/modular/helpers/clientHelpers.js.map +1 -0
  62. package/dist/src/modular/helpers/credentialHelpers.d.ts +7 -0
  63. package/dist/src/modular/helpers/credentialHelpers.d.ts.map +1 -0
  64. package/dist/src/modular/helpers/credentialHelpers.js +32 -0
  65. package/dist/src/modular/helpers/credentialHelpers.js.map +1 -0
  66. package/dist/src/modular/helpers/namingHelpers.d.ts +3 -0
  67. package/dist/src/modular/helpers/namingHelpers.d.ts.map +1 -0
  68. package/dist/src/modular/helpers/namingHelpers.js +4 -0
  69. package/dist/src/modular/helpers/namingHelpers.js.map +1 -0
  70. package/dist/src/modular/helpers/operationHelpers.d.ts +8 -0
  71. package/dist/src/modular/helpers/operationHelpers.d.ts.map +1 -0
  72. package/dist/src/modular/helpers/operationHelpers.js +274 -0
  73. package/dist/src/modular/helpers/operationHelpers.js.map +1 -0
  74. package/dist/src/modular/helpers/parameterHelpers.d.ts +3 -0
  75. package/dist/src/modular/helpers/parameterHelpers.d.ts.map +1 -0
  76. package/dist/src/modular/helpers/parameterHelpers.js +16 -0
  77. package/dist/src/modular/helpers/parameterHelpers.js.map +1 -0
  78. package/dist/src/modular/helpers/typeHelpers.d.ts +16 -0
  79. package/dist/src/modular/helpers/typeHelpers.d.ts.map +1 -0
  80. package/dist/src/modular/helpers/typeHelpers.js +92 -0
  81. package/dist/src/modular/helpers/typeHelpers.js.map +1 -0
  82. package/dist/src/modular/interfaces.d.ts +10 -0
  83. package/dist/src/modular/interfaces.d.ts.map +1 -0
  84. package/dist/src/modular/interfaces.js +2 -0
  85. package/dist/src/modular/interfaces.js.map +1 -0
  86. package/dist/src/modular/modularCodeModel.d.ts +121 -0
  87. package/dist/src/modular/modularCodeModel.d.ts.map +1 -0
  88. package/dist/src/modular/modularCodeModel.js +2 -0
  89. package/dist/src/modular/modularCodeModel.js.map +1 -0
  90. package/dist/src/operationUtil.d.ts +30 -4
  91. package/dist/src/operationUtil.d.ts.map +1 -1
  92. package/dist/src/operationUtil.js +77 -18
  93. package/dist/src/operationUtil.js.map +1 -1
  94. package/dist/src/transform/transform.d.ts +4 -6
  95. package/dist/src/transform/transform.d.ts.map +1 -1
  96. package/dist/src/transform/transform.js +17 -58
  97. package/dist/src/transform/transform.js.map +1 -1
  98. package/dist/src/transform/transformApiVersionInfo.d.ts +5 -0
  99. package/dist/src/transform/transformApiVersionInfo.d.ts.map +1 -0
  100. package/dist/src/transform/transformApiVersionInfo.js +64 -0
  101. package/dist/src/transform/transformApiVersionInfo.js.map +1 -0
  102. package/dist/src/transform/transformHelperFunctionDetails.d.ts +6 -0
  103. package/dist/src/transform/transformHelperFunctionDetails.d.ts.map +1 -0
  104. package/dist/src/transform/{transformAnnotationDetails.js → transformHelperFunctionDetails.js} +2 -2
  105. package/dist/src/transform/transformHelperFunctionDetails.js.map +1 -0
  106. package/dist/src/transform/transformParameters.d.ts +2 -2
  107. package/dist/src/transform/transformParameters.d.ts.map +1 -1
  108. package/dist/src/transform/transformParameters.js +20 -7
  109. package/dist/src/transform/transformParameters.js.map +1 -1
  110. package/dist/src/transform/transformPaths.d.ts +2 -2
  111. package/dist/src/transform/transformPaths.d.ts.map +1 -1
  112. package/dist/src/transform/transformPaths.js +15 -7
  113. package/dist/src/transform/transformPaths.js.map +1 -1
  114. package/dist/src/transform/transformResponses.d.ts +2 -2
  115. package/dist/src/transform/transformResponses.d.ts.map +1 -1
  116. package/dist/src/transform/transformResponses.js +23 -2
  117. package/dist/src/transform/transformResponses.js.map +1 -1
  118. package/dist/src/transform/transformSchemas.d.ts +2 -2
  119. package/dist/src/transform/transformSchemas.d.ts.map +1 -1
  120. package/dist/src/transform/transformSchemas.js +10 -22
  121. package/dist/src/transform/transformSchemas.js.map +1 -1
  122. package/dist/src/transform/transfromRLCOptions.d.ts +2 -2
  123. package/dist/src/transform/transfromRLCOptions.js +1 -1
  124. package/dist/src/transform/transfromRLCOptions.js.map +1 -1
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +27 -19
  127. package/src/casingUtils.ts +48 -0
  128. package/src/emitUtil.ts +9 -4
  129. package/src/index.ts +53 -10
  130. package/src/lib.ts +2 -1
  131. package/src/modelUtils.ts +137 -14
  132. package/src/modular/buildApiIndex.ts +13 -0
  133. package/src/modular/buildClassicalClient.ts +147 -0
  134. package/src/modular/buildClientContext.ts +104 -0
  135. package/src/modular/buildCodeModel.ts +1449 -0
  136. package/src/modular/buildOperations.ts +95 -0
  137. package/src/modular/buildProjectFiles.ts +219 -0
  138. package/src/modular/buildRootIndex.ts +94 -0
  139. package/src/modular/buildSharedTypes.ts +40 -0
  140. package/src/modular/emitModels.ts +72 -0
  141. package/src/modular/helpers/clientHelpers.ts +38 -0
  142. package/src/modular/helpers/credentialHelpers.ts +40 -0
  143. package/src/modular/helpers/namingHelpers.ts +5 -0
  144. package/src/modular/helpers/operationHelpers.ts +418 -0
  145. package/src/modular/helpers/parameterHelpers.ts +17 -0
  146. package/src/modular/helpers/typeHelpers.ts +106 -0
  147. package/src/modular/interfaces.ts +10 -0
  148. package/src/modular/modularCodeModel.ts +151 -0
  149. package/src/modular/static/karma.conf.cjs +120 -0
  150. package/src/modular/static/rollup.test.config.js +67 -0
  151. package/src/modular/static/scripts/renameOutput.mjs +17 -0
  152. package/src/operationUtil.ts +119 -31
  153. package/src/transform/transform.ts +33 -96
  154. package/src/transform/transformApiVersionInfo.ts +108 -0
  155. package/src/transform/{transformAnnotationDetails.ts → transformHelperFunctionDetails.ts} +11 -11
  156. package/src/transform/transformParameters.ts +30 -14
  157. package/src/transform/transformPaths.ts +29 -19
  158. package/src/transform/transformResponses.ts +50 -8
  159. package/src/transform/transformSchemas.ts +20 -28
  160. package/src/transform/transfromRLCOptions.ts +3 -3
  161. package/test/commands/cadl-ranch-list.ts +53 -20
  162. package/test/commands/gen-cadl-ranch.ts +6 -2
  163. package/test/commands/run.ts +3 -13
  164. package/test/integration/arrayItemTypes.spec.ts +6 -3
  165. package/test/integration/azurecore.spec.ts +130 -0
  166. package/test/integration/collectionFormat.spec.ts +118 -0
  167. package/test/integration/dictionary.spec.ts +6 -2
  168. package/test/integration/extensibleEnums.spec.ts +8 -8
  169. package/test/integration/fixedEnums.spec.ts +7 -7
  170. package/test/integration/generated/arrays/itemTypes/src/clientDefinitions.ts +33 -18
  171. package/test/integration/generated/arrays/itemTypes/src/parameters.ts +8 -0
  172. package/test/integration/generated/arrays/itemTypes/src/responses.ts +11 -0
  173. package/test/integration/generated/arrays/itemTypes/tspconfig.yaml +5 -2
  174. package/test/integration/generated/authentication/apiKey/package.json +2 -2
  175. package/test/integration/generated/authentication/apiKey/tspconfig.yaml +5 -2
  176. package/test/integration/generated/authentication/oauth2/tspconfig.yaml +5 -2
  177. package/test/integration/generated/authentication/union/tspconfig.yaml +5 -2
  178. package/test/integration/generated/{resiliency/devDriven → azure/core}/README.md +7 -7
  179. package/test/integration/generated/{lro/lroBasic → azure/core}/api-extractor.json +1 -1
  180. package/test/integration/generated/{resiliency/devDriven → azure/core}/package.json +6 -6
  181. package/test/integration/generated/azure/core/src/azureCoreClient.ts +31 -0
  182. package/test/integration/generated/azure/core/src/clientDefinitions.ts +108 -0
  183. package/test/integration/generated/{resiliency/devDriven → azure/core}/src/index.ts +4 -3
  184. package/test/integration/generated/azure/core/src/isUnexpected.ts +178 -0
  185. package/test/integration/generated/azure/core/src/models.ts +18 -0
  186. package/test/integration/generated/azure/core/src/outputModels.ts +32 -0
  187. package/test/integration/generated/{resiliency/devDriven → azure/core}/src/paginateHelper.ts +55 -5
  188. package/test/integration/generated/azure/core/src/parameters.ts +68 -0
  189. package/test/integration/generated/azure/core/src/responses.ts +158 -0
  190. package/test/integration/generated/azure/core/src/serializeHelper.ts +16 -0
  191. package/test/integration/generated/azure/core/tspconfig.yaml +15 -0
  192. package/test/integration/generated/azure/core-traits/README.md +56 -0
  193. package/test/integration/generated/azure/core-traits/api-extractor.json +18 -0
  194. package/test/integration/generated/azure/core-traits/package.json +80 -0
  195. package/test/integration/generated/azure/core-traits/src/azureCoreTraitsClient.ts +31 -0
  196. package/test/integration/generated/azure/core-traits/src/clientDefinitions.ts +22 -0
  197. package/test/integration/generated/azure/core-traits/src/index.ts +13 -0
  198. package/test/integration/generated/{resiliency/devDriven → azure/core-traits}/src/isUnexpected.ts +6 -26
  199. package/test/integration/generated/azure/core-traits/src/outputModels.ts +10 -0
  200. package/test/integration/generated/azure/core-traits/src/parameters.ts +26 -0
  201. package/test/integration/generated/azure/core-traits/src/responses.ts +32 -0
  202. package/test/integration/generated/azure/core-traits/tspconfig.yaml +15 -0
  203. package/test/integration/generated/dictionary/package.json +2 -2
  204. package/test/integration/generated/dictionary/src/clientDefinitions.ts +35 -20
  205. package/test/integration/generated/dictionary/src/parameters.ts +8 -0
  206. package/test/integration/generated/dictionary/src/responses.ts +11 -0
  207. package/test/integration/generated/dictionary/tspconfig.yaml +5 -2
  208. package/test/integration/generated/enums/extensible/README.md +3 -3
  209. package/test/integration/generated/enums/extensible/package.json +2 -2
  210. package/test/integration/generated/enums/extensible/src/clientDefinitions.ts +5 -5
  211. package/test/integration/generated/enums/extensible/src/index.ts +3 -3
  212. package/test/integration/generated/enums/extensible/src/{enumsExtensible.ts → typeEnumExtensible.ts} +4 -4
  213. package/test/integration/generated/enums/extensible/tspconfig.yaml +5 -2
  214. package/test/integration/generated/enums/fixed/README.md +3 -3
  215. package/test/integration/generated/enums/fixed/package.json +2 -2
  216. package/test/integration/generated/enums/fixed/src/clientDefinitions.ts +5 -5
  217. package/test/integration/generated/enums/fixed/src/index.ts +3 -3
  218. package/test/integration/generated/enums/fixed/src/{enumsFixed.ts → typeEnumFixed.ts} +4 -4
  219. package/test/integration/generated/enums/fixed/tspconfig.yaml +5 -2
  220. package/test/integration/generated/hello/package.json +2 -2
  221. package/test/integration/generated/hello/tspconfig.yaml +5 -2
  222. package/test/integration/generated/internal/src/clientDefinitions.ts +27 -0
  223. package/test/integration/generated/internal/src/index.ts +13 -0
  224. package/test/integration/generated/{lro/lroBasic/src/azureLro.ts → internal/src/internalClient.ts} +5 -5
  225. package/test/integration/generated/internal/src/models.ts +8 -0
  226. package/test/integration/generated/internal/src/outputModels.ts +13 -0
  227. package/test/integration/generated/internal/src/parameters.ts +21 -0
  228. package/test/integration/generated/internal/src/responses.ts +20 -0
  229. package/test/integration/generated/internal/tspconfig.yaml +14 -0
  230. package/test/integration/generated/lro/lroCore/.eslintrc.json +11 -0
  231. package/test/integration/generated/lro/lroCore/README.md +56 -0
  232. package/test/integration/generated/{resiliency/devDriven → lro/lroCore}/api-extractor.json +1 -1
  233. package/test/integration/generated/lro/{lroBasic → lroCore}/package.json +6 -6
  234. package/test/integration/generated/lro/lroCore/rollup.config.js +118 -0
  235. package/test/integration/generated/lro/lroCore/src/clientDefinitions.ts +54 -0
  236. package/test/integration/generated/lro/lroCore/src/index.ts +15 -0
  237. package/test/integration/generated/lro/lroCore/src/isUnexpected.ts +135 -0
  238. package/test/integration/generated/lro/lroCore/src/models.ts +8 -0
  239. package/test/integration/generated/lro/lroCore/src/outputModels.ts +50 -0
  240. package/test/integration/generated/lro/lroCore/src/parameters.ts +25 -0
  241. package/test/integration/generated/lro/{lroBasic → lroCore}/src/pollingHelper.ts +38 -0
  242. package/test/integration/generated/lro/lroCore/src/responses.ts +109 -0
  243. package/test/integration/generated/lro/lroCore/src/specsAzureCoreLroStandard.ts +31 -0
  244. package/test/integration/generated/lro/lroCore/tsconfig.json +25 -0
  245. package/test/integration/generated/lro/lroCore/tspconfig.yaml +14 -0
  246. package/test/integration/generated/lro/lroRPC/.eslintrc.json +11 -0
  247. package/test/integration/generated/lro/{lroBasic → lroRPC}/README.md +7 -7
  248. package/test/integration/generated/lro/lroRPC/api-extractor.json +18 -0
  249. package/test/integration/generated/lro/lroRPC/package.json +82 -0
  250. package/test/integration/generated/lro/lroRPC/rollup.config.js +118 -0
  251. package/test/integration/generated/lro/lroRPC/src/clientDefinitions.ts +79 -0
  252. package/test/integration/generated/lro/lroRPC/src/index.ts +15 -0
  253. package/test/integration/generated/lro/lroRPC/src/isUnexpected.ts +153 -0
  254. package/test/integration/generated/lro/lroRPC/src/models.ts +8 -0
  255. package/test/integration/generated/lro/lroRPC/src/outputModels.ts +40 -0
  256. package/test/integration/generated/lro/lroRPC/src/parameters.ts +20 -0
  257. package/test/integration/generated/lro/lroRPC/src/pollingHelper.ts +127 -0
  258. package/test/integration/generated/lro/lroRPC/src/responses.ts +124 -0
  259. package/test/integration/generated/lro/lroRPC/src/specsAzureCoreLroRpc.ts +31 -0
  260. package/test/integration/generated/lro/lroRPC/tsconfig.json +25 -0
  261. package/test/integration/generated/lro/lroRPC/tspconfig.yaml +14 -0
  262. package/test/integration/generated/models/inheritance/README.md +3 -3
  263. package/test/integration/generated/models/inheritance/package.json +2 -2
  264. package/test/integration/generated/models/inheritance/src/clientDefinitions.ts +13 -11
  265. package/test/integration/generated/models/inheritance/src/index.ts +3 -3
  266. package/test/integration/generated/models/inheritance/src/{modelsInheritance.ts → typeModelInheritance.ts} +4 -4
  267. package/test/integration/generated/models/inheritance/tspconfig.yaml +5 -2
  268. package/test/integration/generated/models/propertyNullable/.eslintrc.json +11 -0
  269. package/test/integration/generated/models/propertyNullable/README.md +56 -0
  270. package/test/integration/generated/models/propertyNullable/api-extractor.json +18 -0
  271. package/test/integration/generated/models/propertyNullable/package.json +80 -0
  272. package/test/integration/generated/models/propertyNullable/rollup.config.js +118 -0
  273. package/test/integration/generated/models/propertyNullable/src/clientDefinitions.ts +227 -0
  274. package/test/integration/generated/models/propertyNullable/src/index.ts +13 -0
  275. package/test/integration/generated/models/propertyNullable/src/models.ts +56 -0
  276. package/test/integration/generated/models/propertyNullable/src/outputModels.ts +56 -0
  277. package/test/integration/generated/models/propertyNullable/src/parameters.ts +197 -0
  278. package/test/integration/generated/models/propertyNullable/src/responses.ts +144 -0
  279. package/test/integration/generated/{resiliency/devDriven/src/resiliencyDevDriven.ts → models/propertyNullable/src/typePropertyNullable.ts} +5 -5
  280. package/test/integration/generated/models/propertyNullable/tsconfig.json +25 -0
  281. package/test/integration/generated/models/propertyNullable/tspconfig.yaml +14 -0
  282. package/test/integration/generated/models/propertyOptional/README.md +3 -3
  283. package/test/integration/generated/models/propertyOptional/package.json +2 -2
  284. package/test/integration/generated/models/propertyOptional/src/clientDefinitions.ts +47 -47
  285. package/test/integration/generated/models/propertyOptional/src/index.ts +3 -3
  286. package/test/integration/generated/models/propertyOptional/src/parameters.ts +7 -6
  287. package/test/integration/generated/models/propertyOptional/src/responses.ts +4 -4
  288. package/test/integration/generated/models/propertyOptional/src/{modelsPropertyOptional.ts → typePropertyOptional.ts} +4 -4
  289. package/test/integration/generated/models/propertyOptional/tspconfig.yaml +5 -2
  290. package/test/integration/generated/models/propertyTypes/README.md +3 -3
  291. package/test/integration/generated/models/propertyTypes/package.json +2 -2
  292. package/test/integration/generated/models/propertyTypes/src/clientDefinitions.ts +55 -47
  293. package/test/integration/generated/models/propertyTypes/src/index.ts +3 -3
  294. package/test/integration/generated/models/propertyTypes/src/parameters.ts +8 -6
  295. package/test/integration/generated/models/propertyTypes/src/responses.ts +4 -4
  296. package/test/integration/generated/models/propertyTypes/src/{modelsPropertyTypes.ts → typePropertyValueTypes.ts} +4 -4
  297. package/test/integration/generated/models/propertyTypes/tspconfig.yaml +5 -2
  298. package/test/integration/generated/models/usage/README.md +3 -3
  299. package/test/integration/generated/models/usage/package.json +2 -2
  300. package/test/integration/generated/models/usage/src/clientDefinitions.ts +7 -7
  301. package/test/integration/generated/models/usage/src/index.ts +3 -3
  302. package/test/integration/generated/models/usage/src/{modelsUsage.ts → typeModelUsage.ts} +4 -4
  303. package/test/integration/generated/models/usage/tspconfig.yaml +5 -2
  304. package/test/integration/generated/models/visibility/README.md +3 -3
  305. package/test/integration/generated/models/visibility/package.json +2 -2
  306. package/test/integration/generated/models/visibility/src/clientDefinitions.ts +3 -3
  307. package/test/integration/generated/models/visibility/src/index.ts +3 -3
  308. package/test/integration/generated/models/visibility/src/{modelsVisibilityAutomatic.ts → typeModelVisibility.ts} +4 -4
  309. package/test/integration/generated/models/visibility/tspconfig.yaml +5 -2
  310. package/test/integration/generated/parameters/collection-format/src/clientDefinitions.ts +63 -0
  311. package/test/integration/generated/parameters/collection-format/src/collectionFormatClient.ts +31 -0
  312. package/test/integration/generated/parameters/collection-format/src/index.ts +12 -0
  313. package/test/integration/generated/parameters/collection-format/src/parameters.ts +71 -0
  314. package/test/integration/generated/parameters/collection-format/src/responses.ts +34 -0
  315. package/test/integration/generated/parameters/collection-format/src/serializeHelper.ts +28 -0
  316. package/test/integration/generated/parameters/collection-format/tspconfig.yaml +14 -0
  317. package/test/integration/generated/parameters/spread/src/clientDefinitions.ts +61 -0
  318. package/test/integration/generated/{lro/lroBasic → parameters/spread}/src/index.ts +4 -4
  319. package/test/integration/generated/parameters/spread/src/models.ts +7 -0
  320. package/test/integration/generated/parameters/spread/src/parameters.ts +61 -0
  321. package/test/integration/generated/parameters/spread/src/parametersSpread.ts +31 -0
  322. package/test/integration/generated/parameters/spread/src/responses.ts +25 -0
  323. package/test/integration/generated/parameters/spread/tspconfig.yaml +12 -0
  324. package/test/integration/generated/projection/src/clientDefinitions.ts +71 -0
  325. package/test/integration/generated/projection/src/index.ts +12 -0
  326. package/test/integration/generated/projection/src/models.ts +22 -0
  327. package/test/integration/generated/projection/src/parameters.ts +48 -0
  328. package/test/integration/generated/projection/src/projectionClient.ts +31 -0
  329. package/test/integration/generated/projection/src/responses.ts +34 -0
  330. package/test/integration/generated/projection/tspconfig.yaml +14 -0
  331. package/test/integration/generated/resiliency/srvDriven1/README.md +4 -4
  332. package/test/integration/generated/resiliency/srvDriven1/package.json +2 -2
  333. package/test/integration/generated/resiliency/srvDriven1/src/clientDefinitions.ts +25 -49
  334. package/test/integration/generated/resiliency/srvDriven1/src/index.ts +3 -5
  335. package/test/integration/generated/resiliency/srvDriven1/src/parameters.ts +11 -32
  336. package/test/integration/generated/resiliency/srvDriven1/src/responses.ts +9 -24
  337. package/test/integration/generated/resiliency/srvDriven1/src/serviceDrivenOldClient.ts +39 -0
  338. package/test/integration/generated/resiliency/srvDriven1/tspconfig.yaml +6 -2
  339. package/test/integration/generated/resiliency/srvDriven2/README.md +13 -4
  340. package/test/integration/generated/resiliency/srvDriven2/package.json +2 -2
  341. package/test/integration/generated/resiliency/srvDriven2/src/clientDefinitions.ts +32 -68
  342. package/test/integration/generated/resiliency/srvDriven2/src/index.ts +3 -5
  343. package/test/integration/generated/resiliency/srvDriven2/src/parameters.ts +19 -42
  344. package/test/integration/generated/resiliency/srvDriven2/src/responses.ts +10 -31
  345. package/test/integration/generated/resiliency/srvDriven2/src/serviceDrivenNewClient.ts +39 -0
  346. package/test/integration/generated/resiliency/srvDriven2/tspconfig.yaml +6 -2
  347. package/test/integration/generated/server/path/multiple/src/clientDefinitions.ts +35 -0
  348. package/test/integration/generated/server/path/multiple/src/index.ts +11 -0
  349. package/test/integration/generated/server/path/multiple/src/multipleParamInServerPathClient.ts +39 -0
  350. package/test/integration/generated/server/path/multiple/src/parameters.ts +7 -0
  351. package/test/integration/generated/server/path/multiple/src/responses.ts +14 -0
  352. package/test/integration/generated/server/path/multiple/tspconfig.yaml +14 -0
  353. package/test/integration/generated/server/path/single/src/clientDefinitions.ts +19 -0
  354. package/test/integration/generated/server/path/single/src/index.ts +11 -0
  355. package/test/integration/generated/server/path/single/src/parameters.ts +6 -0
  356. package/test/integration/generated/server/path/single/src/responses.ts +9 -0
  357. package/test/integration/generated/server/path/single/src/singleParamInServerPathClient.ts +34 -0
  358. package/test/integration/generated/server/path/single/tspconfig.yaml +14 -0
  359. package/test/integration/generated/specialWords/tspconfig.yaml +5 -2
  360. package/test/integration/generated/unions/src/clientDefinitions.ts +8 -8
  361. package/test/integration/generated/unions/tspconfig.yaml +5 -2
  362. package/test/integration/internal.spec.ts +43 -0
  363. package/test/integration/lroCore.spec.ts +89 -0
  364. package/test/integration/modelInheritance.spec.ts +13 -13
  365. package/test/integration/modelPropertyNullable.spec.ts +115 -0
  366. package/test/integration/modelPropertyOptional.spec.ts +32 -32
  367. package/test/integration/modelPropertyType.spec.ts +6 -6
  368. package/test/integration/modelUsage.spec.ts +7 -7
  369. package/test/integration/projection.spec.ts +102 -0
  370. package/test/integration/resiliencyDpgCustomization.spec.ts +69 -35
  371. package/test/integration/server.spec.ts +59 -0
  372. package/test/integration/spreadParameters.spec.ts +82 -0
  373. package/test/integration/unions.spec.ts +4 -4
  374. package/test/unit/apiVersion.spec.ts +388 -0
  375. package/test/unit/clientFactoryGenerator.spec.ts +0 -131
  376. package/test/unit/modelsGenerator.spec.ts +2 -2
  377. package/test/unit/parametersGenerator.spec.ts +1 -1
  378. package/test/unit/responsesGenerator.spec.ts +1 -1
  379. package/test/unit/util/emitUtil.ts +6 -5
  380. package/test/unit/util/testUtil.ts +3 -3
  381. package/dist/src/transform/transformAnnotationDetails.d.ts +0 -6
  382. package/dist/src/transform/transformAnnotationDetails.d.ts.map +0 -1
  383. package/dist/src/transform/transformAnnotationDetails.js.map +0 -1
  384. package/dist/src/transform/transformApiVersionParam.d.ts +0 -5
  385. package/dist/src/transform/transformApiVersionParam.d.ts.map +0 -1
  386. package/dist/src/transform/transformApiVersionParam.js +0 -76
  387. package/dist/src/transform/transformApiVersionParam.js.map +0 -1
  388. package/src/transform/transformApiVersionParam.ts +0 -104
  389. package/test/integration/generated/lro/lroBasic/src/clientDefinitions.ts +0 -37
  390. package/test/integration/generated/lro/lroBasic/src/parameters.ts +0 -8
  391. package/test/integration/generated/lro/lroBasic/src/responses.ts +0 -22
  392. package/test/integration/generated/lro/lroBasic/tspconfig.yaml +0 -11
  393. package/test/integration/generated/resiliency/devDriven/src/clientDefinitions.ts +0 -75
  394. package/test/integration/generated/resiliency/devDriven/src/models.ts +0 -8
  395. package/test/integration/generated/resiliency/devDriven/src/outputModels.ts +0 -25
  396. package/test/integration/generated/resiliency/devDriven/src/parameters.ts +0 -17
  397. package/test/integration/generated/resiliency/devDriven/src/responses.ts +0 -62
  398. package/test/integration/generated/resiliency/devDriven/tspconfig.yaml +0 -11
  399. package/test/integration/generated/resiliency/srvDriven1/src/models.ts +0 -6
  400. package/test/integration/generated/resiliency/srvDriven1/src/outputModels.ts +0 -6
  401. package/test/integration/generated/resiliency/srvDriven1/src/resiliencyServiceDriven1.ts +0 -31
  402. package/test/integration/generated/resiliency/srvDriven2/src/models.ts +0 -6
  403. package/test/integration/generated/resiliency/srvDriven2/src/outputModels.ts +0 -6
  404. package/test/integration/generated/resiliency/srvDriven2/src/resiliencyServiceDriven2.ts +0 -31
  405. package/test/integration/helloWorld.spec.ts +0 -20
  406. package/test/integration/lroBasic.spec.ts +0 -25
  407. /package/test/integration/generated/{resiliency/devDriven → azure/core}/.eslintrc.json +0 -0
  408. /package/test/integration/generated/{resiliency/devDriven → azure/core}/rollup.config.js +0 -0
  409. /package/test/integration/generated/{resiliency/devDriven → azure/core}/tsconfig.json +0 -0
  410. /package/test/integration/generated/{lro/lroBasic → azure/core-traits}/.eslintrc.json +0 -0
  411. /package/test/integration/generated/{lro/lroBasic → azure/core-traits}/rollup.config.js +0 -0
  412. /package/test/integration/generated/{lro/lroBasic → azure/core-traits}/tsconfig.json +0 -0
@@ -0,0 +1,118 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+
4
+ import nodeResolve from "@rollup/plugin-node-resolve";
5
+ import cjs from "@rollup/plugin-commonjs";
6
+ import sourcemaps from "rollup-plugin-sourcemaps";
7
+ import multiEntry from "@rollup/plugin-multi-entry";
8
+ import json from "@rollup/plugin-json";
9
+
10
+ import nodeBuiltins from "builtin-modules";
11
+
12
+ // #region Warning Handler
13
+
14
+ /**
15
+ * A function that can determine whether a rollup warning should be ignored. If
16
+ * the function returns `true`, then the warning will not be displayed.
17
+ */
18
+
19
+ function ignoreNiseSinonEval(warning) {
20
+ return (
21
+ warning.code === "EVAL" &&
22
+ warning.id &&
23
+ (warning.id.includes("node_modules/nise") ||
24
+ warning.id.includes("node_modules/sinon")) === true
25
+ );
26
+ }
27
+
28
+ function ignoreChaiCircularDependency(warning) {
29
+ return (
30
+ warning.code === "CIRCULAR_DEPENDENCY" &&
31
+ warning.importer &&
32
+ warning.importer.includes("node_modules/chai") === true
33
+ );
34
+ }
35
+
36
+ const warningInhibitors = [ignoreChaiCircularDependency, ignoreNiseSinonEval];
37
+
38
+ /**
39
+ * Construct a warning handler for the shared rollup configuration
40
+ * that ignores certain warnings that are not relevant to testing.
41
+ */
42
+ function makeOnWarnForTesting() {
43
+ return (warning, warn) => {
44
+ // If every inhibitor returns false (i.e. no inhibitors), then show the warning
45
+ if (warningInhibitors.every((inhib) => !inhib(warning))) {
46
+ warn(warning);
47
+ }
48
+ };
49
+ }
50
+
51
+ // #endregion
52
+
53
+ function makeBrowserTestConfig() {
54
+ const config = {
55
+ input: {
56
+ include: ["dist-esm/test/**/*.spec.js"],
57
+ exclude: ["dist-esm/test/**/node/**"],
58
+ },
59
+ output: {
60
+ file: `dist-test/index.browser.js`,
61
+ format: "umd",
62
+ sourcemap: true,
63
+ },
64
+ preserveSymlinks: false,
65
+ plugins: [
66
+ multiEntry({ exports: false }),
67
+ nodeResolve({
68
+ mainFields: ["module", "browser"],
69
+ }),
70
+ cjs(),
71
+ json(),
72
+ sourcemaps(),
73
+ //viz({ filename: "dist-test/browser-stats.html", sourcemap: true })
74
+ ],
75
+ onwarn: makeOnWarnForTesting(),
76
+ // Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0,
77
+ // rollup started respecting the "sideEffects" field in package.json. Since
78
+ // our package.json sets "sideEffects=false", this also applies to test
79
+ // code, which causes all tests to be removed by tree-shaking.
80
+ treeshake: false,
81
+ };
82
+
83
+ return config;
84
+ }
85
+
86
+ const defaultConfigurationOptions = {
87
+ disableBrowserBundle: false,
88
+ };
89
+
90
+ export function makeConfig(pkg, options) {
91
+ options = {
92
+ ...defaultConfigurationOptions,
93
+ ...(options || {}),
94
+ };
95
+
96
+ const baseConfig = {
97
+ // Use the package's module field if it has one
98
+ input: pkg["module"] || "dist-esm/src/index.js",
99
+ external: [
100
+ ...nodeBuiltins,
101
+ ...Object.keys(pkg.dependencies),
102
+ ...Object.keys(pkg.devDependencies),
103
+ ],
104
+ output: { file: "dist/index.js", format: "cjs", sourcemap: true },
105
+ preserveSymlinks: false,
106
+ plugins: [sourcemaps(), nodeResolve()],
107
+ };
108
+
109
+ const config = [baseConfig];
110
+
111
+ if (!options.disableBrowserBundle) {
112
+ config.push(makeBrowserTestConfig());
113
+ }
114
+
115
+ return config;
116
+ }
117
+
118
+ export default makeConfig(require("./package.json"));
@@ -0,0 +1,227 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+
4
+ import {
5
+ StringModelGetNonNullParameters,
6
+ StringModelPatchNonNullParameters,
7
+ StringModelGetNullParameters,
8
+ StringModelPatchNullParameters,
9
+ BytesGetNonNullParameters,
10
+ BytesPatchNonNullParameters,
11
+ BytesGetNullParameters,
12
+ BytesPatchNullParameters,
13
+ DatetimeGetNonNullParameters,
14
+ DatetimePatchNonNullParameters,
15
+ DatetimeGetNullParameters,
16
+ DatetimePatchNullParameters,
17
+ DurationGetNonNullParameters,
18
+ DurationPatchNonNullParameters,
19
+ DurationGetNullParameters,
20
+ DurationPatchNullParameters,
21
+ CollectionsByteGetNonNullParameters,
22
+ CollectionsBytePatchNonNullParameters,
23
+ CollectionsByteGetNullParameters,
24
+ CollectionsBytePatchNullParameters,
25
+ CollectionsModelGetNonNullParameters,
26
+ CollectionsModelPatchNonNullParameters,
27
+ CollectionsModelGetNullParameters,
28
+ CollectionsModelPatchNullParameters,
29
+ } from "./parameters";
30
+ import {
31
+ StringModelGetNonNull200Response,
32
+ StringModelPatchNonNull204Response,
33
+ StringModelGetNull200Response,
34
+ StringModelPatchNull204Response,
35
+ BytesGetNonNull200Response,
36
+ BytesPatchNonNull204Response,
37
+ BytesGetNull200Response,
38
+ BytesPatchNull204Response,
39
+ DatetimeGetNonNull200Response,
40
+ DatetimePatchNonNull204Response,
41
+ DatetimeGetNull200Response,
42
+ DatetimePatchNull204Response,
43
+ DurationGetNonNull200Response,
44
+ DurationPatchNonNull204Response,
45
+ DurationGetNull200Response,
46
+ DurationPatchNull204Response,
47
+ CollectionsByteGetNonNull200Response,
48
+ CollectionsBytePatchNonNull204Response,
49
+ CollectionsByteGetNull200Response,
50
+ CollectionsBytePatchNull204Response,
51
+ CollectionsModelGetNonNull200Response,
52
+ CollectionsModelPatchNonNull204Response,
53
+ CollectionsModelGetNull200Response,
54
+ CollectionsModelPatchNull204Response,
55
+ } from "./responses";
56
+ import { Client, StreamableMethod } from "@azure-rest/core-client";
57
+
58
+ export interface StringModelGetNonNull {
59
+ /** Get models that will return all properties in the model */
60
+ get(
61
+ options?: StringModelGetNonNullParameters
62
+ ): StreamableMethod<StringModelGetNonNull200Response>;
63
+ /** Put a body with all properties present. */
64
+ patch(
65
+ options: StringModelPatchNonNullParameters
66
+ ): StreamableMethod<StringModelPatchNonNull204Response>;
67
+ }
68
+
69
+ export interface StringModelGetNull {
70
+ /** Get models that will return the default object */
71
+ get(
72
+ options?: StringModelGetNullParameters
73
+ ): StreamableMethod<StringModelGetNull200Response>;
74
+ /** Put a body with default properties. */
75
+ patch(
76
+ options: StringModelPatchNullParameters
77
+ ): StreamableMethod<StringModelPatchNull204Response>;
78
+ }
79
+
80
+ export interface BytesGetNonNull {
81
+ /** Get models that will return all properties in the model */
82
+ get(
83
+ options?: BytesGetNonNullParameters
84
+ ): StreamableMethod<BytesGetNonNull200Response>;
85
+ /** Put a body with all properties present. */
86
+ patch(
87
+ options: BytesPatchNonNullParameters
88
+ ): StreamableMethod<BytesPatchNonNull204Response>;
89
+ }
90
+
91
+ export interface BytesGetNull {
92
+ /** Get models that will return the default object */
93
+ get(
94
+ options?: BytesGetNullParameters
95
+ ): StreamableMethod<BytesGetNull200Response>;
96
+ /** Put a body with default properties. */
97
+ patch(
98
+ options: BytesPatchNullParameters
99
+ ): StreamableMethod<BytesPatchNull204Response>;
100
+ }
101
+
102
+ export interface DatetimeGetNonNull {
103
+ /** Get models that will return all properties in the model */
104
+ get(
105
+ options?: DatetimeGetNonNullParameters
106
+ ): StreamableMethod<DatetimeGetNonNull200Response>;
107
+ /** Put a body with all properties present. */
108
+ patch(
109
+ options: DatetimePatchNonNullParameters
110
+ ): StreamableMethod<DatetimePatchNonNull204Response>;
111
+ }
112
+
113
+ export interface DatetimeGetNull {
114
+ /** Get models that will return the default object */
115
+ get(
116
+ options?: DatetimeGetNullParameters
117
+ ): StreamableMethod<DatetimeGetNull200Response>;
118
+ /** Put a body with default properties. */
119
+ patch(
120
+ options: DatetimePatchNullParameters
121
+ ): StreamableMethod<DatetimePatchNull204Response>;
122
+ }
123
+
124
+ export interface DurationGetNonNull {
125
+ /** Get models that will return all properties in the model */
126
+ get(
127
+ options?: DurationGetNonNullParameters
128
+ ): StreamableMethod<DurationGetNonNull200Response>;
129
+ /** Put a body with all properties present. */
130
+ patch(
131
+ options: DurationPatchNonNullParameters
132
+ ): StreamableMethod<DurationPatchNonNull204Response>;
133
+ }
134
+
135
+ export interface DurationGetNull {
136
+ /** Get models that will return the default object */
137
+ get(
138
+ options?: DurationGetNullParameters
139
+ ): StreamableMethod<DurationGetNull200Response>;
140
+ /** Put a body with default properties. */
141
+ patch(
142
+ options: DurationPatchNullParameters
143
+ ): StreamableMethod<DurationPatchNull204Response>;
144
+ }
145
+
146
+ export interface CollectionsByteGetNonNull {
147
+ /** Get models that will return all properties in the model */
148
+ get(
149
+ options?: CollectionsByteGetNonNullParameters
150
+ ): StreamableMethod<CollectionsByteGetNonNull200Response>;
151
+ /** Put a body with all properties present. */
152
+ patch(
153
+ options: CollectionsBytePatchNonNullParameters
154
+ ): StreamableMethod<CollectionsBytePatchNonNull204Response>;
155
+ }
156
+
157
+ export interface CollectionsByteGetNull {
158
+ /** Get models that will return the default object */
159
+ get(
160
+ options?: CollectionsByteGetNullParameters
161
+ ): StreamableMethod<CollectionsByteGetNull200Response>;
162
+ /** Put a body with default properties. */
163
+ patch(
164
+ options: CollectionsBytePatchNullParameters
165
+ ): StreamableMethod<CollectionsBytePatchNull204Response>;
166
+ }
167
+
168
+ export interface CollectionsModelGetNonNull {
169
+ /** Get models that will return all properties in the model */
170
+ get(
171
+ options?: CollectionsModelGetNonNullParameters
172
+ ): StreamableMethod<CollectionsModelGetNonNull200Response>;
173
+ /** Put a body with all properties present. */
174
+ patch(
175
+ options: CollectionsModelPatchNonNullParameters
176
+ ): StreamableMethod<CollectionsModelPatchNonNull204Response>;
177
+ }
178
+
179
+ export interface CollectionsModelGetNull {
180
+ /** Get models that will return the default object */
181
+ get(
182
+ options?: CollectionsModelGetNullParameters
183
+ ): StreamableMethod<CollectionsModelGetNull200Response>;
184
+ /** Put a body with default properties. */
185
+ patch(
186
+ options: CollectionsModelPatchNullParameters
187
+ ): StreamableMethod<CollectionsModelPatchNull204Response>;
188
+ }
189
+
190
+ export interface Routes {
191
+ /** Resource for '/type/property/nullable/string/non-null' has methods for the following verbs: get, patch */
192
+ (path: "/type/property/nullable/string/non-null"): StringModelGetNonNull;
193
+ /** Resource for '/type/property/nullable/string/null' has methods for the following verbs: get, patch */
194
+ (path: "/type/property/nullable/string/null"): StringModelGetNull;
195
+ /** Resource for '/type/property/nullable/bytes/non-null' has methods for the following verbs: get, patch */
196
+ (path: "/type/property/nullable/bytes/non-null"): BytesGetNonNull;
197
+ /** Resource for '/type/property/nullable/bytes/null' has methods for the following verbs: get, patch */
198
+ (path: "/type/property/nullable/bytes/null"): BytesGetNull;
199
+ /** Resource for '/type/property/nullable/datetime/non-null' has methods for the following verbs: get, patch */
200
+ (path: "/type/property/nullable/datetime/non-null"): DatetimeGetNonNull;
201
+ /** Resource for '/type/property/nullable/datetime/null' has methods for the following verbs: get, patch */
202
+ (path: "/type/property/nullable/datetime/null"): DatetimeGetNull;
203
+ /** Resource for '/type/property/nullable/duration/non-null' has methods for the following verbs: get, patch */
204
+ (path: "/type/property/nullable/duration/non-null"): DurationGetNonNull;
205
+ /** Resource for '/type/property/nullable/duration/null' has methods for the following verbs: get, patch */
206
+ (path: "/type/property/nullable/duration/null"): DurationGetNull;
207
+ /** Resource for '/type/property/nullable/collections/bytes/non-null' has methods for the following verbs: get, patch */
208
+ (
209
+ path: "/type/property/nullable/collections/bytes/non-null"
210
+ ): CollectionsByteGetNonNull;
211
+ /** Resource for '/type/property/nullable/collections/bytes/null' has methods for the following verbs: get, patch */
212
+ (
213
+ path: "/type/property/nullable/collections/bytes/null"
214
+ ): CollectionsByteGetNull;
215
+ /** Resource for '/type/property/nullable/collections/model/non-null' has methods for the following verbs: get, patch */
216
+ (
217
+ path: "/type/property/nullable/collections/model/non-null"
218
+ ): CollectionsModelGetNonNull;
219
+ /** Resource for '/type/property/nullable/collections/model/null' has methods for the following verbs: get, patch */
220
+ (
221
+ path: "/type/property/nullable/collections/model/null"
222
+ ): CollectionsModelGetNull;
223
+ }
224
+
225
+ export type TypePropertyNullableClient = Client & {
226
+ path: Routes;
227
+ };
@@ -0,0 +1,13 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+
4
+ import TypePropertyNullable from "./typePropertyNullable";
5
+
6
+ export * from "./typePropertyNullable";
7
+ export * from "./parameters";
8
+ export * from "./responses";
9
+ export * from "./clientDefinitions";
10
+ export * from "./models";
11
+ export * from "./outputModels";
12
+
13
+ export default TypePropertyNullable;
@@ -0,0 +1,56 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+
4
+ /** Template type for testing models with nullable property. Pass in the type of the property you are looking for */
5
+ export interface StringProperty {
6
+ /** Required property */
7
+ requiredProperty: string;
8
+ /** Property */
9
+ nullableProperty: string | null;
10
+ }
11
+
12
+ /** Template type for testing models with nullable property. Pass in the type of the property you are looking for */
13
+ export interface BytesProperty {
14
+ /** Required property */
15
+ requiredProperty: string;
16
+ /** Property */
17
+ nullableProperty: string | null;
18
+ }
19
+
20
+ /** Model with a datetime property */
21
+ export interface DatetimeProperty {
22
+ /** Required property */
23
+ requiredProperty: string;
24
+ /** Property */
25
+ nullableProperty: Date | string | null;
26
+ }
27
+
28
+ /** Model with a duration property */
29
+ export interface DurationProperty {
30
+ /** Required property */
31
+ requiredProperty: string;
32
+ /** Property */
33
+ nullableProperty: string | null;
34
+ }
35
+
36
+ /** Model with collection bytes properties */
37
+ export interface CollectionsByteProperty {
38
+ /** Required property */
39
+ requiredProperty: string;
40
+ /** Property */
41
+ nullableProperty: string[] | null;
42
+ }
43
+
44
+ /** Model with collection models properties */
45
+ export interface CollectionsModelProperty {
46
+ /** Required property */
47
+ requiredProperty: string;
48
+ /** Property */
49
+ nullableProperty: Array<InnerModel> | null;
50
+ }
51
+
52
+ /** Inner model used in collections model property */
53
+ export interface InnerModel {
54
+ /** Inner model property */
55
+ property: string;
56
+ }
@@ -0,0 +1,56 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+
4
+ /** Template type for testing models with nullable property. Pass in the type of the property you are looking for */
5
+ export interface StringPropertyOutput {
6
+ /** Required property */
7
+ requiredProperty: string;
8
+ /** Property */
9
+ nullableProperty: string | null;
10
+ }
11
+
12
+ /** Template type for testing models with nullable property. Pass in the type of the property you are looking for */
13
+ export interface BytesPropertyOutput {
14
+ /** Required property */
15
+ requiredProperty: string;
16
+ /** Property */
17
+ nullableProperty: string | null;
18
+ }
19
+
20
+ /** Model with a datetime property */
21
+ export interface DatetimePropertyOutput {
22
+ /** Required property */
23
+ requiredProperty: string;
24
+ /** Property */
25
+ nullableProperty: string | null;
26
+ }
27
+
28
+ /** Model with a duration property */
29
+ export interface DurationPropertyOutput {
30
+ /** Required property */
31
+ requiredProperty: string;
32
+ /** Property */
33
+ nullableProperty: string | null;
34
+ }
35
+
36
+ /** Model with collection bytes properties */
37
+ export interface CollectionsBytePropertyOutput {
38
+ /** Required property */
39
+ requiredProperty: string;
40
+ /** Property */
41
+ nullableProperty: string[] | null;
42
+ }
43
+
44
+ /** Model with collection models properties */
45
+ export interface CollectionsModelPropertyOutput {
46
+ /** Required property */
47
+ requiredProperty: string;
48
+ /** Property */
49
+ nullableProperty: Array<InnerModelOutput> | null;
50
+ }
51
+
52
+ /** Inner model used in collections model property */
53
+ export interface InnerModelOutput {
54
+ /** Inner model property */
55
+ property: string;
56
+ }
@@ -0,0 +1,197 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+
4
+ import { RequestParameters } from "@azure-rest/core-client";
5
+ import {
6
+ StringProperty,
7
+ BytesProperty,
8
+ DatetimeProperty,
9
+ DurationProperty,
10
+ CollectionsByteProperty,
11
+ CollectionsModelProperty,
12
+ } from "./models";
13
+
14
+ export type StringModelGetNonNullParameters = RequestParameters;
15
+ export type StringModelGetNullParameters = RequestParameters;
16
+ export type StringPropertyResourceMergeAndPatch = Partial<StringProperty>;
17
+
18
+ export interface StringModelPatchNonNullBodyParam {
19
+ body: StringPropertyResourceMergeAndPatch;
20
+ }
21
+
22
+ export interface StringModelPatchNonNullMediaTypesParam {
23
+ /** content-type is application/merge-patch+json */
24
+ contentType: "application/merge-patch+json";
25
+ }
26
+
27
+ export type StringModelPatchNonNullParameters =
28
+ StringModelPatchNonNullMediaTypesParam &
29
+ StringModelPatchNonNullBodyParam &
30
+ RequestParameters;
31
+
32
+ export interface StringModelPatchNullBodyParam {
33
+ body: StringPropertyResourceMergeAndPatch;
34
+ }
35
+
36
+ export interface StringModelPatchNullMediaTypesParam {
37
+ /** content-type is application/merge-patch+json */
38
+ contentType: "application/merge-patch+json";
39
+ }
40
+
41
+ export type StringModelPatchNullParameters =
42
+ StringModelPatchNullMediaTypesParam &
43
+ StringModelPatchNullBodyParam &
44
+ RequestParameters;
45
+ export type BytesGetNonNullParameters = RequestParameters;
46
+ export type BytesGetNullParameters = RequestParameters;
47
+ export type BytesPropertyResourceMergeAndPatch = Partial<BytesProperty>;
48
+
49
+ export interface BytesPatchNonNullBodyParam {
50
+ body: BytesPropertyResourceMergeAndPatch;
51
+ }
52
+
53
+ export interface BytesPatchNonNullMediaTypesParam {
54
+ /** content-type is application/merge-patch+json */
55
+ contentType: "application/merge-patch+json";
56
+ }
57
+
58
+ export type BytesPatchNonNullParameters = BytesPatchNonNullMediaTypesParam &
59
+ BytesPatchNonNullBodyParam &
60
+ RequestParameters;
61
+
62
+ export interface BytesPatchNullBodyParam {
63
+ body: BytesPropertyResourceMergeAndPatch;
64
+ }
65
+
66
+ export interface BytesPatchNullMediaTypesParam {
67
+ /** content-type is application/merge-patch+json */
68
+ contentType: "application/merge-patch+json";
69
+ }
70
+
71
+ export type BytesPatchNullParameters = BytesPatchNullMediaTypesParam &
72
+ BytesPatchNullBodyParam &
73
+ RequestParameters;
74
+ export type DatetimeGetNonNullParameters = RequestParameters;
75
+ export type DatetimeGetNullParameters = RequestParameters;
76
+ export type DatetimePropertyResourceMergeAndPatch = Partial<DatetimeProperty>;
77
+
78
+ export interface DatetimePatchNonNullBodyParam {
79
+ body: DatetimePropertyResourceMergeAndPatch;
80
+ }
81
+
82
+ export interface DatetimePatchNonNullMediaTypesParam {
83
+ /** content-type is application/merge-patch+json */
84
+ contentType: "application/merge-patch+json";
85
+ }
86
+
87
+ export type DatetimePatchNonNullParameters =
88
+ DatetimePatchNonNullMediaTypesParam &
89
+ DatetimePatchNonNullBodyParam &
90
+ RequestParameters;
91
+
92
+ export interface DatetimePatchNullBodyParam {
93
+ body: DatetimePropertyResourceMergeAndPatch;
94
+ }
95
+
96
+ export interface DatetimePatchNullMediaTypesParam {
97
+ /** content-type is application/merge-patch+json */
98
+ contentType: "application/merge-patch+json";
99
+ }
100
+
101
+ export type DatetimePatchNullParameters = DatetimePatchNullMediaTypesParam &
102
+ DatetimePatchNullBodyParam &
103
+ RequestParameters;
104
+ export type DurationGetNonNullParameters = RequestParameters;
105
+ export type DurationGetNullParameters = RequestParameters;
106
+ export type DurationPropertyResourceMergeAndPatch = Partial<DurationProperty>;
107
+
108
+ export interface DurationPatchNonNullBodyParam {
109
+ body: DurationPropertyResourceMergeAndPatch;
110
+ }
111
+
112
+ export interface DurationPatchNonNullMediaTypesParam {
113
+ /** content-type is application/merge-patch+json */
114
+ contentType: "application/merge-patch+json";
115
+ }
116
+
117
+ export type DurationPatchNonNullParameters =
118
+ DurationPatchNonNullMediaTypesParam &
119
+ DurationPatchNonNullBodyParam &
120
+ RequestParameters;
121
+
122
+ export interface DurationPatchNullBodyParam {
123
+ body: DurationPropertyResourceMergeAndPatch;
124
+ }
125
+
126
+ export interface DurationPatchNullMediaTypesParam {
127
+ /** content-type is application/merge-patch+json */
128
+ contentType: "application/merge-patch+json";
129
+ }
130
+
131
+ export type DurationPatchNullParameters = DurationPatchNullMediaTypesParam &
132
+ DurationPatchNullBodyParam &
133
+ RequestParameters;
134
+ export type CollectionsByteGetNonNullParameters = RequestParameters;
135
+ export type CollectionsByteGetNullParameters = RequestParameters;
136
+ export type CollectionsBytePropertyResourceMergeAndPatch =
137
+ Partial<CollectionsByteProperty>;
138
+
139
+ export interface CollectionsBytePatchNonNullBodyParam {
140
+ body: CollectionsBytePropertyResourceMergeAndPatch;
141
+ }
142
+
143
+ export interface CollectionsBytePatchNonNullMediaTypesParam {
144
+ /** content-type is application/merge-patch+json */
145
+ contentType: "application/merge-patch+json";
146
+ }
147
+
148
+ export type CollectionsBytePatchNonNullParameters =
149
+ CollectionsBytePatchNonNullMediaTypesParam &
150
+ CollectionsBytePatchNonNullBodyParam &
151
+ RequestParameters;
152
+
153
+ export interface CollectionsBytePatchNullBodyParam {
154
+ body: CollectionsBytePropertyResourceMergeAndPatch;
155
+ }
156
+
157
+ export interface CollectionsBytePatchNullMediaTypesParam {
158
+ /** content-type is application/merge-patch+json */
159
+ contentType: "application/merge-patch+json";
160
+ }
161
+
162
+ export type CollectionsBytePatchNullParameters =
163
+ CollectionsBytePatchNullMediaTypesParam &
164
+ CollectionsBytePatchNullBodyParam &
165
+ RequestParameters;
166
+ export type CollectionsModelGetNonNullParameters = RequestParameters;
167
+ export type CollectionsModelGetNullParameters = RequestParameters;
168
+ export type CollectionsModelPropertyResourceMergeAndPatch =
169
+ Partial<CollectionsModelProperty>;
170
+
171
+ export interface CollectionsModelPatchNonNullBodyParam {
172
+ body: CollectionsModelPropertyResourceMergeAndPatch;
173
+ }
174
+
175
+ export interface CollectionsModelPatchNonNullMediaTypesParam {
176
+ /** content-type is application/merge-patch+json */
177
+ contentType: "application/merge-patch+json";
178
+ }
179
+
180
+ export type CollectionsModelPatchNonNullParameters =
181
+ CollectionsModelPatchNonNullMediaTypesParam &
182
+ CollectionsModelPatchNonNullBodyParam &
183
+ RequestParameters;
184
+
185
+ export interface CollectionsModelPatchNullBodyParam {
186
+ body: CollectionsModelPropertyResourceMergeAndPatch;
187
+ }
188
+
189
+ export interface CollectionsModelPatchNullMediaTypesParam {
190
+ /** content-type is application/merge-patch+json */
191
+ contentType: "application/merge-patch+json";
192
+ }
193
+
194
+ export type CollectionsModelPatchNullParameters =
195
+ CollectionsModelPatchNullMediaTypesParam &
196
+ CollectionsModelPatchNullBodyParam &
197
+ RequestParameters;