@azure-tools/typespec-ts 0.30.1 → 0.31.0-alpha.20240723.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 (184) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/src/contextManager.d.ts +4 -0
  3. package/dist/src/contextManager.d.ts.map +1 -1
  4. package/dist/src/contextManager.js.map +1 -1
  5. package/dist/src/framework/declaration.d.ts +9 -0
  6. package/dist/src/framework/declaration.d.ts.map +1 -0
  7. package/dist/src/framework/declaration.js +28 -0
  8. package/dist/src/framework/declaration.js.map +1 -0
  9. package/dist/src/framework/hooks/binder.d.ts +25 -0
  10. package/dist/src/framework/hooks/binder.d.ts.map +1 -0
  11. package/dist/src/framework/hooks/binder.js +168 -0
  12. package/dist/src/framework/hooks/binder.js.map +1 -0
  13. package/dist/src/framework/hooks/sdkTypes.d.ts +12 -0
  14. package/dist/src/framework/hooks/sdkTypes.d.ts.map +1 -0
  15. package/dist/src/framework/hooks/sdkTypes.js +67 -0
  16. package/dist/src/framework/hooks/sdkTypes.js.map +1 -0
  17. package/dist/src/framework/reference.d.ts +2 -0
  18. package/dist/src/framework/reference.d.ts.map +1 -0
  19. package/dist/src/framework/reference.js +8 -0
  20. package/dist/src/framework/reference.js.map +1 -0
  21. package/dist/src/framework/refkey.d.ts +7 -0
  22. package/dist/src/framework/refkey.d.ts.map +1 -0
  23. package/dist/src/framework/refkey.js +22 -0
  24. package/dist/src/framework/refkey.js.map +1 -0
  25. package/dist/src/framework/sample.d.ts +2 -0
  26. package/dist/src/framework/sample.d.ts.map +1 -0
  27. package/dist/src/framework/sample.js +71 -0
  28. package/dist/src/framework/sample.js.map +1 -0
  29. package/dist/src/framework/utils/tsmorph-helpers.d.ts +2 -0
  30. package/dist/src/framework/utils/tsmorph-helpers.d.ts.map +1 -0
  31. package/dist/src/framework/utils/tsmorph-helpers.js +2 -0
  32. package/dist/src/framework/utils/tsmorph-helpers.js.map +1 -0
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/index.js +7 -8
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/lib.d.ts +10 -1
  37. package/dist/src/lib.d.ts.map +1 -1
  38. package/dist/src/lib.js +6 -0
  39. package/dist/src/lib.js.map +1 -1
  40. package/dist/src/modular/buildClassicalClient.d.ts.map +1 -1
  41. package/dist/src/modular/buildClassicalClient.js +6 -5
  42. package/dist/src/modular/buildClassicalClient.js.map +1 -1
  43. package/dist/src/modular/buildClientContext.d.ts.map +1 -1
  44. package/dist/src/modular/buildClientContext.js +8 -4
  45. package/dist/src/modular/buildClientContext.js.map +1 -1
  46. package/dist/src/modular/buildCodeModel.d.ts.map +1 -1
  47. package/dist/src/modular/buildCodeModel.js +22 -11
  48. package/dist/src/modular/buildCodeModel.js.map +1 -1
  49. package/dist/src/modular/buildOperations.d.ts +1 -2
  50. package/dist/src/modular/buildOperations.d.ts.map +1 -1
  51. package/dist/src/modular/buildOperations.js +3 -9
  52. package/dist/src/modular/buildOperations.js.map +1 -1
  53. package/dist/src/modular/buildRootIndex.js +1 -1
  54. package/dist/src/modular/buildRootIndex.js.map +1 -1
  55. package/dist/src/modular/buildSerializeUtils.d.ts.map +1 -1
  56. package/dist/src/modular/buildSerializeUtils.js +2 -1
  57. package/dist/src/modular/buildSerializeUtils.js.map +1 -1
  58. package/dist/src/modular/helpers/clientHelpers.d.ts +4 -0
  59. package/dist/src/modular/helpers/clientHelpers.d.ts.map +1 -1
  60. package/dist/src/modular/helpers/clientHelpers.js +15 -1
  61. package/dist/src/modular/helpers/clientHelpers.js.map +1 -1
  62. package/dist/src/modular/helpers/namingHelpers.d.ts +1 -0
  63. package/dist/src/modular/helpers/namingHelpers.d.ts.map +1 -1
  64. package/dist/src/modular/helpers/namingHelpers.js +3 -1
  65. package/dist/src/modular/helpers/namingHelpers.js.map +1 -1
  66. package/dist/src/modular/helpers/operationHelpers.d.ts.map +1 -1
  67. package/dist/src/modular/helpers/operationHelpers.js +60 -40
  68. package/dist/src/modular/helpers/operationHelpers.js.map +1 -1
  69. package/dist/src/modular/helpers/typeHelpers.d.ts.map +1 -1
  70. package/dist/src/modular/helpers/typeHelpers.js +6 -1
  71. package/dist/src/modular/helpers/typeHelpers.js.map +1 -1
  72. package/dist/src/modular/modularCodeModel.d.ts +2 -0
  73. package/dist/src/modular/modularCodeModel.d.ts.map +1 -1
  74. package/dist/src/transform/transformApiVersionInfo.d.ts.map +1 -1
  75. package/dist/src/transform/transformApiVersionInfo.js +3 -5
  76. package/dist/src/transform/transformApiVersionInfo.js.map +1 -1
  77. package/dist/src/transform/transformHelperFunctionDetails.d.ts.map +1 -1
  78. package/dist/src/transform/transformHelperFunctionDetails.js +7 -10
  79. package/dist/src/transform/transformHelperFunctionDetails.js.map +1 -1
  80. package/dist/src/transform/transformParameters.d.ts.map +1 -1
  81. package/dist/src/transform/transformParameters.js +5 -7
  82. package/dist/src/transform/transformParameters.js.map +1 -1
  83. package/dist/src/transform/transformPaths.d.ts.map +1 -1
  84. package/dist/src/transform/transformPaths.js +4 -6
  85. package/dist/src/transform/transformPaths.js.map +1 -1
  86. package/dist/src/transform/transformResponses.d.ts.map +1 -1
  87. package/dist/src/transform/transformResponses.js +70 -16
  88. package/dist/src/transform/transformResponses.js.map +1 -1
  89. package/dist/src/transform/transformSchemas.d.ts.map +1 -1
  90. package/dist/src/transform/transformSchemas.js +5 -6
  91. package/dist/src/transform/transformSchemas.js.map +1 -1
  92. package/dist/src/transform/transformTelemetryInfo.d.ts.map +1 -1
  93. package/dist/src/transform/transformTelemetryInfo.js +3 -6
  94. package/dist/src/transform/transformTelemetryInfo.js.map +1 -1
  95. package/dist/src/transform/transfromRLCOptions.d.ts.map +1 -1
  96. package/dist/src/transform/transfromRLCOptions.js +5 -6
  97. package/dist/src/transform/transfromRLCOptions.js.map +1 -1
  98. package/dist/src/utils/modelUtils.d.ts +3 -3
  99. package/dist/src/utils/modelUtils.d.ts.map +1 -1
  100. package/dist/src/utils/modelUtils.js +42 -24
  101. package/dist/src/utils/modelUtils.js.map +1 -1
  102. package/dist/src/utils/operationUtil.d.ts +2 -2
  103. package/dist/src/utils/operationUtil.d.ts.map +1 -1
  104. package/dist/src/utils/operationUtil.js +5 -7
  105. package/dist/src/utils/operationUtil.js.map +1 -1
  106. package/dist/tsconfig.tsbuildinfo +1 -1
  107. package/package.json +23 -23
  108. package/src/contextManager.ts +4 -0
  109. package/src/framework/declaration.ts +100 -0
  110. package/src/framework/hooks/binder.ts +259 -0
  111. package/src/framework/hooks/sdkTypes.ts +101 -0
  112. package/src/framework/reference.ts +9 -0
  113. package/src/framework/refkey.ts +28 -0
  114. package/src/framework/sample.ts +92 -0
  115. package/src/framework/utils/tsmorph-helpers.ts +0 -0
  116. package/src/index.ts +8 -10
  117. package/src/lib.ts +6 -0
  118. package/src/modular/buildClassicalClient.ts +11 -4
  119. package/src/modular/buildClientContext.ts +11 -5
  120. package/src/modular/buildCodeModel.ts +25 -21
  121. package/src/modular/buildOperations.ts +13 -41
  122. package/src/modular/buildRootIndex.ts +1 -1
  123. package/src/modular/buildSerializeUtils.ts +2 -1
  124. package/src/modular/helpers/clientHelpers.ts +25 -1
  125. package/src/modular/helpers/namingHelpers.ts +4 -1
  126. package/src/modular/helpers/operationHelpers.ts +86 -45
  127. package/src/modular/helpers/typeHelpers.ts +6 -1
  128. package/src/modular/modularCodeModel.ts +2 -0
  129. package/src/transform/transformApiVersionInfo.ts +3 -6
  130. package/src/transform/transformHelperFunctionDetails.ts +9 -9
  131. package/src/transform/transformParameters.ts +5 -6
  132. package/src/transform/transformPaths.ts +5 -9
  133. package/src/transform/transformResponses.ts +92 -19
  134. package/src/transform/transformSchemas.ts +6 -5
  135. package/src/transform/transformTelemetryInfo.ts +3 -5
  136. package/src/transform/transfromRLCOptions.ts +5 -10
  137. package/src/utils/modelUtils.ts +49 -39
  138. package/src/utils/operationUtil.ts +6 -12
  139. package/dist/src/modular/serialization/collectionUtils.d.ts +0 -3
  140. package/dist/src/modular/serialization/collectionUtils.d.ts.map +0 -1
  141. package/dist/src/modular/serialization/collectionUtils.js +0 -17
  142. package/dist/src/modular/serialization/collectionUtils.js.map +0 -1
  143. package/dist/src/modular/serialization/index.d.ts +0 -5
  144. package/dist/src/modular/serialization/index.d.ts.map +0 -1
  145. package/dist/src/modular/serialization/index.js +0 -155
  146. package/dist/src/modular/serialization/index.js.map +0 -1
  147. package/dist/src/modular/serialization/operationHelpers.d.ts +0 -37
  148. package/dist/src/modular/serialization/operationHelpers.d.ts.map +0 -1
  149. package/dist/src/modular/serialization/operationHelpers.js +0 -457
  150. package/dist/src/modular/serialization/operationHelpers.js.map +0 -1
  151. package/dist/src/modular/serialization/serializeArray.d.ts +0 -5
  152. package/dist/src/modular/serialization/serializeArray.d.ts.map +0 -1
  153. package/dist/src/modular/serialization/serializeArray.js +0 -33
  154. package/dist/src/modular/serialization/serializeArray.js.map +0 -1
  155. package/dist/src/modular/serialization/serializeDateTime.d.ts +0 -4
  156. package/dist/src/modular/serialization/serializeDateTime.d.ts.map +0 -1
  157. package/dist/src/modular/serialization/serializeDateTime.js +0 -19
  158. package/dist/src/modular/serialization/serializeDateTime.js.map +0 -1
  159. package/dist/src/modular/serialization/serializeHeaders.d.ts +0 -7
  160. package/dist/src/modular/serialization/serializeHeaders.d.ts.map +0 -1
  161. package/dist/src/modular/serialization/serializeHeaders.js +0 -44
  162. package/dist/src/modular/serialization/serializeHeaders.js.map +0 -1
  163. package/dist/src/modular/serialization/serializers.d.ts +0 -17
  164. package/dist/src/modular/serialization/serializers.d.ts.map +0 -1
  165. package/dist/src/modular/serialization/serializers.js +0 -175
  166. package/dist/src/modular/serialization/serializers.js.map +0 -1
  167. package/dist/src/modular/serialization/util.d.ts +0 -27
  168. package/dist/src/modular/serialization/util.d.ts.map +0 -1
  169. package/dist/src/modular/serialization/util.js +0 -115
  170. package/dist/src/modular/serialization/util.js.map +0 -1
  171. package/dist/src/reify/index.d.ts +0 -12
  172. package/dist/src/reify/index.d.ts.map +0 -1
  173. package/dist/src/reify/index.js +0 -22
  174. package/dist/src/reify/index.js.map +0 -1
  175. package/src/modular/serialization/collectionUtils.ts +0 -20
  176. package/src/modular/serialization/index.ts +0 -267
  177. package/src/modular/serialization/operationHelpers.ts +0 -659
  178. package/src/modular/serialization/serializeArray.ts +0 -51
  179. package/src/modular/serialization/serializeDateTime.ts +0 -22
  180. package/src/modular/serialization/serializeHeaders.ts +0 -64
  181. package/src/modular/serialization/serializers.ts +0 -304
  182. package/src/modular/serialization/util.ts +0 -171
  183. package/src/modular/static/karma.conf.cjs +0 -120
  184. package/src/reify/index.ts +0 -41
