@azure-tools/typespec-ts 0.12.0-alpha.20230502.1 → 0.13.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.
Files changed (135) hide show
  1. package/.rush/temp/operation/build/all.log +1 -0
  2. package/.rush/temp/operation/build/state.json +3 -0
  3. package/.rush/temp/package-deps_build.json +104 -78
  4. package/.rush/temp/shrinkwrap-deps.json +488 -471
  5. package/CHANGELOG.md +7 -0
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +2 -1
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/modelUtils.d.ts +1 -1
  10. package/dist/src/modelUtils.d.ts.map +1 -1
  11. package/dist/src/modelUtils.js +79 -56
  12. package/dist/src/modelUtils.js.map +1 -1
  13. package/dist/src/operationUtil.d.ts.map +1 -1
  14. package/dist/src/operationUtil.js +7 -6
  15. package/dist/src/operationUtil.js.map +1 -1
  16. package/dist/src/transform/transform.d.ts.map +1 -1
  17. package/dist/src/transform/transform.js +3 -3
  18. package/dist/src/transform/transform.js.map +1 -1
  19. package/dist/src/transform/transformApiVersionInfo.d.ts.map +1 -1
  20. package/dist/src/transform/transformApiVersionInfo.js +3 -3
  21. package/dist/src/transform/transformApiVersionInfo.js.map +1 -1
  22. package/dist/src/transform/transformParameters.d.ts.map +1 -1
  23. package/dist/src/transform/transformParameters.js +23 -29
  24. package/dist/src/transform/transformParameters.js.map +1 -1
  25. package/dist/src/transform/transformPaths.d.ts.map +1 -1
  26. package/dist/src/transform/transformPaths.js +5 -5
  27. package/dist/src/transform/transformPaths.js.map +1 -1
  28. package/dist/src/transform/transformResponses.js +6 -6
  29. package/dist/src/transform/transformResponses.js.map +1 -1
  30. package/dist/src/transform/transformSchemas.js +1 -1
  31. package/dist/src/transform/transformSchemas.js.map +1 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +41 -39
  34. package/src/index.ts +2 -0
  35. package/src/modelUtils.ts +143 -47
  36. package/src/operationUtil.ts +4 -3
  37. package/src/transform/transform.ts +10 -2
  38. package/src/transform/transformApiVersionInfo.ts +18 -3
  39. package/src/transform/transformParameters.ts +51 -16
  40. package/src/transform/transformPaths.ts +10 -5
  41. package/src/transform/transformResponses.ts +6 -4
  42. package/src/transform/transformSchemas.ts +1 -1
  43. package/test/integration/azurecore.spec.ts +51 -11
  44. package/test/integration/generated/arrays/itemTypes/src/arrayItemTypesClient.ts +5 -1
  45. package/test/integration/generated/arrays/itemTypes/src/logger.ts +5 -0
  46. package/test/integration/generated/authentication/apiKey/package.json +1 -1
  47. package/test/integration/generated/authentication/apiKey/src/authApiKeyClient.ts +6 -2
  48. package/test/integration/generated/authentication/apiKey/src/logger.ts +5 -0
  49. package/test/integration/generated/authentication/oauth2/src/authOauth2Client.ts +6 -2
  50. package/test/integration/generated/authentication/oauth2/src/logger.ts +5 -0
  51. package/test/integration/generated/authentication/union/src/authUnionClient.ts +6 -2
  52. package/test/integration/generated/authentication/union/src/logger.ts +5 -0
  53. package/test/integration/generated/azure/core/package.json +1 -1
  54. package/test/integration/generated/azure/core/src/azureCoreClient.ts +5 -1
  55. package/test/integration/generated/azure/core/src/logger.ts +5 -0
  56. package/test/integration/generated/azure/core/src/outputModels.ts +7 -1
  57. package/test/integration/generated/azure/core-traits/package.json +1 -1
  58. package/test/integration/generated/azure/core-traits/src/azureCoreTraitsClient.ts +5 -1
  59. package/test/integration/generated/azure/core-traits/src/logger.ts +5 -0
  60. package/test/integration/generated/azure/core-traits/src/outputModels.ts +15 -0
  61. package/test/integration/generated/dictionary/package.json +1 -1
  62. package/test/integration/generated/dictionary/src/dictClient.ts +5 -1
  63. package/test/integration/generated/dictionary/src/logger.ts +5 -0
  64. package/test/integration/generated/enums/extensible/package.json +1 -1
  65. package/test/integration/generated/enums/extensible/src/logger.ts +5 -0
  66. package/test/integration/generated/enums/extensible/src/typeEnumExtensible.ts +5 -1
  67. package/test/integration/generated/enums/fixed/package.json +1 -1
  68. package/test/integration/generated/enums/fixed/src/logger.ts +5 -0
  69. package/test/integration/generated/enums/fixed/src/typeEnumFixed.ts +5 -1
  70. package/test/integration/generated/internal/src/clientDefinitions.ts +38 -12
  71. package/test/integration/generated/internal/src/index.ts +0 -1
  72. package/test/integration/generated/internal/src/internalClient.ts +5 -1
  73. package/test/integration/generated/internal/src/logger.ts +5 -0
  74. package/test/integration/generated/internal/src/outputModels.ts +9 -5
  75. package/test/integration/generated/internal/src/parameters.ts +32 -8
  76. package/test/integration/generated/internal/src/responses.ts +18 -5
  77. package/test/integration/generated/lro/lroCore/package.json +2 -2
  78. package/test/integration/generated/lro/lroCore/src/logger.ts +5 -0
  79. package/test/integration/generated/lro/lroCore/src/specsAzureCoreLroStandard.ts +5 -1
  80. package/test/integration/generated/lro/lroRPC/package.json +2 -2
  81. package/test/integration/generated/lro/lroRPC/src/logger.ts +5 -0
  82. package/test/integration/generated/lro/lroRPC/src/specsAzureCoreLroRpc.ts +5 -1
  83. package/test/integration/generated/models/inheritance/package.json +1 -1
  84. package/test/integration/generated/models/inheritance/src/logger.ts +5 -0
  85. package/test/integration/generated/models/inheritance/src/typeModelInheritance.ts +5 -1
  86. package/test/integration/generated/models/propertyNullable/package.json +1 -1
  87. package/test/integration/generated/models/propertyNullable/src/logger.ts +5 -0
  88. package/test/integration/generated/models/propertyNullable/src/typePropertyNullable.ts +5 -1
  89. package/test/integration/generated/models/propertyOptional/package.json +1 -1
  90. package/test/integration/generated/models/propertyOptional/src/logger.ts +5 -0
  91. package/test/integration/generated/models/propertyOptional/src/typePropertyOptional.ts +5 -1
  92. package/test/integration/generated/models/propertyTypes/package.json +1 -1
  93. package/test/integration/generated/models/propertyTypes/src/clientDefinitions.ts +68 -0
  94. package/test/integration/generated/models/propertyTypes/src/logger.ts +5 -0
  95. package/test/integration/generated/models/propertyTypes/src/models.ts +24 -0
  96. package/test/integration/generated/models/propertyTypes/src/outputModels.ts +24 -0
  97. package/test/integration/generated/models/propertyTypes/src/parameters.ts +40 -0
  98. package/test/integration/generated/models/propertyTypes/src/responses.ts +48 -0
  99. package/test/integration/generated/models/propertyTypes/src/typePropertyValueTypes.ts +5 -1
  100. package/test/integration/generated/models/usage/package.json +1 -1
  101. package/test/integration/generated/models/usage/src/logger.ts +5 -0
  102. package/test/integration/generated/models/usage/src/typeModelUsage.ts +5 -1
  103. package/test/integration/generated/models/visibility/package.json +1 -1
  104. package/test/integration/generated/models/visibility/src/logger.ts +5 -0
  105. package/test/integration/generated/models/visibility/src/typeModelVisibility.ts +5 -1
  106. package/test/integration/generated/parameters/collection-format/src/collectionFormatClient.ts +5 -1
  107. package/test/integration/generated/parameters/collection-format/src/logger.ts +5 -0
  108. package/test/integration/generated/parameters/spread/src/logger.ts +5 -0
  109. package/test/integration/generated/parameters/spread/src/parametersSpread.ts +5 -1
  110. package/test/integration/generated/projection/src/logger.ts +5 -0
  111. package/test/integration/generated/projection/src/projectionClient.ts +5 -1
  112. package/test/integration/generated/resiliency/srvDriven1/package.json +1 -1
  113. package/test/integration/generated/resiliency/srvDriven1/src/logger.ts +5 -0
  114. package/test/integration/generated/resiliency/srvDriven1/src/serviceDrivenOldClient.ts +6 -2
  115. package/test/integration/generated/resiliency/srvDriven2/package.json +1 -1
  116. package/test/integration/generated/resiliency/srvDriven2/src/logger.ts +5 -0
  117. package/test/integration/generated/resiliency/srvDriven2/src/serviceDrivenNewClient.ts +6 -2
  118. package/test/integration/generated/server/path/multiple/src/logger.ts +5 -0
  119. package/test/integration/generated/server/path/multiple/src/multipleParamInServerPathClient.ts +6 -2
  120. package/test/integration/generated/server/path/single/src/logger.ts +5 -0
  121. package/test/integration/generated/server/path/single/src/singleParamInServerPathClient.ts +6 -2
  122. package/test/integration/generated/specialWords/src/logger.ts +5 -0
  123. package/test/integration/generated/specialWords/src/specialWordsClient.ts +5 -1
  124. package/test/integration/generated/unions/src/logger.ts +5 -0
  125. package/test/integration/generated/unions/src/unionsClient.ts +5 -1
  126. package/test/integration/internal.spec.ts +45 -12
  127. package/test/integration/modelPropertyType.spec.ts +16 -0
  128. package/test/integration/resiliencyDpgCustomization.spec.ts +85 -24
  129. package/test/unit/apiVersion.spec.ts +19 -7
  130. package/test/unit/clientFactoryGenerator.spec.ts +44 -16
  131. package/test/unit/modelsGenerator.spec.ts +212 -2
  132. package/test/unit/util/emitUtil.ts +13 -4
  133. package/test/unit/util/testUtil.ts +7 -2
  134. package/typespec-ts.build.log +0 -1
  135. package/test/integration/generated/internal/src/models.ts +0 -8
