@azure-tools/typespec-go 0.8.6 → 0.8.8

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 (203) hide show
  1. package/dist/codegen.go/src/core/clientFactory.d.ts +12 -0
  2. package/dist/codegen.go/src/core/clientFactory.d.ts.map +1 -0
  3. package/dist/codegen.go/src/{clientFactory.js → core/clientFactory.js} +21 -13
  4. package/dist/codegen.go/src/core/clientFactory.js.map +1 -0
  5. package/dist/codegen.go/src/core/cloudConfig.d.ts +11 -0
  6. package/dist/codegen.go/src/core/cloudConfig.d.ts.map +1 -0
  7. package/dist/codegen.go/src/{cloudConfig.js → core/cloudConfig.js} +7 -15
  8. package/dist/codegen.go/src/core/cloudConfig.js.map +1 -0
  9. package/dist/codegen.go/src/core/constants.d.ts +9 -0
  10. package/dist/codegen.go/src/core/constants.d.ts.map +1 -0
  11. package/dist/codegen.go/src/{constants.js → core/constants.js} +10 -5
  12. package/dist/codegen.go/src/core/constants.js.map +1 -0
  13. package/dist/codegen.go/src/{errors.d.ts → core/errors.d.ts} +1 -1
  14. package/dist/codegen.go/src/core/errors.d.ts.map +1 -0
  15. package/dist/codegen.go/src/core/errors.js.map +1 -0
  16. package/dist/codegen.go/src/core/example.d.ts +16 -0
  17. package/dist/codegen.go/src/core/example.d.ts.map +1 -0
  18. package/dist/codegen.go/src/{example.js → core/example.js} +78 -47
  19. package/dist/codegen.go/src/core/example.js.map +1 -0
  20. package/dist/codegen.go/src/core/gomod.d.ts +12 -0
  21. package/dist/codegen.go/src/core/gomod.d.ts.map +1 -0
  22. package/dist/codegen.go/src/{gomod.js → core/gomod.js} +14 -11
  23. package/dist/codegen.go/src/core/gomod.js.map +1 -0
  24. package/dist/codegen.go/src/{helpers.d.ts → core/helpers.d.ts} +14 -10
  25. package/dist/codegen.go/src/core/helpers.d.ts.map +1 -0
  26. package/dist/codegen.go/src/{helpers.js → core/helpers.js} +40 -48
  27. package/dist/codegen.go/src/core/helpers.js.map +1 -0
  28. package/dist/codegen.go/src/core/imports.d.ts +53 -0
  29. package/dist/codegen.go/src/core/imports.d.ts.map +1 -0
  30. package/dist/codegen.go/src/core/imports.js +140 -0
  31. package/dist/codegen.go/src/core/imports.js.map +1 -0
  32. package/dist/codegen.go/src/core/interfaces.d.ts +9 -0
  33. package/dist/codegen.go/src/core/interfaces.d.ts.map +1 -0
  34. package/dist/codegen.go/src/{interfaces.js → core/interfaces.js} +10 -5
  35. package/dist/codegen.go/src/core/interfaces.js.map +1 -0
  36. package/dist/codegen.go/src/core/license.d.ts +9 -0
  37. package/dist/codegen.go/src/core/license.d.ts.map +1 -0
  38. package/dist/codegen.go/src/{license.js → core/license.js} +4 -13
  39. package/dist/codegen.go/src/core/license.js.map +1 -0
  40. package/dist/codegen.go/src/core/metadata.d.ts +3 -0
  41. package/dist/codegen.go/src/core/metadata.d.ts.map +1 -0
  42. package/dist/codegen.go/src/core/metadata.js.map +1 -0
  43. package/dist/codegen.go/src/core/models.d.ts +14 -0
  44. package/dist/codegen.go/src/core/models.d.ts.map +1 -0
  45. package/dist/codegen.go/src/{models.js → core/models.js} +177 -92
  46. package/dist/codegen.go/src/core/models.js.map +1 -0
  47. package/dist/codegen.go/src/core/operations.d.ts +17 -0
  48. package/dist/codegen.go/src/core/operations.d.ts.map +1 -0
  49. package/dist/codegen.go/src/{operations.js → core/operations.js} +51 -44
  50. package/dist/codegen.go/src/core/operations.js.map +1 -0
  51. package/dist/codegen.go/src/core/options.d.ts +9 -0
  52. package/dist/codegen.go/src/core/options.d.ts.map +1 -0
  53. package/dist/codegen.go/src/{options.js → core/options.js} +24 -11
  54. package/dist/codegen.go/src/core/options.js.map +1 -0
  55. package/dist/codegen.go/src/core/polymorphics.d.ts +9 -0
  56. package/dist/codegen.go/src/core/polymorphics.d.ts.map +1 -0
  57. package/dist/codegen.go/src/{polymorphics.js → core/polymorphics.js} +21 -14
  58. package/dist/codegen.go/src/core/polymorphics.js.map +1 -0
  59. package/dist/codegen.go/src/core/responses.d.ts +14 -0
  60. package/dist/codegen.go/src/core/responses.d.ts.map +1 -0
  61. package/dist/codegen.go/src/{responses.js → core/responses.js} +46 -17
  62. package/dist/codegen.go/src/core/responses.js.map +1 -0
  63. package/dist/codegen.go/src/core/time.d.ts +14 -0
  64. package/dist/codegen.go/src/core/time.d.ts.map +1 -0
  65. package/dist/codegen.go/src/{time.js → core/time.js} +65 -27
  66. package/dist/codegen.go/src/core/time.js.map +1 -0
  67. package/dist/codegen.go/src/core/version.d.ts +10 -0
  68. package/dist/codegen.go/src/core/version.d.ts.map +1 -0
  69. package/dist/codegen.go/src/{version.js → core/version.js} +4 -12
  70. package/dist/codegen.go/src/core/version.js.map +1 -0
  71. package/dist/codegen.go/src/core/xmlAdditionalProps.d.ts +9 -0
  72. package/dist/codegen.go/src/core/xmlAdditionalProps.d.ts.map +1 -0
  73. package/dist/codegen.go/src/{xmlAdditionalProps.js → core/xmlAdditionalProps.js} +12 -8
  74. package/dist/codegen.go/src/core/xmlAdditionalProps.js.map +1 -0
  75. package/dist/codegen.go/src/emitter.d.ts +42 -0
  76. package/dist/codegen.go/src/emitter.d.ts.map +1 -0
  77. package/dist/codegen.go/src/emitter.js +291 -0
  78. package/dist/codegen.go/src/emitter.js.map +1 -0
  79. package/dist/codegen.go/src/fake/factory.d.ts +8 -1
  80. package/dist/codegen.go/src/fake/factory.d.ts.map +1 -1
  81. package/dist/codegen.go/src/fake/factory.js +19 -10
  82. package/dist/codegen.go/src/fake/factory.js.map +1 -1
  83. package/dist/codegen.go/src/fake/internal.d.ts +8 -1
  84. package/dist/codegen.go/src/fake/internal.d.ts.map +1 -1
  85. package/dist/codegen.go/src/fake/internal.js +13 -6
  86. package/dist/codegen.go/src/fake/internal.js.map +1 -1
  87. package/dist/codegen.go/src/fake/servers.d.ts +7 -1
  88. package/dist/codegen.go/src/fake/servers.d.ts.map +1 -1
  89. package/dist/codegen.go/src/fake/servers.js +141 -84
  90. package/dist/codegen.go/src/fake/servers.js.map +1 -1
  91. package/dist/codegen.go/src/index.d.ts +4 -0
  92. package/dist/codegen.go/src/index.d.ts.map +1 -0
  93. package/dist/codegen.go/src/index.js +8 -0
  94. package/dist/codegen.go/src/index.js.map +1 -0
  95. package/dist/codemodel.go/src/client.d.ts +13 -5
  96. package/dist/codemodel.go/src/client.d.ts.map +1 -1
  97. package/dist/codemodel.go/src/client.js +9 -5
  98. package/dist/codemodel.go/src/client.js.map +1 -1
  99. package/dist/codemodel.go/src/{package.d.ts → codeModel.d.ts} +11 -35
  100. package/dist/codemodel.go/src/codeModel.d.ts.map +1 -0
  101. package/dist/codemodel.go/src/codeModel.js +29 -0
  102. package/dist/codemodel.go/src/codeModel.js.map +1 -0
  103. package/dist/codemodel.go/src/index.d.ts +3 -2
  104. package/dist/codemodel.go/src/index.d.ts.map +1 -1
  105. package/dist/codemodel.go/src/index.js +3 -2
  106. package/dist/codemodel.go/src/index.js.map +1 -1
  107. package/dist/codemodel.go/src/module.d.ts +99 -0
  108. package/dist/codemodel.go/src/module.d.ts.map +1 -0
  109. package/dist/codemodel.go/src/module.js +75 -0
  110. package/dist/codemodel.go/src/module.js.map +1 -0
  111. package/dist/codemodel.go/src/param.d.ts +4 -1
  112. package/dist/codemodel.go/src/param.d.ts.map +1 -1
  113. package/dist/codemodel.go/src/param.js +2 -1
  114. package/dist/codemodel.go/src/param.js.map +1 -1
  115. package/dist/codemodel.go/src/result.d.ts +1 -0
  116. package/dist/codemodel.go/src/result.d.ts.map +1 -1
  117. package/dist/codemodel.go/src/result.js +1 -0
  118. package/dist/codemodel.go/src/result.js.map +1 -1
  119. package/dist/codemodel.go/src/type.d.ts +23 -13
  120. package/dist/codemodel.go/src/type.d.ts.map +1 -1
  121. package/dist/codemodel.go/src/type.js +50 -28
  122. package/dist/codemodel.go/src/type.js.map +1 -1
  123. package/dist/typespec-go/src/emitter.d.ts.map +1 -1
  124. package/dist/typespec-go/src/emitter.js +39 -168
  125. package/dist/typespec-go/src/emitter.js.map +1 -1
  126. package/dist/typespec-go/src/tcgcadapter/adapter.d.ts +23 -2
  127. package/dist/typespec-go/src/tcgcadapter/adapter.d.ts.map +1 -1
  128. package/dist/typespec-go/src/tcgcadapter/adapter.js +98 -68
  129. package/dist/typespec-go/src/tcgcadapter/adapter.js.map +1 -1
  130. package/dist/typespec-go/src/tcgcadapter/clients.d.ts +18 -9
  131. package/dist/typespec-go/src/tcgcadapter/clients.d.ts.map +1 -1
  132. package/dist/typespec-go/src/tcgcadapter/clients.js +160 -110
  133. package/dist/typespec-go/src/tcgcadapter/clients.js.map +1 -1
  134. package/dist/typespec-go/src/tcgcadapter/errors.d.ts +1 -1
  135. package/dist/typespec-go/src/tcgcadapter/errors.d.ts.map +1 -1
  136. package/dist/typespec-go/src/tcgcadapter/errors.js +2 -1
  137. package/dist/typespec-go/src/tcgcadapter/errors.js.map +1 -1
  138. package/dist/typespec-go/src/tcgcadapter/types.d.ts +18 -4
  139. package/dist/typespec-go/src/tcgcadapter/types.d.ts.map +1 -1
  140. package/dist/typespec-go/src/tcgcadapter/types.js +50 -36
  141. package/dist/typespec-go/src/tcgcadapter/types.js.map +1 -1
  142. package/package.json +26 -26
  143. package/dist/codegen.go/src/clientFactory.d.ts +0 -3
  144. package/dist/codegen.go/src/clientFactory.d.ts.map +0 -1
  145. package/dist/codegen.go/src/clientFactory.js.map +0 -1
  146. package/dist/codegen.go/src/cloudConfig.d.ts +0 -10
  147. package/dist/codegen.go/src/cloudConfig.d.ts.map +0 -1
  148. package/dist/codegen.go/src/cloudConfig.js.map +0 -1
  149. package/dist/codegen.go/src/constants.d.ts +0 -3
  150. package/dist/codegen.go/src/constants.d.ts.map +0 -1
  151. package/dist/codegen.go/src/constants.js.map +0 -1
  152. package/dist/codegen.go/src/errors.d.ts.map +0 -1
  153. package/dist/codegen.go/src/errors.js.map +0 -1
  154. package/dist/codegen.go/src/example.d.ts +0 -8
  155. package/dist/codegen.go/src/example.d.ts.map +0 -1
  156. package/dist/codegen.go/src/example.js.map +0 -1
  157. package/dist/codegen.go/src/gomod.d.ts +0 -3
  158. package/dist/codegen.go/src/gomod.d.ts.map +0 -1
  159. package/dist/codegen.go/src/gomod.js.map +0 -1
  160. package/dist/codegen.go/src/helpers.d.ts.map +0 -1
  161. package/dist/codegen.go/src/helpers.js.map +0 -1
  162. package/dist/codegen.go/src/imports.d.ts +0 -11
  163. package/dist/codegen.go/src/imports.d.ts.map +0 -1
  164. package/dist/codegen.go/src/imports.js +0 -65
  165. package/dist/codegen.go/src/imports.js.map +0 -1
  166. package/dist/codegen.go/src/interfaces.d.ts +0 -3
  167. package/dist/codegen.go/src/interfaces.d.ts.map +0 -1
  168. package/dist/codegen.go/src/interfaces.js.map +0 -1
  169. package/dist/codegen.go/src/license.d.ts +0 -10
  170. package/dist/codegen.go/src/license.d.ts.map +0 -1
  171. package/dist/codegen.go/src/license.js.map +0 -1
  172. package/dist/codegen.go/src/metadata.d.ts +0 -3
  173. package/dist/codegen.go/src/metadata.d.ts.map +0 -1
  174. package/dist/codegen.go/src/metadata.js.map +0 -1
  175. package/dist/codegen.go/src/models.d.ts +0 -8
  176. package/dist/codegen.go/src/models.d.ts.map +0 -1
  177. package/dist/codegen.go/src/models.js.map +0 -1
  178. package/dist/codegen.go/src/operations.d.ts +0 -9
  179. package/dist/codegen.go/src/operations.d.ts.map +0 -1
  180. package/dist/codegen.go/src/operations.js.map +0 -1
  181. package/dist/codegen.go/src/options.d.ts +0 -3
  182. package/dist/codegen.go/src/options.d.ts.map +0 -1
  183. package/dist/codegen.go/src/options.js.map +0 -1
  184. package/dist/codegen.go/src/polymorphics.d.ts +0 -3
  185. package/dist/codegen.go/src/polymorphics.d.ts.map +0 -1
  186. package/dist/codegen.go/src/polymorphics.js.map +0 -1
  187. package/dist/codegen.go/src/responses.d.ts +0 -7
  188. package/dist/codegen.go/src/responses.d.ts.map +0 -1
  189. package/dist/codegen.go/src/responses.js.map +0 -1
  190. package/dist/codegen.go/src/time.d.ts +0 -8
  191. package/dist/codegen.go/src/time.d.ts.map +0 -1
  192. package/dist/codegen.go/src/time.js.map +0 -1
  193. package/dist/codegen.go/src/version.d.ts +0 -10
  194. package/dist/codegen.go/src/version.d.ts.map +0 -1
  195. package/dist/codegen.go/src/version.js.map +0 -1
  196. package/dist/codegen.go/src/xmlAdditionalProps.d.ts +0 -3
  197. package/dist/codegen.go/src/xmlAdditionalProps.d.ts.map +0 -1
  198. package/dist/codegen.go/src/xmlAdditionalProps.js.map +0 -1
  199. package/dist/codemodel.go/src/package.d.ts.map +0 -1
  200. package/dist/codemodel.go/src/package.js +0 -78
  201. package/dist/codemodel.go/src/package.js.map +0 -1
  202. /package/dist/codegen.go/src/{errors.js → core/errors.js} +0 -0
  203. /package/dist/codegen.go/src/{metadata.js → core/metadata.js} +0 -0