@@ -1,457 +0,0 @@
1
- import { addImportToSpecifier, getResponseBaseName, getResponseTypeName, NameType } from "@azure-tools/rlc-common";
2
- import { toPascalCase } from "../../utils/casingUtils.js";
3
- import { getDocsFromDescription, getFixmeForMultilineDocs } from "../helpers/docsHelpers.js";
4
- import { getClassicalLayerPrefix, getOperationName } from "../helpers/namingHelpers.js";
5
- import { buildType } from "../helpers/typeHelpers.js";
6
- import { UsageFlags } from "@typespec/compiler";
7
- import _ from "lodash";
8
- import { serializeType } from "../serialization/serializers.js";
9
- import { isDefined } from "../serialization/util.js";
10
- export function getRLCResponseType(rlcResponse) {
11
- if (!(rlcResponse === null || rlcResponse === void 0 ? void 0 : rlcResponse.responses)) {
12
- return;
13
- }
14
- return rlcResponse === null || rlcResponse === void 0 ? void 0 : rlcResponse.responses.map((resp) => {
15
- var _a;
16
- const baseResponseName = getResponseBaseName(rlcResponse.operationGroup, rlcResponse.operationName, resp.statusCode);
17
- // Get the information to build the Response Interface
18
- return (_a = resp.predefinedName) !== null && _a !== void 0 ? _a : getResponseTypeName(baseResponseName);
19
- }).join(" | ");
20
- }
21
- export function getRLCLroLogicalResponse(rlcResponse) {
22
- var _a;
23
- const logicalResponse = ((_a = rlcResponse === null || rlcResponse === void 0 ? void 0 : rlcResponse.responses) !== null && _a !== void 0 ? _a : []).filter((r) => r.predefinedName && r.predefinedName.endsWith(`LogicalResponse`));
24
- return logicalResponse.length > 0
25
- ? logicalResponse[0].predefinedName
26
- : "any";
27
- }
28
- export function getSendPrivateFunction(dpgContext, operation, clientType, serializerMap, runtimeImports) {
29
- var _a;
30
- const parameters = getOperationSignatureParameters(operation, clientType);
31
- const { name } = getOperationName(operation);
32
- const returnType = `StreamableMethod<${getRLCResponseType(operation.rlcResponse)}>`;
33
- const functionStatement = {
34
- isAsync: false,
35
- isExported: true,
36
- name: `_${name}Send`,
37
- parameters,
38
- returnType
39
- };
40
- const operationPath = operation.url;
41
- const operationMethod = operation.method.toLowerCase();
42
- const optionalParamName = (_a = parameters.filter((p) => { var _a; return (_a = p.type) === null || _a === void 0 ? void 0 : _a.toString().endsWith("OptionalParams"); })[0]) === null || _a === void 0 ? void 0 : _a.name;
43
- const statements = [];
44
- statements.push(`return context.path("${operationPath}", ${getPathParameters(operation)}).${operationMethod}({...operationOptionsToRequestParameters(${optionalParamName}), ${getRequestParameters(dpgContext, operation, serializerMap, runtimeImports)}}) ${operation.isOverload ? `as ${returnType}` : ``} ;`);
45
- return {
46
- ...functionStatement,
47
- statements
48
- };
49
- }
50
- export function getDeserializePrivateFunction(dpgContext, operation, needSubClient, needUnexpectedHelper, runtimeImports, serializerMap) {
51
- var _a, _b, _c, _d, _e;
52
- const { name } = getOperationName(operation);
53
- const parameters = [
54
- {
55
- name: "result",
56
- type: getRLCResponseType(operation.rlcResponse)
57
- }
58
- ];
59
- // TODO: Support LRO + paging operation
60
- // https://github.com/Azure/autorest.typescript/issues/2313
61
- const isLroOnly = isLroOnlyOperation(operation);
62
- // TODO: Support operation overloads
63
- const response = operation.responses[0];
64
- let returnType;
65
- if (isLroOnly && operation.method.toLowerCase() !== "patch") {
66
- returnType = buildLroReturnType(operation);
67
- }
68
- else if ((_a = response === null || response === void 0 ? void 0 : response.type) === null || _a === void 0 ? void 0 : _a.type) {
69
- returnType = buildType(response.type.name, response.type, response.type.format);
70
- }
71
- else {
72
- returnType = { name: "", type: "void" };
73
- }
74
- const functionStatement = {
75
- isAsync: true,
76
- isExported: true,
77
- name: `_${name}Deserialize`,
78
- parameters,
79
- returnType: `Promise<${returnType.type}>`
80
- };
81
- const statements = [];
82
- if (needUnexpectedHelper) {
83
- statements.push(`if(${needSubClient ? "UnexpectedHelper." : ""}isUnexpected(result)){`, `throw createRestError(result);`, "}");
84
- addImportToSpecifier("restClient", runtimeImports, "createRestError");
85
- }
86
- else {
87
- const validStatus = [
88
- ...new Set(operation.responses
89
- .flatMap((r) => r.statusCodes)
90
- .filter((s) => s !== "default"))
91
- ];
92
- if (validStatus.length > 0) {
93
- statements.push(`if(${validStatus
94
- .map((s) => `result.status !== "${s}"`)
95
- .join(" || ")}){`, `throw createRestError(result);`, "}");
96
- addImportToSpecifier("restClient", runtimeImports, "createRestError");
97
- }
98
- }
99
- let deserializedType = isLroOnly
100
- ? (_b = operation === null || operation === void 0 ? void 0 : operation.lroMetadata) === null || _b === void 0 ? void 0 : _b.finalResult
101
- : (_c = response === null || response === void 0 ? void 0 : response.type) !== null && _c !== void 0 ? _c : "void"; // Is setting void here correct? We are handling the case where no response above but here we are
102
- let hasLroSubPath = ((_d = operation === null || operation === void 0 ? void 0 : operation.lroMetadata) === null || _d === void 0 ? void 0 : _d.finalResultPath) !== undefined;
103
- let deserializedRoot = hasLroSubPath
104
- ? `result.body.${(_e = operation === null || operation === void 0 ? void 0 : operation.lroMetadata) === null || _e === void 0 ? void 0 : _e.finalResultPath}`
105
- : "result.body";
106
- // TODO: Hard-coded for LRO PATCH case for now
107
- // https://github.com/Azure/autorest.typescript/issues/2314
108
- if (isLroOnly && operation.method.toLowerCase() === "patch") {
109
- deserializedType = response.type;
110
- hasLroSubPath = false;
111
- deserializedRoot = "result.body";
112
- }
113
- if (isLroOnly) {
114
- const lroLogicalResponse = getRLCLroLogicalResponse(operation.rlcResponse);
115
- statements.push(`result = result as ${lroLogicalResponse};`);
116
- if (hasLroSubPath) {
117
- statements.push(`if(${deserializedRoot.split(".").join("?.")} === undefined) {
118
- throw createRestError(\`Expected a result in the response at position "${deserializedRoot}"\`, result);
119
- }
120
- `);
121
- }
122
- }
123
- if (isDefined(deserializedType === null || deserializedType === void 0 ? void 0 : deserializedType.tcgcType)) {
124
- statements.push(`return ${deserializeResponseValue(dpgContext, serializerMap, deserializedType, deserializedRoot, runtimeImports)}`);
125
- }
126
- else if (returnType.type === "void") {
127
- statements.push("return");
128
- }
129
- else {
130
- statements.push(`return result.body`);
131
- }
132
- return {
133
- ...functionStatement,
134
- statements
135
- };
136
- }
137
- export function getOperationSignatureParameters(operation, clientType) {
138
- var _a;
139
- const optionsType = getOperationOptionsName(operation, true);
140
- const parameters = new Map();
141
- operation.parameters
142
- .filter((p) => p.implementation === "Method" &&
143
- p.type.type !== "constant" &&
144
- p.clientDefaultValue === undefined &&
145
- !p.optional)
146
- .map((p) => buildType(p.clientName, p.type, p.format))
147
- .forEach((p) => {
148
- parameters.set(p.name, p);
149
- });
150
- if (operation.bodyParameter) {
151
- parameters.set((_a = operation.bodyParameter) === null || _a === void 0 ? void 0 : _a.clientName, {
152
- hasQuestionToken: operation.bodyParameter.optional,
153
- ...buildType(operation.bodyParameter.clientName, operation.bodyParameter.type, operation.bodyParameter.type.format)
154
- });
155
- }
156
- // Add context as the first parameter
157
- const contextParam = { name: "context", type: clientType };
158
- // Add the options parameter
159
- const optionsParam = {
160
- name: parameters.has("options") ? "optionalParams" : "options",
161
- type: optionsType,
162
- initializer: "{ requestOptions: {} }"
163
- };
164
- const finalParameters = [contextParam, ...parameters.values(), optionsParam];
165
- return finalParameters;
166
- }
167
- /**
168
- * This operation builds and returns the function declaration for an operation.
169
- */
170
- export function getOperationFunction(operation, clientType) {
171
- var _a, _b;
172
- if (isPagingOnlyOperation(operation)) {
173
- // Case 1: paging-only operation
174
- return getPagingOnlyOperationFunction(operation, clientType);
175
- }
176
- else if (isLroOnlyOperation(operation)) {
177
- // Case 2: lro-only operation
178
- return getLroOnlyOperationFunction(operation, clientType);
179
- }
180
- else if (isLroAndPagingOperation(operation)) {
181
- // Case 3: both paging + lro operation is not supported yet so handle them as normal operation and customization may be needed
182
- // https://github.com/Azure/autorest.typescript/issues/2313
183
- }
184
- // Extract required parameters
185
- const parameters = getOperationSignatureParameters(operation, clientType);
186
- // TODO: Support operation overloads
187
- const response = operation.responses[0];
188
- let returnType = { name: "", type: "void" };
189
- if ((_a = response.type) === null || _a === void 0 ? void 0 : _a.type) {
190
- const type = (_b = extractPagingType(response.type, operation.itemName)) !== null && _b !== void 0 ? _b : response.type;
191
- returnType = buildType(type.name, type, type.format);
192
- }
193
- const { name, fixme = [] } = getOperationName(operation);
194
- const functionStatement = {
195
- docs: [
196
- ...getDocsFromDescription(operation.description),
197
- ...getFixmeForMultilineDocs(fixme)
198
- ],
199
- isAsync: true,
200
- isExported: true,
201
- name,
202
- propertyName: operation.name,
203
- parameters,
204
- returnType: `Promise<${returnType.type}>`
205
- };
206
- const statements = [];
207
- statements.push(`const result = await _${name}Send(${parameters
208
- .map((p) => p.name)
209
- .join(", ")});`);
210
- statements.push(`return _${name}Deserialize(result);`);
211
- return {
212
- ...functionStatement,
213
- statements
214
- };
215
- }
216
- function getLroOnlyOperationFunction(operation, clientType) {
217
- // Extract required parameters
218
- const parameters = getOperationSignatureParameters(operation, clientType);
219
- const returnType = buildLroReturnType(operation);
220
- const { name, fixme = [] } = getOperationName(operation);
221
- const functionStatement = {
222
- docs: [
223
- ...getDocsFromDescription(operation.description),
224
- ...getFixmeForMultilineDocs(fixme)
225
- ],
226
- isAsync: false,
227
- isExported: true,
228
- name,
229
- propertyName: operation.name,
230
- parameters,
231
- returnType: `PollerLike<OperationState<${returnType.type}>, ${returnType.type}>`
232
- };
233
- const statements = [];
234
- statements.push(`
235
- return getLongRunningPoller(context, _${name}Deserialize, {
236
- updateIntervalInMs: options?.updateIntervalInMs,
237
- abortSignal: options?.abortSignal,
238
- getInitialResponse: () => _${name}Send(${parameters
239
- .map((p) => p.name)
240
- .join(", ")})
241
- }) as PollerLike<OperationState<${returnType.type}>, ${returnType.type}>;
242
- `);
243
- return {
244
- ...functionStatement,
245
- statements
246
- };
247
- }
248
- export function buildLroReturnType(operation) {
249
- const metadata = operation.lroMetadata;
250
- if (metadata !== undefined && metadata.finalResult !== undefined) {
251
- const type = metadata.finalResult;
252
- return buildType(type.name, type, type.format);
253
- }
254
- return { name: "", type: "void" };
255
- }
256
- export function getPagingOnlyOperationFunction(operation, clientType) {
257
- var _a, _b;
258
- // Extract required parameters
259
- const parameters = getOperationSignatureParameters(operation, clientType);
260
- // TODO: Support operation overloads
261
- const response = operation.responses[0];
262
- let returnType = { name: "", type: "void" };
263
- if ((_a = response === null || response === void 0 ? void 0 : response.type) === null || _a === void 0 ? void 0 : _a.type) {
264
- const type = (_b = extractPagingType(response.type, operation.itemName)) !== null && _b !== void 0 ? _b : response.type;
265
- returnType = buildType(type.name, type, type.format);
266
- }
267
- const { name, fixme = [] } = getOperationName(operation);
268
- const functionStatement = {
269
- docs: [
270
- ...getDocsFromDescription(operation.description),
271
- ...getFixmeForMultilineDocs(fixme)
272
- ],
273
- isAsync: false,
274
- isExported: true,
275
- name,
276
- propertyName: operation.name,
277
- parameters,
278
- returnType: `PagedAsyncIterableIterator<${returnType.type}>`
279
- };
280
- const statements = [];
281
- const options = [];
282
- if (operation.itemName) {
283
- options.push(`itemName: "${operation.itemName}"`);
284
- }
285
- if (operation.continuationTokenName) {
286
- options.push(`nextLinkName: "${operation.continuationTokenName}"`);
287
- }
288
- statements.push(`return buildPagedAsyncIterator(
289
- context,
290
- () => _${name}Send(${parameters.map((p) => p.name).join(", ")}),
291
- _${name}Deserialize,
292
- ${options.length > 0 ? `{${options.join(", ")}}` : ``}
293
- );`);
294
- return {
295
- ...functionStatement,
296
- statements
297
- };
298
- }
299
- function extractPagingType(type, itemName) {
300
- var _a, _b, _c;
301
- if (!itemName) {
302
- return undefined;
303
- }
304
- const prop = (_b = ((_a = type.properties) !== null && _a !== void 0 ? _a : [])) === null || _b === void 0 ? void 0 : _b.filter((prop) => prop.restApiName === itemName).map((prop) => prop.type);
305
- if (prop.length === 0) {
306
- return undefined;
307
- }
308
- return ((_c = prop[0]) === null || _c === void 0 ? void 0 : _c.type) === "list" && prop[0].elementType
309
- ? prop[0].elementType
310
- : undefined;
311
- }
312
- export function getOperationOptionsName(operation, includeGroupName = false) {
313
- const prefix = includeGroupName && operation.name.indexOf("_") === -1
314
- ? getClassicalLayerPrefix(operation, NameType.Interface)
315
- : "";
316
- const optionName = `${prefix}${toPascalCase(operation.name)}OptionalParams`;
317
- return optionName;
318
- }
319
- /**
320
- * This function build the request parameters that we will provide to the
321
- * RLC internally. This will translate High Level parameters into the RLC ones.
322
- * Figuring out what goes in headers, body, path and qsp.
323
- */
324
- function getRequestParameters(dpgContext, operation, serializerMap, runtimeImports) {
325
- if (!operation.parameters) {
326
- return "";
327
- }
328
- const operationParameters = operation.parameters.filter((p) => p.implementation !== "Client" && !isContentType(p));
329
- const contentTypeParameter = operation.parameters.find(isContentType);
330
- const parametersImplementation = _.groupBy(operationParameters, (p) => p.location);
331
- parametersImplementation["body"] = isDefined(operation.bodyParameter)
332
- ? [operation.bodyParameter]
333
- : parametersImplementation["body"];
334
- const params = [
335
- ...(contentTypeParameter
336
- ? [getContentTypeValue(contentTypeParameter)]
337
- : []),
338
- ...[
339
- [
340
- ["headers", "header"],
341
- ["queryParameters", "query"],
342
- ["body", "body"]
343
- ]
344
- .map(([id, location]) => [id, parametersImplementation[location]])
345
- .filter(([_, paramList]) => paramList === null || paramList === void 0 ? void 0 : paramList.length)
346
- .flatMap(([id, paramList]) => paramList.map((i) => {
347
- const initializer = serializeType({
348
- dpgContext,
349
- functionType: UsageFlags.Input,
350
- serializerMap,
351
- type: i.tcgcType,
352
- valueExpr: id === "body" ? i.clientName : `options?.${i.clientName}`,
353
- importCallback: (importType, importedName) => addImportToSpecifier(importType, runtimeImports, importedName)
354
- });
355
- return `${id}: ${initializer}`;
356
- }))
357
- ]
358
- ];
359
- return params.join(",\n");
360
- }
361
- function isContentType(param) {
362
- return (param.location === "header" &&
363
- param.restApiName.toLowerCase() === "content-type");
364
- }
365
- function getContentTypeValue(param) {
366
- var _a;
367
- const defaultValue = (_a = param.clientDefaultValue) !== null && _a !== void 0 ? _a : param.type.clientDefaultValue;
368
- if (defaultValue) {
369
- return `contentType: options.${param.clientName} as any ?? "${defaultValue}"`;
370
- }
371
- else {
372
- return `contentType: ${!param.optional
373
- ? "contentType"
374
- : "options." + param.clientName + " as any"}`;
375
- }
376
- }
377
- /**
378
- * Builds the assignment for when a property or parameter has a default value
379
- */
380
- function getDefaultValue(param) {
381
- var _a, _b;
382
- return ((_a = param.clientDefaultValue) !== null && _a !== void 0 ? _a : param.type.clientDefaultValue) !==
383
- undefined
384
- ? `${param.optional ? "??" : ""} "${(_b = param.clientDefaultValue) !== null && _b !== void 0 ? _b : param.type.clientDefaultValue}"`
385
- : "";
386
- }
387
- /**
388
- * Extracts the path parameters
389
- */
390
- function getPathParameters(operation) {
391
- if (!operation.parameters) {
392
- return "";
393
- }
394
- let pathParams = "";
395
- for (const param of operation.parameters) {
396
- if (param.location === "path") {
397
- if (!param.optional) {
398
- pathParams += `${pathParams !== "" ? "," : ""} ${param.clientName}`;
399
- continue;
400
- }
401
- const defaultValue = getDefaultValue(param);
402
- pathParams += `${pathParams !== "" ? "," : ""} options.${param.clientName}`;
403
- if (defaultValue) {
404
- pathParams += ` ?? "${defaultValue}"`;
405
- }
406
- }
407
- }
408
- return pathParams;
409
- }
410
- /**
411
- * This function helps converting strings into JS complex types recursively.
412
- * We need to drill down into Array elements to make sure that the element type is
413
- * deserialized correctly
414
- */
415
- function deserializeResponseValue(dpgContext, serializerMap, type, restValue, runtimeImports) {
416
- return serializeType({
417
- dpgContext,
418
- functionType: UsageFlags.Output,
419
- serializerMap,
420
- type: type.tcgcType,
421
- valueExpr: restValue,
422
- importCallback: (importType, importedName) => addImportToSpecifier(importType, runtimeImports, importedName)
423
- });
424
- }
425
- function isLroAndPagingOperation(op) {
426
- return op.discriminator === "lropaging";
427
- }
428
- export function isLroOnlyOperation(op) {
429
- return op.discriminator === "lro";
430
- }
431
- export function hasPagingOnlyOperation(clientOrCodeModel, needRLC = false) {
432
- let clients = [];
433
- if (clientOrCodeModel === null || clientOrCodeModel === void 0 ? void 0 : clientOrCodeModel.operationGroups) {
434
- clients = [clientOrCodeModel];
435
- }
436
- else if (clientOrCodeModel === null || clientOrCodeModel === void 0 ? void 0 : clientOrCodeModel.clients) {
437
- clients = clientOrCodeModel.clients;
438
- }
439
- return clients.some((c) => {
440
- var _a;
441
- return (needRLC ? c.rlcHelperDetails.hasPaging : false) ||
442
- ((_a = c.operationGroups) !== null && _a !== void 0 ? _a : []).some((og) => { var _a; return ((_a = og.operations) !== null && _a !== void 0 ? _a : []).some(isPagingOnlyOperation); });
443
- });
444
- }
445
- export function isPagingOnlyOperation(op) {
446
- return op.discriminator === "paging";
447
- }
448
- export function getAllAncestors(type) {
449
- var _a;
450
- const ancestors = [];
451
- (_a = type === null || type === void 0 ? void 0 : type.parents) === null || _a === void 0 ? void 0 : _a.forEach((p) => {
452
- ancestors.push(p);
453
- ancestors.push(...getAllAncestors(p));
454
- });
455
- return ancestors;
456
- }
457
- //# sourceMappingURL=operationHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operationHelpers.js","sourceRoot":"","sources":["../../../../src/modular/serialization/operationHelpers.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { SdkArrayType } from "@azure-tools/typespec-client-generator-core";
2
- import { SerializeTypeOptions } from "./serializers.js";
3
- import { SerializerOutput } from "./util.js";
4
- export declare function serializeArray(options: SerializeTypeOptions<SdkArrayType>): SerializerOutput;
5
- //# sourceMappingURL=serializeArray.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeArray.d.ts","sourceRoot":"","sources":["../../../../src/modular/serialization/serializeArray.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEb,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAiB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAkC,MAAM,WAAW,CAAC;AAE7E,wBAAgB,cAAc,CAC5B,OAAO,EAAE,oBAAoB,CAAC,YAAY,CAAC,GAC1C,gBAAgB,CAwClB"}
@@ -1,33 +0,0 @@
1
- import { UsageFlags } from "@typespec/compiler";
2
- import { serializeType } from "./serializers.js";
3
- import { getModularTypeId, getRLCTypeId } from "./util.js";
4
- export function serializeArray(options) {
5
- var _a, _b;
6
- const { dpgContext, functionType, serializerMap, type, valueExpr } = options;
7
- const valueType = type.valueType;
8
- const mapParameterId = "e";
9
- const elementTypeName = functionType === UsageFlags.Input
10
- ? getModularTypeId(valueType)
11
- : getRLCTypeId(dpgContext, valueType);
12
- const serializedChildExpr = serializeType({
13
- ...options,
14
- type: valueType,
15
- valueExpr: mapParameterId
16
- });
17
- if (serializedChildExpr === mapParameterId) {
18
- // mapping over identity function, so map is unnecessary
19
- // arr.map((e) => e) -> arr
20
- return valueExpr;
21
- }
22
- // arr.map((e) => f(e)) -> arr.map(f)
23
- const unaryFunctionInvocation = /(?<functionName>\w+)\((?<childArgExpr>\w+)\)/;
24
- const { functionName, childArgExpr } = (_b = (_a = serializedChildExpr.match(unaryFunctionInvocation)) === null || _a === void 0 ? void 0 : _a.groups) !== null && _b !== void 0 ? _b : {};
25
- const mapArg = elementTypeName && (serializerMap === null || serializerMap === void 0 ? void 0 : serializerMap[elementTypeName])
26
- ? mapParameterId
27
- : `${mapParameterId}: ${elementTypeName}`;
28
- const mapFunction = childArgExpr === mapParameterId
29
- ? functionName
30
- : `(${mapArg})=>(${serializedChildExpr})`;
31
- return `${valueExpr}.map(${mapFunction})`;
32
- }
33
- //# sourceMappingURL=serializeArray.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeArray.js","sourceRoot":"","sources":["../../../../src/modular/serialization/serializeArray.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAwB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAoB,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE7E,MAAM,UAAU,cAAc,CAC5B,OAA2C;;IAE3C,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAwC,CAAC;IAChE,MAAM,cAAc,GAAG,GAAG,CAAC;IAE3B,MAAM,eAAe,GACnB,YAAY,KAAK,UAAU,CAAC,KAAK;QAC/B,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC;QAC7B,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE1C,MAAM,mBAAmB,GAAG,aAAa,CAAC;QACxC,GAAG,OAAO;QACV,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,cAAc;KAC1B,CAAC,CAAC;IAEH,IAAI,mBAAmB,KAAK,cAAc,EAAE,CAAC;QAC3C,wDAAwD;QACxD,2BAA2B;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qCAAqC;IACrC,MAAM,uBAAuB,GAC3B,8CAA8C,CAAC;IAEjD,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAClC,MAAA,MAAA,mBAAmB,CAAC,KAAK,CAAC,uBAAuB,CAAC,0CAAE,MAAM,mCAAI,EAAE,CAAC;IAEnE,MAAM,MAAM,GACV,eAAe,KAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,eAAe,CAAC,CAAA;QACjD,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,cAAc,KAAK,eAAe,EAAE,CAAC;IAE9C,MAAM,WAAW,GACf,YAAY,KAAK,cAAc;QAC7B,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,IAAI,MAAM,OAAO,mBAAmB,GAAG,CAAC;IAE9C,OAAO,GAAG,SAAS,QAAQ,WAAW,GAAG,CAAC;AAC5C,CAAC"}
@@ -1,4 +0,0 @@
1
- import { SdkDatetimeType } from "@azure-tools/typespec-client-generator-core";
2
- import { SerializeTypeOptions } from "./serializers.js";
3
- export declare function serializeDatetime(options: SerializeTypeOptions<SdkDatetimeType>): string;
4
- //# sourceMappingURL=serializeDateTime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeDateTime.d.ts","sourceRoot":"","sources":["../../../../src/modular/serialization/serializeDateTime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,oBAAoB,CAAC,eAAe,CAAC,GAC7C,MAAM,CAeR"}
@@ -1,19 +0,0 @@
1
- import { UsageFlags } from "@typespec/compiler";
2
- export function serializeDatetime(options) {
3
- const { functionType, type, valueExpr } = options;
4
- if (functionType === UsageFlags.Input) {
5
- switch (type.encode) {
6
- case "rfc7231":
7
- return `(${valueExpr}).toUTCString()`;
8
- case "unixTimestamp":
9
- return `(${valueExpr}).getTime()`;
10
- case "rfc3339":
11
- default:
12
- return `(${valueExpr}).toISOString()`;
13
- }
14
- }
15
- else {
16
- return `new Date(${valueExpr})`;
17
- }
18
- }
19
- //# sourceMappingURL=serializeDateTime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeDateTime.js","sourceRoot":"","sources":["../../../../src/modular/serialization/serializeDateTime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,UAAU,iBAAiB,CAC/B,OAA8C;IAE9C,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAClD,IAAI,YAAY,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QACtC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,SAAS;gBACZ,OAAO,IAAI,SAAS,iBAAiB,CAAC;YACxC,KAAK,eAAe;gBAClB,OAAO,IAAI,SAAS,aAAa,CAAC;YACpC,KAAK,SAAS,CAAC;YACf;gBACE,OAAO,IAAI,SAAS,iBAAiB,CAAC;QAC1C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,YAAY,SAAS,GAAG,CAAC;IAClC,CAAC;AACH,CAAC"}
@@ -1,7 +0,0 @@
1
- import { SdkHeaderParameter } from "@azure-tools/typespec-client-generator-core";
2
- import { SerializeTypeOptions } from "./serializers.js";
3
- import { SerializerOutput } from "./util.js";
4
- export declare function serializeHeader(options: SerializeTypeOptions<SdkHeaderParameter & {
5
- kind: "header";
6
- }>): SerializerOutput;
7
- //# sourceMappingURL=serializeHeaders.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeHeaders.d.ts","sourceRoot":"","sources":["../../../../src/modular/serialization/serializeHeaders.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAEnB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAiB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAK7C,wBAAgB,eAAe,CAC7B,OAAO,EAAE,oBAAoB,CAC3B,kBAAkB,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB,CACF,GACA,gBAAgB,CA+ClB"}
@@ -1,44 +0,0 @@
1
- import { UsageFlags } from "@azure-tools/typespec-client-generator-core";
2
- import { serializeType } from "./serializers.js";
3
- import { getCollectionSeparator } from "./collectionUtils.js";
4
- import { serializeArray } from "./serializeArray.js";
5
- import { isNumericTypeKind } from "../helpers/typeHelpers.js";
6
- export function serializeHeader(options) {
7
- const { type, functionType, valueExpr } = options;
8
- // We need to handle arrays differently than other types.
9
- // For headers arrays are serialized as a single string with a separator.
10
- if (type.type.kind === "array") {
11
- const separator = JSON.stringify(getCollectionSeparator(type.collectionFormat));
12
- if (functionType === UsageFlags.Input) {
13
- // Serialization
14
- // Here we need to turn an array into a string with a separator.
15
- // We can use the serializeArray function to do this.
16
- const serializedArray = serializeArray({
17
- ...options,
18
- type: type.type
19
- });
20
- // Now that we have serialized the array, we can join the elements with the separator.
21
- return `${serializedArray}.join(${separator})`;
22
- }
23
- else {
24
- // Deserialization
25
- // Here we have a string that we need to split into an array.
26
- const array = `${valueExpr}.split(${separator})`;
27
- // No need to parse if the elements ar strings
28
- if (type.type.valueType.kind === "string") {
29
- return array;
30
- }
31
- if (isNumericTypeKind(type.type.valueType.kind) ||
32
- type.type.valueType.kind === "boolean") {
33
- return `${array}.map(e => JSON.parse(e))`;
34
- }
35
- return `${array}.map(e => ${serializeType({
36
- ...options,
37
- type: type.type.valueType,
38
- valueExpr: "e"
39
- })})`;
40
- }
41
- }
42
- return serializeType({ ...options, type: type.type });
43
- }
44
- //# sourceMappingURL=serializeHeaders.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializeHeaders.js","sourceRoot":"","sources":["../../../../src/modular/serialization/serializeHeaders.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACX,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAwB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,UAAU,eAAe,CAC7B,OAIC;IAED,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAElD,yDAAyD;IACzD,yEAAyE;IACzE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAC9B,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAC9C,CAAC;QAEF,IAAI,YAAY,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;YACtC,gBAAgB;YAChB,gEAAgE;YAChE,qDAAqD;YACrD,MAAM,eAAe,GAAG,cAAc,CAAC;gBACrC,GAAG,OAAO;gBACV,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAC;YAEH,sFAAsF;YACtF,OAAO,GAAG,eAAe,SAAS,SAAS,GAAG,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,kBAAkB;YAClB,6DAA6D;YAC7D,MAAM,KAAK,GAAG,GAAG,SAAS,UAAU,SAAS,GAAG,CAAC;YAEjD,8CAA8C;YAC9C,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IACE,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC3C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,EACtC,CAAC;gBACD,OAAO,GAAG,KAAK,0BAA0B,CAAC;YAC5C,CAAC;YAED,OAAO,GAAG,KAAK,aAAa,aAAa,CAAC;gBACxC,GAAG,OAAO;gBACV,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,GAAG;aACf,CAAC,GAAG,CAAC;QACR,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC"}
@@ -1,17 +0,0 @@
1
- import { ImportType } from "@azure-tools/rlc-common";
2
- import { SdkContext, SdkEnumType, SdkModelPropertyType, SdkModelType, SdkType, SdkUnionType } from "@azure-tools/typespec-client-generator-core";
3
- import { UsageFlags } from "@typespec/compiler";
4
- import { SerializerMap, SerializerOutput } from "./util.js";
5
- export interface SerializeTypeOptions<TCGCType extends SdkType | SdkModelPropertyType> {
6
- dpgContext: SdkContext;
7
- functionType: UsageFlags;
8
- serializerMap?: SerializerMap;
9
- type: TCGCType;
10
- valueExpr: string;
11
- importCallback: (importType: ImportType, importedName: string) => void;
12
- }
13
- export declare function serializeType<TCGCType extends SdkType | SdkModelPropertyType>(options: SerializeTypeOptions<TCGCType>): SerializerOutput;
14
- export declare function serializeModelPropertiesInline(options: SerializeTypeOptions<SdkModelType>): string;
15
- export declare function serializeUnionInline(options: SerializeTypeOptions<SdkUnionType>): string;
16
- export declare function serializeEnumFunctionBody(options: SerializeTypeOptions<SdkEnumType>): string;
17
- //# sourceMappingURL=serializers.d.ts.map