@@ -2,11 +2,12 @@
2
2
  // Licensed under the MIT license.
3
3
 
4
4
  import { getClient, ClientOptions } from "@azure-rest/core-client";
5
+ import { logger } from "./logger";
5
6
  import { SpecialWordsClient } from "./clientDefinitions";
6
7
 
7
8
  /**
8
9
  * Initialize a new instance of `SpecialWordsClient`
9
- * @param options type: ClientOptions, the parameter for all optional parameters
10
+ * @param options - the parameter for all optional parameters
10
11
  */
11
12
  export default function createClient(
12
13
  options: ClientOptions = {}
@@ -23,6 +24,9 @@ export default function createClient(
23
24
  userAgentOptions: {
24
25
  userAgentPrefix,
25
26
  },
27
+ loggingOptions: {
28
+ logger: options.loggingOptions?.logger ?? logger.info,
29
+ },
26
30
  };
27
31
 
28
32
  const client = getClient(baseUrl, options) as SpecialWordsClient;
@@ -0,0 +1,5 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+
4
+ import { createClientLogger } from "@azure/logger";
5
+ export const logger = createClientLogger("unions");
@@ -2,11 +2,12 @@
2
2
  // Licensed under the MIT license.
3
3
 
4
4
  import { getClient, ClientOptions } from "@azure-rest/core-client";
5
+ import { logger } from "./logger";
5
6
  import { UnionsClient } from "./clientDefinitions";
6
7
 
7
8
  /**
8
9
  * Initialize a new instance of `UnionsClient`
9
- * @param options type: ClientOptions, the parameter for all optional parameters
10
+ * @param options - the parameter for all optional parameters
10
11
  */
11
12
  export default function createClient(
12
13
  options: ClientOptions = {}
@@ -23,6 +24,9 @@ export default function createClient(
23
24
  userAgentOptions: {
24
25
  userAgentPrefix,
25
26
  },
27
+ loggingOptions: {
28
+ logger: options.loggingOptions?.logger ?? logger.info,
29
+ },
26
30
  };
27
31
 
28
32
  const client = getClient(baseUrl, options) as UnionsClient;
@@ -14,27 +14,60 @@ describe("Internal Rest Client", () => {
14
14
  });
15
15
  });