@@ -5,11 +5,11 @@
5
5
  import { camelCase, capitalize, uncapitalize } from '@azure-tools/codegen';
6
6
  import { values } from '@azure-tools/linq';
7
7
  import * as go from '../../../codemodel.go/src/index.js';
8
- import * as helpers from '../helpers.js';
9
- import { ImportManager } from '../imports.js';
10
- import { fixUpMethodName } from '../operations.js';
8
+ import * as helpers from '../core/helpers.js';
9
+ import { ImportManager } from '../core/imports.js';
10
+ import { fixUpMethodName } from '../core/operations.js';
11
11
  import { generateServerInternal, RequiredHelpers } from './internal.js';
12
- import { CodegenError } from '../errors.js';
12
+ import { CodegenError } from '../core/errors.js';
13
13
  // contains the generated content for all servers and the required helpers
14
14
  export class ServerContent {
15
15
  servers;
@@ -34,16 +34,21 @@ export function getServerName(client) {
34
34
  // for the fake server, we use the suffix Server instead of Client
35
35
  return capitalize(client.name.replace(/[C|c]lient$/, 'Server'));
36
36
  }
37
- export async function generateServers(codeModel) {
37
+ /**
38
+ * Generates the contents for the *_server.go files.
39
+ *
40
+ * @param pkg contains the package content
41
+ * @returns the contents to generate or an empty object
42
+ */
43
+ export function generateServers(pkg) {
38
44
  const operations = new Array();
39
- const clientPkg = codeModel.packageName;
40
- for (const client of values(codeModel.clients)) {
45
+ for (const client of values(pkg.parent.clients)) {
41
46
  if (client.clientAccessors.length === 0 && values(client.methods).all(method => { return helpers.isMethodInternal(method); })) {
42
47
  // client has no client accessors and no exported methods, skip it
43
48
  continue;
44
49
  }
45
50
  // the list of packages to import
46
- const imports = new ImportManager();
51
+ const imports = new ImportManager(pkg);
47
52
  // add standard imports
48
53
  imports.add('errors');
49
54
  imports.add('fmt');
@@ -51,7 +56,7 @@ export async function generateServers(codeModel) {
51
56
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime');
52
57
  const serverName = getServerName(client);
53
58
  let content;
54
- content = `// ${serverName} is a fake server for instances of the ${clientPkg}.${client.name} type.\n`;
59
+ content = `// ${serverName} is a fake server for instances of the ${go.getTypeDeclaration(client, pkg)} type.\n`;
55
60
  content += `type ${serverName} struct{\n`;
56
61
  // we might remove some operations from the list
57
62
  const finalMethods = new Array();
@@ -79,17 +84,17 @@ export async function generateServers(codeModel) {
79
84
  switch (method.kind) {
80
85
  case 'lroMethod':
81
86
  case 'lroPageableMethod':
82
- let respType = `${clientPkg}.${method.returns.name}`;
87
+ let respType = go.getTypeDeclaration(method.returns, pkg);
83
88
  if (method.kind === 'lroPageableMethod') {
84
- respType = `azfake.PagerResponder[${clientPkg}.${method.returns.name}]`;
89
+ respType = `azfake.PagerResponder[${respType}]`;
85
90
  }
86
91
  serverResponse = `resp azfake.PollerResponder[${respType}], errResp azfake.ErrorResponder`;
87
92
  break;
88
93
  case 'method':
89
- serverResponse = `resp azfake.Responder[${clientPkg}.${method.returns.name}], errResp azfake.ErrorResponder`;
94
+ serverResponse = `resp azfake.Responder[${go.getTypeDeclaration(method.returns, pkg)}], errResp azfake.ErrorResponder`;
90
95
  break;
91
96
  case 'pageableMethod':
92
- serverResponse = `resp azfake.PagerResponder[${clientPkg}.${method.returns.name}]`;
97
+ serverResponse = `resp azfake.PagerResponder[${go.getTypeDeclaration(method.returns, pkg)}]`;
93
98
  break;
94
99
  }
95
100
  const operationName = fixUpMethodName(method);
@@ -103,7 +108,7 @@ export async function generateServers(codeModel) {
103
108
  successCodes.push(`${helpers.formatStatusCode(httpStatus)} (no return type)`);
104
109
  continue;
105
110
  }
106
- successCodes.push(`${helpers.formatStatusCode(httpStatus)} (returns ${go.getTypeDeclaration(result, clientPkg)})`);
111
+ successCodes.push(`${helpers.formatStatusCode(httpStatus)} (returns ${go.getTypeDeclaration(result, pkg)})`);
107
112
  }
108
113
  content += '\t// HTTP status codes to indicate success:\n';
109
114
  for (const successCode of successCodes) {
@@ -116,7 +121,7 @@ export async function generateServers(codeModel) {
116
121
  }
117
122
  content += `\t// HTTP status codes to indicate success: ${successCodes.join(', ')}\n`;
118
123
  }
119
- content += `\t${operationName} func(${getAPIParametersSig(method, imports, clientPkg)}) (${serverResponse})\n\n`;
124
+ content += `\t${operationName} func(${getAPIParametersSig(pkg, method, imports)}) (${serverResponse})\n\n`;
120
125
  finalMethods.push(method);
121
126
  switch (method.kind) {
122
127
  case 'lroMethod':
@@ -132,7 +137,7 @@ export async function generateServers(codeModel) {
132
137
  ///////////////////////////////////////////////////////////////////////////
133
138
  const serverTransport = `${serverName}Transport`;
134
139
  content += `// New${serverTransport} creates a new instance of ${serverTransport} with the provided implementation.\n`;
135
- content += `// The returned ${serverTransport} instance is connected to an instance of ${clientPkg}.${client.name} via the\n`;
140
+ content += `// The returned ${serverTransport} instance is connected to an instance of ${go.getTypeDeclaration(client, pkg)} via the\n`;
136
141
  content += '// azcore.ClientOptions.Transporter field in the client\'s constructor parameters.\n';
137
142
  content += `func New${serverTransport}(srv *${serverName}) *${serverTransport} {\n`;
138
143
  if (countLROs === 0 && countPagers === 0) {
@@ -141,12 +146,12 @@ export async function generateServers(codeModel) {
141
146
  else {
142
147
  content += `\treturn &${serverTransport}{\n\t\tsrv: srv,\n`;
143
148
  for (const method of values(finalMethods)) {
144
- let respType = `${clientPkg}.${method.returns.name}`;
149
+ let respType = go.getTypeDeclaration(method.returns, pkg);
145
150
  switch (method.kind) {
146
151
  case 'lroMethod':
147
152
  case 'lroPageableMethod':
148
153
  if (method.kind === 'lroPageableMethod') {
149
- respType = `azfake.PagerResponder[${clientPkg}.${method.returns.name}]`;
154
+ respType = `azfake.PagerResponder[${go.getTypeDeclaration(method.returns, pkg)}]`;
150
155
  }
151
156
  requiredHelpers.tracker = true;
152
157
  content += `\t\t${uncapitalize(fixUpMethodName(method))}: newTracker[azfake.PollerResponder[${respType}]](),\n`;
@@ -159,7 +164,7 @@ export async function generateServers(codeModel) {
159
164
  }
160
165
  content += '\t}\n}\n\n';
161
166
  }
162
- content += `// ${serverTransport} connects instances of ${clientPkg}.${client.name} to instances of ${serverName}.\n`;
167
+ content += `// ${serverTransport} connects instances of ${go.getTypeDeclaration(client, pkg)} to instances of ${serverName}.\n`;
163
168
  content += `// Don't use this type directly, use New${serverTransport} instead.\n`;
164
169
  content += `type ${serverTransport} struct {\n`;
165
170
  content += `\tsrv *${serverName}\n`;
@@ -175,19 +180,19 @@ export async function generateServers(codeModel) {
175
180
  }
176
181
  for (const method of values(finalMethods)) {
177
182
  // create state machines for any pager/poller operations
178
- let respType = `${clientPkg}.${method.returns.name}`;
183
+ let respType = go.getTypeDeclaration(method.returns, pkg);
179
184
  switch (method.kind) {
180
185
  case 'lroMethod':
181
186
  case 'lroPageableMethod':
182
187
  if (method.kind === 'lroPageableMethod') {
183
- respType = `azfake.PagerResponder[${clientPkg}.${method.returns.name}]`;
188
+ respType = `azfake.PagerResponder[${go.getTypeDeclaration(method.returns, pkg)}]`;
184
189
  }
185
190
  requiredHelpers.tracker = true;
186
191
  content += `\t${uncapitalize(fixUpMethodName(method))} *tracker[azfake.PollerResponder[${respType}]]\n`;
187
192
  break;
188
193
  case 'pageableMethod':
189
194
  requiredHelpers.tracker = true;
190
- content += `\t${uncapitalize(fixUpMethodName(method))} *tracker[azfake.PagerResponder[${clientPkg}.${method.returns.name}]]\n`;
195
+ content += `\t${uncapitalize(fixUpMethodName(method))} *tracker[azfake.PagerResponder[${go.getTypeDeclaration(method.returns, pkg)}]]\n`;
191
196
  break;
192
197
  }
193
198
  }
@@ -195,19 +200,19 @@ export async function generateServers(codeModel) {
195
200
  content += generateServerTransportDo(serverTransport, client, finalSubClients, finalMethods);
196
201
  content += generateServerTransportClientDispatch(serverTransport, finalSubClients, imports);
197
202
  content += generateServerTransportMethodDispatch(serverTransport, client, finalMethods);
198
- content += generateServerTransportMethods(codeModel, serverTransport, finalMethods, imports);
203
+ content += generateServerTransportMethods(pkg, serverTransport, finalMethods, imports);
199
204
  content += `// set this to conditionally intercept incoming requests to ${serverTransport}\n`;
200
205
  content += `var ${getTransportInterceptorVarName(client)} interface {\n`;
201
206
  content += '\t// Do returns true if the server transport should use the returned response/error\n';
202
207
  content += '\tDo(*http.Request) (*http.Response, error, bool)\n}\n';
203
208
  ///////////////////////////////////////////////////////////////////////////
204
209
  // stitch everything together
205
- let text = helpers.contentPreamble(codeModel, true, 'fake');
210
+ let text = helpers.contentPreamble(pkg);
206
211
  text += imports.text();
207
212
  text += content;
208
213
  operations.push(new OperationGroupContent(serverName, text));
209
214
  }
210
- return new ServerContent(operations, generateServerInternal(codeModel, requiredHelpers));
215
+ return new ServerContent(operations, generateServerInternal(pkg, requiredHelpers));
211
216
  }
212
217
  function getTransportInterceptorVarName(client) {
213
218
  return `${camelCase(getServerName(client))}TransportInterceptor`;
@@ -294,11 +299,20 @@ function generateServerTransportMethodDispatch(serverTransport, client, finalMet
294
299
  content += '\t}\n}\n\n';
295
300
  return content;
296
301
  }
297
- function generateServerTransportMethods(codeModel, serverTransport, finalMethods, imports) {
302
+ /**
303
+ * generates the server transport methods for a fake server transport
304
+ *
305
+ * @param pkg contains the package content
306
+ * @param serverTransport the name of the server transport type
307
+ * @param finalMethods the array of methods for which to generate the fake transports
308
+ * @param imports the import manager currently in scope
309
+ * @returns the text for the server transport methods
310
+ */
311
+ function generateServerTransportMethods(pkg, serverTransport, finalMethods, imports) {
298
312
  if (finalMethods.length === 0) {
299
313
  return '';
300
314
  }
301
- imports.add(helpers.getParentImport(codeModel));
315
+ imports.addForPkg(pkg.parent);
302
316
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/fake', 'azfake');
303
317
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server');
304
318
  const receiverName = serverTransport[0].toLowerCase();
@@ -311,10 +325,10 @@ function generateServerTransportMethods(codeModel, serverTransport, finalMethods
311
325
  case 'lroMethod':
312
326
  case 'lroPageableMethod':
313
327
  // must check LRO before pager as you can have paged LROs
314
- content += dispatchForLROBody(codeModel.packageName, receiverName, method, imports);
328
+ content += dispatchForLROBody(pkg, receiverName, method, imports);
315
329
  break;
316
330
  case 'method': {
317
- content += dispatchForOperationBody(codeModel.packageName, receiverName, method, imports);
331
+ content += dispatchForOperationBody(pkg, receiverName, method, imports);
318
332
  content += '\trespContent := server.GetResponseContent(respr)\n';
319
333
  const formattedStatusCodes = helpers.formatStatusCodes(method.httpStatusCodes);
320
334
  content += `\tif !contains([]int{${formattedStatusCodes}}, respContent.HTTPStatus) {\n`;
@@ -380,7 +394,7 @@ function generateServerTransportMethods(codeModel, serverTransport, finalMethods
380
394
  break;
381
395
  }
382
396
  case 'pageableMethod':
383
- content += dispatchForPagerBody(codeModel.packageName, receiverName, method, imports);
397
+ content += dispatchForPagerBody(pkg, receiverName, method, imports);
384
398
  break;
385
399
  default:
386
400
  method;
@@ -389,7 +403,17 @@ function generateServerTransportMethods(codeModel, serverTransport, finalMethods
389
403
  }
390
404
  return content;
391
405
  }
392
- function dispatchForOperationBody(clientPkg, receiverName, method, imports) {
406
+ /**
407
+ * generates the core dispatching logic for a server dispatch method.
408
+ * this code is common to all method types.
409
+ *
410
+ * @param pkg contains the package content
411
+ * @param receiverName the name of the receiver for the dispatch method
412
+ * @param method the method for which to emit dispatching logic
413
+ * @param imports the import manager currently in scope
414
+ * @returns the text for dispatching logic
415
+ */
416
+ function dispatchForOperationBody(pkg, receiverName, method, imports) {
393
417
  const methodParamGroups = helpers.getMethodParamGroups(method);
394
418
  const numPathParams = values(methodParamGroups.pathParams).where((each) => { return !go.isLiteralParameter(each.style); }).count();
395
419
  let content = '';
@@ -437,7 +461,7 @@ function dispatchForOperationBody(clientPkg, receiverName, method, imports) {
437
461
  content += '\treq.Body.Close()\n';
438
462
  break;
439
463
  default: {
440
- let bodyTypeName = go.getTypeDeclaration(bodyParam.type, clientPkg);
464
+ let bodyTypeName = go.getTypeDeclaration(bodyParam.type, pkg);
441
465
  if (bodyParam.type.kind === 'time') {
442
466
  bodyTypeName = bodyParam.type.format;
443
467
  }
@@ -465,15 +489,7 @@ function dispatchForOperationBody(clientPkg, receiverName, method, imports) {
465
489
  content += '\tif err != nil {\n\t\treturn nil, err\n\t}\n';
466
490
  content += '\treader := multipart.NewReader(req.Body, params["boundary"])\n';
467
491
  for (const param of multipartBodyParams) {
468
- let pkgPrefix = '';
469
- switch (param.type.kind) {
470
- case 'constant':
471
- case 'model':
472
- case 'polymorphicModel':
473
- pkgPrefix = clientPkg + '.';
474
- break;
475
- }
476
- content += `\tvar ${param.name} ${pkgPrefix}${go.getTypeDeclaration(param.type)}\n`;
492
+ content += `\tvar ${param.name} ${go.getTypeDeclaration(param.type, pkg)}\n`;
477
493
  }
478
494
  content += '\tfor {\n';
479
495
  content += '\t\tvar part *multipart.Part\n';
@@ -549,7 +565,7 @@ function dispatchForOperationBody(clientPkg, receiverName, method, imports) {
549
565
  from = 'content';
550
566
  break;
551
567
  }
552
- assignedValue = `${clientPkg}.${type.name}(${from})`;
568
+ assignedValue = `${go.getTypeDeclaration(type, pkg)}(${from})`;
553
569
  }
554
570
  else if (type.kind === 'scalar') {
555
571
  switch (type.type) {
@@ -627,11 +643,7 @@ function dispatchForOperationBody(clientPkg, receiverName, method, imports) {
627
643
  }
628
644
  else if (formBodyParams.length > 0) {
629
645
  for (const param of formBodyParams) {
630
- let pkgPrefix = '';
631
- if (param.type.kind === 'constant') {
632
- pkgPrefix = clientPkg + '.';
633
- }
634
- content += `\tvar ${param.name} ${pkgPrefix}${go.getTypeDeclaration(param.type)}\n`;
646
+ content += `\tvar ${param.name} ${go.getTypeDeclaration(param.type, pkg)}\n`;
635
647
  }
636
648
  content += '\tif err := req.ParseForm(); err != nil {\n\t\treturn nil, &nonRetriableError{fmt.Errorf("failed parsing form data: %v", err)}\n\t}\n';
637
649
  content += '\tfor key := range req.Form {\n';
@@ -641,7 +653,7 @@ function dispatchForOperationBody(clientPkg, receiverName, method, imports) {
641
653
  let assignedValue;
642
654
  switch (param.type.kind) {
643
655
  case 'constant':
644
- assignedValue = `${go.getTypeDeclaration(param.type, clientPkg)}(req.FormValue(key))`;
656
+ assignedValue = `${go.getTypeDeclaration(param.type, pkg)}(req.FormValue(key))`;
645
657
  break;
646
658
  case 'string':
647
659
  assignedValue = 'req.FormValue(key)';
@@ -658,19 +670,19 @@ function dispatchForOperationBody(clientPkg, receiverName, method, imports) {
658
670
  // construct the partial body params type and unmarshal it
659
671
  content += '\ttype partialBodyParams struct {\n';
660
672
  for (const partialBodyParam of partialBodyParams) {
661
- content += `\t\t${capitalize(partialBodyParam.name)} ${helpers.star(partialBodyParam.byValue)}${go.getTypeDeclaration(partialBodyParam.type, clientPkg)} \`json:"${partialBodyParam.serializedName}"\`\n`;
673
+ content += `\t\t${capitalize(partialBodyParam.name)} ${helpers.star(partialBodyParam.byValue)}${go.getTypeDeclaration(partialBodyParam.type, pkg)} \`json:"${partialBodyParam.serializedName}"\`\n`;
662
674
  }
663
675
  content += '\t}\n';
664
676
  content += `\tbody, err := server.UnmarshalRequestAs${partialBodyParams[0].format}[partialBodyParams](req)\n`;
665
677
  content += '\tif err != nil {\n\t\treturn nil, err\n\t}\n';
666
678
  }
667
- const result = parseHeaderPathQueryParams(clientPkg, method, imports);
679
+ const result = parseHeaderPathQueryParams(pkg, method, imports);
668
680
  content += result.content;
669
681
  // translate each partial body param to its field within the unmarshalled body
670
682
  for (const partialBodyParam of partialBodyParams) {
671
683
  result.params.set(partialBodyParam.name, `${helpers.star(partialBodyParam.byValue)}body.${capitalize(partialBodyParam.name)}`);
672
684
  }
673
- const apiCall = `:= ${receiverName}.srv.${fixUpMethodName(method)}(${populateApiParams(clientPkg, method, result.params, imports)})`;
685
+ const apiCall = `:= ${receiverName}.srv.${fixUpMethodName(method)}(${populateApiParams(pkg, method, result.params, imports)})`;
674
686
  if (method.kind === 'pageableMethod') {
675
687
  content += `resp ${apiCall}\n`;
676
688
  return content;
@@ -698,13 +710,22 @@ function getMethodStatusCodes(method) {
698
710
  }
699
711
  return statusCodes;
700
712
  }
701
- function dispatchForLROBody(clientPkg, receiverName, method, imports) {
713
+ /**
714
+ * generates the dispatching logic for an LRO server dispatch method
715
+ *
716
+ * @param pkg contains the package contents
717
+ * @param receiverName the name of the receiver for the dispatch method
718
+ * @param method the LRO method for which to emit the dispatch logic
719
+ * @param imports the import manager currently in scope
720
+ * @returns the text for the LRO dispatch logic
721
+ */
722
+ function dispatchForLROBody(pkg, receiverName, method, imports) {
702
723
  const operationName = fixUpMethodName(method);
703
724
  const localVarName = uncapitalize(operationName);
704
725
  const operationStateMachine = `${receiverName}.${uncapitalize(operationName)}`;
705
726
  let content = `\t${localVarName} := ${operationStateMachine}.get(req)\n`;
706
727
  content += `\tif ${localVarName} == nil {\n`;
707
- content += dispatchForOperationBody(clientPkg, receiverName, method, imports);
728
+ content += dispatchForOperationBody(pkg, receiverName, method, imports);
708
729
  content += `\t\t${localVarName} = &respr\n`;
709
730
  content += `\t\t${operationStateMachine}.add(req, ${localVarName})\n`;
710
731
  content += '\t}\n\n';
@@ -719,18 +740,27 @@ function dispatchForLROBody(clientPkg, receiverName, method, imports) {
719
740
  content += '\treturn resp, nil\n';
720
741
  return content;
721
742
  }
722
- function dispatchForPagerBody(clientPkg, receiverName, method, imports) {
743
+ /**
744
+ * generates the dispatching logic for a paged server dispatch method
745
+ *
746
+ * @param pkg contains the package contents
747
+ * @param receiverName the name of the receiver for the dispatch method
748
+ * @param method the pageable method for which to emit the dispatch logic
749
+ * @param imports the import manager currently in scope
750
+ * @returns the text for the pageable dispatch logic
751
+ */
752
+ function dispatchForPagerBody(pkg, receiverName, method, imports) {
723
753
  const operationName = fixUpMethodName(method);
724
754
  const localVarName = uncapitalize(operationName);
725
755
  const operationStateMachine = `${receiverName}.${uncapitalize(operationName)}`;
726
756
  let content = `\t${localVarName} := ${operationStateMachine}.get(req)\n`;
727
757
  content += `\tif ${localVarName} == nil {\n`;
728
- content += dispatchForOperationBody(clientPkg, receiverName, method, imports);
758
+ content += dispatchForOperationBody(pkg, receiverName, method, imports);
729
759
  content += `\t\t${localVarName} = &resp\n`;
730
760
  content += `\t\t${operationStateMachine}.add(req, ${localVarName})\n`;
731
761
  if (method.nextLinkName) {
732
762
  imports.add('github.com/Azure/azure-sdk-for-go/sdk/azcore/to');
733
- content += `\t\tserver.PagerResponderInjectNextLinks(${localVarName}, req, func(page *${clientPkg}.${method.returns.name}, createLink func() string) {\n`;
763
+ content += `\t\tserver.PagerResponderInjectNextLinks(${localVarName}, req, func(page *${go.getTypeDeclaration(method.returns, pkg)}, createLink func() string) {\n`;
734
764
  content += `\t\t\tpage.${method.nextLinkName} = to.Ptr(createLink())\n`;
735
765
  content += '\t\t})\n';
736
766
  }
@@ -769,9 +799,15 @@ function createPathParamsRegex(method, pathParams) {
769
799
  }
770
800
  return urlPath;
771
801
  }
772
- // parses header/path/query params as required.
773
- // returns the parsing code and the params that contain the parsed values.
774
- function parseHeaderPathQueryParams(clientPkg, method, imports) {
802
+ /**
803
+ * parses header/path/query params as required
804
+ *
805
+ * @param pkg contains the package contents
806
+ * @param method the method for which to emit parameter parsing logic
807
+ * @param imports the import manager currently in scope
808
+ * @returns the parsing code and the params that contain the parsed values
809
+ */
810
+ function parseHeaderPathQueryParams(pkg, method, imports) {
775
811
  let content = '';
776
812
  const paramValues = new Map();
777
813
  const createLocalVariableName = function (param, suffix) {
@@ -864,10 +900,10 @@ function parseHeaderPathQueryParams(clientPkg, method, imports) {
864
900
  // for string-based enums, we perform the conversion as part of unescaping
865
901
  requiredHelpers.parseWithCast = true;
866
902
  paramVar = createLocalVariableName(param, 'Param');
867
- content += `\t${paramVar}, err := parseWithCast(${paramValue}, func (v string) (${go.getTypeDeclaration(param.type, clientPkg)}, error) {\n`;
903
+ content += `\t${paramVar}, err := parseWithCast(${paramValue}, func (v string) (${go.getTypeDeclaration(param.type, pkg)}, error) {\n`;
868
904
  content += `\t\tp, unescapeErr := url.${where}Unescape(v)\n`;
869
905
  content += '\t\tif unescapeErr != nil {\n\t\t\treturn "", unescapeErr\n\t\t}\n';
870
- content += `\t\treturn ${go.getTypeDeclaration(param.type, clientPkg)}(p), nil\n\t})\n`;
906
+ content += `\t\treturn ${go.getTypeDeclaration(param.type, pkg)}(p), nil\n\t})\n`;
871
907
  }
872
908
  else {
873
909
  if (go.isRequiredParameter(param.style) &&
@@ -908,10 +944,7 @@ function parseHeaderPathQueryParams(clientPkg, method, imports) {
908
944
  default:
909
945
  throw new CodegenError('InternalError', `unhandled element kind ${param.type.elementType.kind}`);
910
946
  }
911
- let toType = go.getTypeDeclaration(param.type.elementType);
912
- if (param.type.elementType.kind === 'constant') {
913
- toType = `${clientPkg}.${toType}`;
914
- }
947
+ const toType = go.getTypeDeclaration(param.type.elementType, pkg);
915
948
  content += `\t${paramVar} := make([]${toType}, len(${paramValue}))\n`;
916
949
  content += `\tfor i := 0; i < len(${paramValue}); i++ {\n`;
917
950
  let fromVar;
@@ -1092,7 +1125,7 @@ function parseHeaderPathQueryParams(clientPkg, method, imports) {
1092
1125
  parse = emitNumericConversion('v', param.type.type);
1093
1126
  zeroValue = '0';
1094
1127
  }
1095
- const toConstType = go.getTypeDeclaration(param.type, clientPkg);
1128
+ const toConstType = go.getTypeDeclaration(param.type, pkg);
1096
1129
  content += `\t${createLocalVariableName(param, 'Param')}, err := ${parseHelper}(${paramValue}, func(v string) (${toConstType}, error) {\n`;
1097
1130
  content += `\t\tp, parseErr := ${parse}\n`;
1098
1131
  content += `\t\tif parseErr != nil {\n\t\t\treturn ${zeroValue}, parseErr\n\t\t}\n`;
@@ -1103,7 +1136,7 @@ function parseHeaderPathQueryParams(clientPkg, method, imports) {
1103
1136
  // we check this last as it's a superset of the previous conditions
1104
1137
  requiredHelpers.getOptional = true;
1105
1138
  if (param.type.kind === 'constant') {
1106
- paramValue = `${go.getTypeDeclaration(param.type, clientPkg)}(${paramValue})`;
1139
+ paramValue = `${go.getTypeDeclaration(param.type, pkg)}(${paramValue})`;
1107
1140
  }
1108
1141
  content += `\t${createLocalVariableName(param, 'Param')} := getOptional(${paramValue})\n`;
1109
1142
  }
@@ -1111,20 +1144,20 @@ function parseHeaderPathQueryParams(clientPkg, method, imports) {
1111
1144
  // create the param groups and populate their values
1112
1145
  for (const paramGroup of values(paramGroups.keys())) {
1113
1146
  if (paramGroup.required) {
1114
- content += `\t${uncapitalize(paramGroup.name)} := ${clientPkg}.${paramGroup.groupName}{\n`;
1147
+ content += `\t${uncapitalize(paramGroup.name)} := ${go.getTypeDeclaration(paramGroup, pkg)}{\n`;
1115
1148
  for (const param of values(paramGroups.get(paramGroup))) {
1116
- content += `\t\t${capitalize(param.name)}: ${getFinalParamValue(clientPkg, param, paramValues)},\n`;
1149
+ content += `\t\t${capitalize(param.name)}: ${getFinalParamValue(pkg, param, paramValues)},\n`;
1117
1150
  }
1118
1151
  content += '\t}\n';
1119
1152
  }
1120
1153
  else {
1121
- content += `\tvar ${uncapitalize(paramGroup.name)} *${clientPkg}.${paramGroup.groupName}\n`;
1154
+ content += `\tvar ${uncapitalize(paramGroup.name)} *${go.getTypeDeclaration(paramGroup, pkg)}\n`;
1122
1155
  const params = paramGroups.get(paramGroup);
1123
1156
  const paramNilCheck = new Array();
1124
1157
  for (const param of values(params)) {
1125
1158
  // check array before body in case the body is just an array
1126
1159
  if (param.type.kind === 'slice') {
1127
- paramNilCheck.push(`len(${getFinalParamValue(clientPkg, param, paramValues)}) > 0`);
1160
+ paramNilCheck.push(`len(${getFinalParamValue(pkg, param, paramValues)}) > 0`);
1128
1161
  }
1129
1162
  else if (param.kind === 'bodyParam') {
1130
1163
  if (param.bodyFormat === 'binary') {
@@ -1141,17 +1174,17 @@ function parseHeaderPathQueryParams(clientPkg, method, imports) {
1141
1174
  paramNilCheck.push(`!reflect.ValueOf(${param.name}).IsZero()`);
1142
1175
  }
1143
1176
  else {
1144
- paramNilCheck.push(`${getFinalParamValue(clientPkg, param, paramValues)} != nil`);
1177
+ paramNilCheck.push(`${getFinalParamValue(pkg, param, paramValues)} != nil`);
1145
1178
  }
1146
1179
  }
1147
1180
  content += `\tif ${paramNilCheck.join(' || ')} {\n`;
1148
- content += `\t\t${uncapitalize(paramGroup.name)} = &${clientPkg}.${paramGroup.groupName}{\n`;
1181
+ content += `\t\t${uncapitalize(paramGroup.name)} = &${go.getTypeDeclaration(paramGroup, pkg)}{\n`;
1149
1182
  for (const param of values(params)) {
1150
1183
  let byRef = '&';
1151
1184
  if (param.byValue || (!go.isRequiredParameter(param.style) && param.kind !== 'bodyParam' && !go.isFormBodyParameter(param) && param.kind !== 'multipartFormBodyParam')) {
1152
1185
  byRef = '';
1153
1186
  }
1154
- content += `\t\t\t${capitalize(param.name)}: ${byRef}${getFinalParamValue(clientPkg, param, paramValues)},\n`;
1187
+ content += `\t\t\t${capitalize(param.name)}: ${byRef}${getFinalParamValue(pkg, param, paramValues)},\n`;
1155
1188
  }
1156
1189
  content += '\t\t}\n';
1157
1190
  content += '\t}\n';
@@ -1162,8 +1195,16 @@ function parseHeaderPathQueryParams(clientPkg, method, imports) {
1162
1195
  params: paramValues
1163
1196
  };
1164
1197
  }
1165
- // works in conjunction with parseHeaderPathQueryParams
1166
- function populateApiParams(clientPkg, method, paramValues, imports) {
1198
+ /**
1199
+ * generates the code to populate the method parameters that get passed to the fake
1200
+ *
1201
+ * @param pkg contains the package contents
1202
+ * @param method the method to be called with the parsed parameters
1203
+ * @param paramValues maps a parameter name to the value to be passed to the fake
1204
+ * @param imports the import manager currently in scope
1205
+ * @returns the text for the parameters to be passed to the fake
1206
+ */
1207
+ function populateApiParams(pkg, method, paramValues, imports) {
1167
1208
  // FooOperation(req.Context(), matches[regex.SubexpIndex("resourceGroupName")], qp.Get("api-version"), nil)
1168
1209
  // this assumes that our caller has created matches and qp as required
1169
1210
  const params = new Array();
@@ -1189,8 +1230,8 @@ function populateApiParams(clientPkg, method, paramValues, imports) {
1189
1230
  params.push(uncapitalize(param.name));
1190
1231
  continue;
1191
1232
  }
1192
- imports.addImportForType(param.type);
1193
- params.push(getFinalParamValue(clientPkg, param, paramValues));
1233
+ imports.addForType(param.type);
1234
+ params.push(getFinalParamValue(pkg, param, paramValues));
1194
1235
  }
1195
1236
  return params.join(', ');
1196
1237
  }
@@ -1235,8 +1276,17 @@ function getRawParamValue(param) {
1235
1276
  throw new CodegenError('InternalError', `unhandled parameter ${param.name}`);
1236
1277
  }
1237
1278
  }
1238
- // getFinalParamValue returns the "final" value of param to be passed to the fake.
1239
- function getFinalParamValue(clientPkg, param, paramValues) {
1279
+ /**
1280
+ * returns the final value of param to be passed to the fake.
1281
+ * this is usually the value in paramValues but can be slightly
1282
+ * different for some cases.
1283
+ *
1284
+ * @param pkg the contents of the package
1285
+ * @param param the parameter being evaluated
1286
+ * @param paramValues maps a parameter name to the value to be passed to the fake
1287
+ * @returns the value to pass for the provided parameter
1288
+ */
1289
+ function getFinalParamValue(pkg, param, paramValues) {
1240
1290
  let paramValue = paramValues.get(param.name);
1241
1291
  if (!paramValue) {
1242
1292
  // the param didn't require parsing so the "raw" value can be used
@@ -1259,7 +1309,7 @@ function getFinalParamValue(clientPkg, param, paramValues) {
1259
1309
  }
1260
1310
  else if (go.isHeaderParameter(param) && param.type.kind === 'constant' && param.type.type === 'string') {
1261
1311
  // since headers aren't escaped, we cast required, string-based enums inline
1262
- return `${go.getTypeDeclaration(param.type, clientPkg)}(${paramValue})`;
1312
+ return `${go.getTypeDeclaration(param.type, pkg)}(${paramValue})`;
1263
1313
  }
1264
1314
  }
1265
1315
  else if (param.kind === 'partialBodyParam') {
@@ -1292,8 +1342,15 @@ function consolidateHostParams(params) {
1292
1342
  }
1293
1343
  return consolidatedParams;
1294
1344
  }
1295
- // copied from generator/operations.ts but with a slight tweak to consolidate host parameters
1296
- function getAPIParametersSig(method, imports, pkgName) {
1345
+ /**
1346
+ * copied from generator/operations.ts but with a slight tweak to consolidate host parameters
1347
+ *
1348
+ * @param pkg the contents of the package
1349
+ * @param method the method for which to generate the parameter signature
1350
+ * @param imports the import manager currently in scope
1351
+ * @returns the text for the method's parameter signature
1352
+ */
1353
+ function getAPIParametersSig(pkg, method, imports) {
1297
1354
  const methodParams = helpers.getMethodParameters(method, consolidateHostParams);
1298
1355
  const params = new Array();
1299
1356
  if (method.kind !== 'pageableMethod') {
@@ -1305,7 +1362,7 @@ function getAPIParametersSig(method, imports, pkgName) {
1305
1362
  if (methodParam.kind === 'uriParam') {
1306
1363
  paramName = 'host';
1307
1364
  }
1308
- params.push(`${paramName} ${helpers.formatParameterTypeName(methodParam, pkgName)}`);
1365
+ params.push(`${paramName} ${helpers.formatParameterTypeName(pkg, methodParam)}`);
1309
1366
  }
1310
1367
  return params.join(', ');
1311
1368
  }