16
16
 
17
+ it("should get internal only", async () => {
18
+ try {
19
+ const result = await client
20
+ .path("/azure/client-generator-core/internal/internal")
21
+ .get({
22
+ queryParameters: {
23
+ name: "any"
24
+ }
25
+ });
26
+ assert.strictEqual(result.status, "200");
27
+ } catch (err) {
28
+ assert.fail(err as string);
29
+ }
30
+ });
31
+
17
32
  it("should get internal", async () => {
18
33
  try {
19
- const result = await client.path("/azure/client-generator-core/internal/getInternal").get({
20
- queryParameters: {
21
- name: "get internal"
22
- }
23
- });
34
+ const result = await client
35
+ .path("/azure/client-generator-core/internal/public")
36
+ .get({
37
+ queryParameters: {
38
+ name: "any"
39
+ }
40
+ });
41
+ assert.strictEqual(result.status, "200");
42
+ } catch (err) {
43
+ assert.fail(err as string);
44
+ }
45
+ });
46
+
47
+ it("should get shared public", async () => {
48
+ try {
49
+ const result = await client
50
+ .path("/azure/client-generator-core/internal/shared/public")
51
+ .get({
52
+ queryParameters: {
53
+ name: "any"
54
+ }
55
+ });
24
56
  assert.strictEqual(result.status, "200");
25
57
  } catch (err) {
26
58
  assert.fail(err as string);
27
59
  }
28
60
  });
29
61
 
30
- it("should post internal", async () => {
62
+ it("should get shared internal", async () => {
31
63
  try {
32
- const result = await client.path("/azure/client-generator-core/internal/postInternal").post({
33
- body: {
34
- id: 1 as any,
35
- name: "post internal name"
36
- }
37
- });
64
+ const result = await client
65
+ .path("/azure/client-generator-core/internal/shared/internal")
66
+ .get({
67
+ queryParameters: {
68
+ name: "any"
69
+ }
70
+ });
38
71
  assert.strictEqual(result.status, "200");
39
72
  } catch (err) {
40
73
  assert.fail(err as string);
@@ -71,6 +71,22 @@ const testedTypes: TypeDetail[] = [
71
71
  {
72
72
  type: "never",
73
73
  defaultValue: undefined
74
+ },
75
+ {
76
+ type: "unknown/string",
77
+ defaultValue: "hello"
78
+ },
79
+ {
80
+ type: "unknown/int",
81
+ defaultValue: 42
82
+ },
83
+ {
84
+ type: "unknown/dict",
85
+ defaultValue: { k1: "hello", k2: 42 }
86
+ },
87
+ {
88
+ type: "unknown/array",
89
+ defaultValue: ["hello", "world"]
74
90
  }
75
91
  ];
76
92
  describe("ModelsPropertyTypesClient Rest Client", () => {
@@ -6,48 +6,77 @@ import ServiceDrivenNewClientFactory, {
6
6
  ServiceDrivenNewClient
7
7
  } from "./generated/resiliency/srvDriven2/src/index.js";
8
8
  describe("ResiliencyDevDrivenClient Rest Client", () => {
9
- let client1: ServiceDrivenOldClient;
9
+ let client11: ServiceDrivenOldClient;
10
+ let client12: ServiceDrivenOldClient;
11
+ let client21: ServiceDrivenNewClient;
12
+ let client22: ServiceDrivenNewClient;
10
13
 
11
14
  beforeEach(() => {
12
- client1 = ServiceDrivenOldClientFactory("v1", {
13
- allowInsecureConnection: true
15
+ client11 = ServiceDrivenOldClientFactory("v1", {
16
+ allowInsecureConnection: true,
17
+ apiVersion: "v1"
14
18
  });
15
- });
16
-
17
- let client2: ServiceDrivenNewClient;
18
-
19
- beforeEach(() => {
20
- client2 = ServiceDrivenNewClientFactory("v2", {
21
- allowInsecureConnection: true
19
+ client12 = ServiceDrivenOldClientFactory("v2", {
20
+ allowInsecureConnection: true,
21
+ apiVersion: "v1"
22
+ });
23
+ client21 = ServiceDrivenNewClientFactory("v2", {
24
+ allowInsecureConnection: true,
25
+ apiVersion: "v1"
26
+ });
27
+ client22 = ServiceDrivenNewClientFactory("v2", {
28
+ allowInsecureConnection: true,
29
+ apiVersion: "v2"
22
30
  });
23
31
  });
24
32
 
33
+
25
34
  describe("resiliency with service driven", () => {
26
35
  it("should work with none parameter", async () => {
27
- const result1 = await client1
36
+ const result11 = await client11
28
37
  .path("/add-optional-param/from-none")
29
38
  .head();
30
39
 
31
- assert.equal(result1.status, "204");
32
- const result2 = await client2.path("/add-optional-param/from-none").head({
40
+ assert.equal(result11.status, "204");
41
+ const result12 = await client12
42
+ .path("/add-optional-param/from-none")
43
+ .head();
44
+
45
+ assert.equal(result12.status, "204");
46
+ const result21 = await client21.path("/add-optional-param/from-none").head({
33
47
  queryParameters: {
34
48
  "new-parameter": "new"
35
49
  }
36
50
  });
37
51
 
38
- assert.equal(result2.status, "204");
52
+ assert.equal(result21.status, "204");
53
+ const result22 = await client22.path("/add-optional-param/from-none").head({
54
+ queryParameters: {
55
+ "new-parameter": "new"
56
+ }
57
+ });
58
+
59
+ assert.equal(result22.status, "204");
39
60
  });
40
61
 
41
62
  it("should work with one optional parameter", async () => {
42
- const result1 = await client1
63
+ const result11 = await client11
43
64
  .path("/add-optional-param/from-one-optional")
44
65
  .get({
45
66
  queryParameters: {
46
67
  parameter: "optional"
47
68
  }
48
69
  });
49
- assert.equal(result1.status, "204");
50
- const result2 = await client2
70
+ assert.equal(result11.status, "204");
71
+ const result12 = await client12
72
+ .path("/add-optional-param/from-one-optional")
73
+ .get({
74
+ queryParameters: {
75
+ parameter: "optional"
76
+ }
77
+ });
78
+ assert.equal(result12.status, "204");
79
+ const result21 = await client21
51
80
  .path("/add-optional-param/from-one-optional")
52
81
  .get({
53
82
  queryParameters: {
@@ -55,19 +84,36 @@ describe("ResiliencyDevDrivenClient Rest Client", () => {
55
84
  "new-parameter": "new"
56
85
  }
57
86
  });
58
- assert.equal(result2.status, "204");
87
+ assert.equal(result21.status, "204");
88
+ const result22 = await client22
89
+ .path("/add-optional-param/from-one-optional")
90
+ .get({
91
+ queryParameters: {
92
+ parameter: "optional",
93
+ "new-parameter": "new"
94
+ }
95
+ });
96
+ assert.equal(result22.status, "204");
59
97
  });
60
98
 
61
99
  it("should work with one required parameter", async () => {
62
- const result1 = await client1
100
+ const result11 = await client11
63
101
  .path("/add-optional-param/from-one-required")
64
102
  .get({
65
103
  queryParameters: {
66
104
  parameter: "required"
67
105
  }
68
106
  });
69
- assert.equal(result1.status, "204");
70
- const result2 = await client2
107
+ assert.equal(result11.status, "204");
108
+ const result12 = await client12
109
+ .path("/add-optional-param/from-one-required")
110
+ .get({
111
+ queryParameters: {
112
+ parameter: "required"
113
+ }
114
+ });
115
+ assert.equal(result12.status, "204");
116
+ const result21 = await client21
71
117
  .path("/add-optional-param/from-one-required")
72
118
  .get({
73
119
  queryParameters: {
@@ -75,12 +121,27 @@ describe("ResiliencyDevDrivenClient Rest Client", () => {
75
121
  "new-parameter": "new"
76
122
  }
77
123
  });
78
- assert.equal(result2.status, "204");
124
+ assert.equal(result21.status, "204");
125
+ const result22 = await client22
126
+ .path("/add-optional-param/from-one-required")
127
+ .get({
128
+ queryParameters: {
129
+ parameter: "required",
130
+ "new-parameter": "new"
131
+ }
132
+ });
133
+ assert.equal(result22.status, "204");
79
134
  });
80
135
  });
81
136
 
82
137
  it("should work with add operation", async () => {
83
- const result2 = await client2.path("/add-operation").delete()
84
- assert.equal(result2.status, "204");
138
+ const client122 = ServiceDrivenOldClientFactory("v2", {
139
+ allowInsecureConnection: true,
140
+ apiVersion: "v2"
141
+ });
142
+ const result122 = await client122.pathUnchecked("/add-operation").delete();
143
+ assert.equal(result122.status, "204");
144
+ const result22 = await client22.path("/add-operation").delete()
145
+ assert.equal(result22.status, "204");
85
146
  });
86
147
  });
@@ -130,12 +130,13 @@ const buildDefaultReturn = (hasDefault: boolean) => {
130
130
  : `options.apiVersion = options.apiVersion ?? "2022-05-15-preview";`;
131
131
  return `
132
132
  import { getClient, ClientOptions } from "@azure-rest/core-client";
133
+ import { logger } from "./logger";
133
134
  import { testClient } from "./clientDefinitions";
134
135
 
135
136
  /**
136
137
  * Initialize a new instance of \`testClient\`
137
- * @param endpoint type: string, The endpoint to use.
138
- * @param options type: ClientOptions, the parameter for all optional parameters
138
+ * @param endpoint - The endpoint to use.
139
+ * @param options - the parameter for all optional parameters
139
140
  */
140
141
  export default function createClient(
141
142
  endpoint: string,
@@ -154,6 +155,9 @@ const buildDefaultReturn = (hasDefault: boolean) => {
154
155
  userAgentOptions: {
155
156
  userAgentPrefix,
156
157
  },
158
+ loggingOptions: {
159
+ logger: options.loggingOptions?.logger ?? logger.info
160
+ },
157
161
  };
158
162
 
159
163
  const client = getClient(baseUrl, options) as testClient;
@@ -165,6 +169,7 @@ const buildDefaultReturn = (hasDefault: boolean) => {
165
169
  const buildPathReturn_WithDefault = () => {
166
170
  return `
167
171
  import { getClient, ClientOptions } from "@azure-rest/core-client";
172
+ import { logger } from "./logger";
168
173
  import { testClient } from "./clientDefinitions";
169
174
 
170
175
  export interface testClientOptions extends ClientOptions {
@@ -173,8 +178,8 @@ const buildPathReturn_WithDefault = () => {
173
178
 
174
179
  /**
175
180
  * Initialize a new instance of \`testClient\`
176
- * @param endpoint type: string, The endpoint to use.
177
- * @param options type: testClientOptions, the parameter for all optional parameters
181
+ * @param endpoint - The endpoint to use.
182
+ * @param options - the parameter for all optional parameters
178
183
  */
179
184
  export default function createClient(
180
185
  endpoint: string,
@@ -193,6 +198,9 @@ const buildPathReturn_WithDefault = () => {
193
198
  userAgentOptions: {
194
199
  userAgentPrefix,
195
200
  },
201
+ loggingOptions: {
202
+ logger: options.loggingOptions?.logger ?? logger.info
203
+ },
196
204
  };
197
205
 
198
206
  const client = getClient(baseUrl, options) as testClient;
@@ -204,13 +212,14 @@ const buildPathReturn_WithDefault = () => {
204
212
  const buildPathReturn_WithoutDefault = () => {
205
213
  return `
206
214
  import { getClient, ClientOptions } from "@azure-rest/core-client";
215
+ import { logger } from "./logger";
207
216
  import { testClient } from "./clientDefinitions";
208
217
 
209
218
  /**
210
219
  * Initialize a new instance of \`testClient\`
211
- * @param endpoint type: string, The endpoint to use.
212
- * @param apiVersion type: string, Api Version Possible values: 2022-05-15-preview
213
- * @param options type: ClientOptions, the parameter for all optional parameters
220
+ * @param endpoint - The endpoint to use.
221
+ * @param apiVersion - Api Version Possible values: 2022-05-15-preview
222
+ * @param options - the parameter for all optional parameters
214
223
  */
215
224
  export default function createClient(
216
225
  endpoint: string,
@@ -229,6 +238,9 @@ const buildPathReturn_WithoutDefault = () => {
229
238
  userAgentOptions: {
230
239
  userAgentPrefix,
231
240
  },
241
+ loggingOptions: {
242
+ logger: options.loggingOptions?.logger ?? logger.info
243
+ },
232
244
  };
233
245
 
234
246
  const client = getClient(baseUrl, options) as testClient;
@@ -18,11 +18,12 @@ describe("Client Factory generation", () => {
18
18
  models!.content,
19
19
  `
20
20
  import { getClient, ClientOptions } from "@azure-rest/core-client";
21
+ import { logger } from "./logger";
21
22
  import { testClient } from "./clientDefinitions";
22
23
 
23
24
  /**
24
25
  * Initialize a new instance of \`testClient\`
25
- * @param options type: ClientOptions, the parameter for all optional parameters
26
+ * @param options - the parameter for all optional parameters
26
27
  */
27
28
  export default function createClient(options: ClientOptions = {}): testClient {
28
29
  const baseUrl = options.baseUrl ?? \`localhost\`;
@@ -37,6 +38,9 @@ describe("Client Factory generation", () => {
37
38
  userAgentOptions: {
38
39
  userAgentPrefix,
39
40
  },
41
+ loggingOptions: {
42
+ logger: options.loggingOptions?.logger ?? logger.info
43
+ },
40
44
  };
41
45
 
42
46
  const client = getClient(baseUrl, options) as testClient;
@@ -65,12 +69,13 @@ describe("Client Factory generation", () => {
65
69
  models!.content,
66
70
  `
67
71
  import { getClient, ClientOptions } from "@azure-rest/core-client";
72
+ import { logger } from "./logger";
68
73
  import { testClient } from "./clientDefinitions";
69
74
 
70
75
  /**
71
76
  * Initialize a new instance of \`testClient\`
72
- * @param endpoint type: string, The endpoint to use.
73
- * @param options type: ClientOptions, the parameter for all optional parameters
77
+ * @param endpoint - The endpoint to use.
78
+ * @param options - the parameter for all optional parameters
74
79
  */
75
80
  export default function createClient(
76
81
  endpoint: string,
@@ -88,6 +93,9 @@ describe("Client Factory generation", () => {
88
93
  userAgentOptions: {
89
94
  userAgentPrefix,
90
95
  },
96
+ loggingOptions: {
97
+ logger: options.loggingOptions?.logger ?? logger.info
98
+ },
91
99
  };
92
100
 
93
101
  const client = getClient(baseUrl, options) as testClient;
@@ -129,13 +137,14 @@ describe("Client Factory generation", () => {
129
137
  models!.content,
130
138
  `
131
139
  import { getClient, ClientOptions } from "@azure-rest/core-client";
140
+ import { logger } from "./logger";
132
141
  import { testClient } from "./clientDefinitions";
133
142
 
134
143
  /**
135
144
  * Initialize a new instance of \`testClient\`
136
- * @param endpoint type: string, The endpoint to use.
137
- * @param version type: "V1"|"V2", The version to use
138
- * @param options type: ClientOptions, the parameter for all optional parameters
145
+ * @param endpoint - The endpoint to use.
146
+ * @param version - The version to use
147
+ * @param options - the parameter for all optional parameters
139
148
  */
140
149
  export default function createClient(
141
150
  endpoint: string,
@@ -154,6 +163,9 @@ describe("Client Factory generation", () => {
154
163
  userAgentOptions: {
155
164
  userAgentPrefix,
156
165
  },
166
+ loggingOptions: {
167
+ logger: options.loggingOptions?.logger ?? logger.info
168
+ },
157
169
  };
158
170
 
159
171
  const client = getClient(baseUrl, options) as testClient;
@@ -191,13 +203,14 @@ describe("Client Factory generation", () => {
191
203
  models!.content,
192
204
  `
193
205
  import { getClient, ClientOptions } from "@azure-rest/core-client";
206
+ import { logger } from "./logger";
194
207
  import { testClient } from "./clientDefinitions";
195
208
 
196
209
  /**
197
210
  * Initialize a new instance of \`testClient\`
198
- * @param endpoint type: string, The endpoint to use.
199
- * @param version type: string, The version to use. Possible values: v1.1
200
- * @param options type: ClientOptions, the parameter for all optional parameters
211
+ * @param endpoint - The endpoint to use.
212
+ * @param version - The version to use. Possible values: v1.1
213
+ * @param options - the parameter for all optional parameters
201
214
  */
202
215
  export default function createClient(
203
216
  endpoint: string,
@@ -216,6 +229,9 @@ describe("Client Factory generation", () => {
216
229
  userAgentOptions: {
217
230
  userAgentPrefix,
218
231
  },
232
+ loggingOptions: {
233
+ logger: options.loggingOptions?.logger ?? logger.info
234
+ },
219
235
  };
220
236
 
221
237
  const client = getClient(baseUrl, options) as testClient;
@@ -238,12 +254,13 @@ describe("Client Factory generation", () => {
238
254
  models!.content,
239
255
  `
240
256
  import { getClient, ClientOptions } from "@azure-rest/core-client";
257
+ import { logger } from "./logger";
241
258
  import { testClient } from "./clientDefinitions";
242
259
 
243
260
  /**
244
261
  * Initialize a new instance of \`testClient\`
245
- * @param endpoint type: string, The parameter endpoint
246
- * @param options type: ClientOptions, the parameter for all optional parameters
262
+ * @param endpoint - The parameter endpoint
263
+ * @param options - the parameter for all optional parameters
247
264
  */
248
265
  export default function createClient(endpoint: string, options: ClientOptions = {}): testClient {
249
266
  const baseUrl = options.baseUrl ?? \`\${endpoint}\`;
@@ -258,6 +275,9 @@ describe("Client Factory generation", () => {
258
275
  userAgentOptions: {
259
276
  userAgentPrefix,
260
277
  },
278
+ loggingOptions: {
279
+ logger: options.loggingOptions?.logger ?? logger.info
280
+ },
261
281
  };
262
282
 
263
283
  const client = getClient(baseUrl, options) as testClient;
@@ -286,12 +306,13 @@ describe("Client Factory generation", () => {
286
306
  models!.content,
287
307
  `
288
308
  import { getClient, ClientOptions } from "@azure-rest/core-client";
309
+ import { logger } from "./logger";
289
310
  import { testClient } from "./clientDefinitions";
290
311
 
291
312
  /**
292
313
  * Initialize a new instance of \`testClient\`
293
- * @param endpoint type: string, The parameter endpoint
294
- * @param options type: ClientOptions, the parameter for all optional parameters
314
+ * @param endpoint - The parameter endpoint
315
+ * @param options - the parameter for all optional parameters
295
316
  */
296
317
  export default function createClient(endpoint: string, options: ClientOptions = {}): testClient {
297
318
  const baseUrl = options.baseUrl ?? \`\${endpoint}\`;
@@ -306,6 +327,9 @@ describe("Client Factory generation", () => {
306
327
  userAgentOptions: {
307
328
  userAgentPrefix,
308
329
  },
330
+ loggingOptions: {
331
+ logger: options.loggingOptions?.logger ?? logger.info
332
+ },
309
333
  };
310
334
 
311
335
  const client = getClient(baseUrl, options) as testClient;
@@ -333,14 +357,15 @@ describe("Client Factory generation", () => {
333
357
  models!.content,
334
358
  `
335
359
  import { getClient, ClientOptions } from "@azure-rest/core-client";
360
+ import { logger } from "./logger";
336
361
  import { TokenCredential, KeyCredential } from "@azure/core-auth";
337
362
  import { testClient } from "./clientDefinitions";
338
363
 
339
364
  /**
340
365
  * Initialize a new instance of \`testClient\`
341
- * @param endpoint type: string, The parameter endpoint
342
- * @param credentials type: TokenCredential|KeyCredential, uniquely identify client credential
343
- * @param options type: ClientOptions, the parameter for all optional parameters
366
+ * @param endpoint - The parameter endpoint
367
+ * @param credentials - uniquely identify client credential
368
+ * @param options - the parameter for all optional parameters
344
369
  */
345
370
  export default function createClient(endpoint: string, credentials: TokenCredential | KeyCredential, options: ClientOptions = {}): testClient {
346
371
  const baseUrl = options.baseUrl ?? \`\${endpoint}\`;
@@ -363,6 +388,9 @@ describe("Client Factory generation", () => {
363
388
  userAgentOptions: {
364
389
  userAgentPrefix,
365
390
  },
391
+ loggingOptions: {
392
+ logger: options.loggingOptions?.logger ?? logger.info
393
+ },
366
394
  };
367
395
 
368
396
  const client = getClient(baseUrl, credentials, options) as testClient;