@azure-tools/typespec-ts 0.55.0-dev.7 → 0.55.0-dev.9

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 (174) hide show
  1. package/README.md +1 -77
  2. package/dist/src/index.d.ts.map +1 -1
  3. package/dist/src/index.js +24 -80
  4. package/dist/src/index.js.map +1 -1
  5. package/dist/src/lib.d.ts +2 -12
  6. package/dist/src/lib.d.ts.map +1 -1
  7. package/dist/src/lib.js +0 -65
  8. package/dist/src/lib.js.map +1 -1
  9. package/dist/src/rlc-common/helpers/name-constructors.d.ts.map +1 -1
  10. package/dist/src/rlc-common/helpers/name-constructors.js +1 -7
  11. package/dist/src/rlc-common/helpers/name-constructors.js.map +1 -1
  12. package/dist/src/rlc-common/index.d.ts +0 -16
  13. package/dist/src/rlc-common/index.d.ts.map +1 -1
  14. package/dist/src/rlc-common/index.js +0 -16
  15. package/dist/src/rlc-common/index.js.map +1 -1
  16. package/dist/src/rlc-common/interfaces.d.ts +0 -10
  17. package/dist/src/rlc-common/interfaces.d.ts.map +1 -1
  18. package/dist/src/rlc-common/interfaces.js.map +1 -1
  19. package/dist/src/rlc-common/metadata/build-package-file.d.ts.map +1 -1
  20. package/dist/src/rlc-common/metadata/build-package-file.js +0 -12
  21. package/dist/src/rlc-common/metadata/build-package-file.js.map +1 -1
  22. package/dist/src/rlc-common/metadata/build-readme-file.d.ts.map +1 -1
  23. package/dist/src/rlc-common/metadata/build-readme-file.js +4 -89
  24. package/dist/src/rlc-common/metadata/build-readme-file.js.map +1 -1
  25. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts +0 -1
  26. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.d.ts.map +1 -1
  27. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js +2 -2
  28. package/dist/src/rlc-common/metadata/package-json/build-azure-monorepo-package.js.map +1 -1
  29. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts +0 -1
  30. package/dist/src/rlc-common/metadata/package-json/package-common.d.ts.map +1 -1
  31. package/dist/src/rlc-common/metadata/package-json/package-common.js +1 -1
  32. package/dist/src/rlc-common/metadata/package-json/package-common.js.map +1 -1
  33. package/dist/src/rlc-common/test/build-snippets.d.ts.map +1 -1
  34. package/dist/src/rlc-common/test/build-snippets.js +0 -1
  35. package/dist/src/rlc-common/test/build-snippets.js.map +1 -1
  36. package/dist/src/rlc-common/test/template.d.ts +1 -1
  37. package/dist/src/rlc-common/test/template.d.ts.map +1 -1
  38. package/dist/src/rlc-common/test/template.js +0 -4
  39. package/dist/src/rlc-common/test/template.js.map +1 -1
  40. package/dist/src/transform/transform-schemas.js +1 -1
  41. package/dist/src/transform/transform-schemas.js.map +1 -1
  42. package/dist/src/transform/transform.d.ts.map +1 -1
  43. package/dist/src/transform/transform.js +5 -11
  44. package/dist/src/transform/transform.js.map +1 -1
  45. package/dist/src/transform/transfrom-rlc-options.d.ts +2 -2
  46. package/dist/src/transform/transfrom-rlc-options.d.ts.map +1 -1
  47. package/dist/src/transform/transfrom-rlc-options.js +19 -39
  48. package/dist/src/transform/transfrom-rlc-options.js.map +1 -1
  49. package/dist/src/utils/client-utils.d.ts +1 -1
  50. package/dist/src/utils/client-utils.d.ts.map +1 -1
  51. package/dist/src/utils/client-utils.js +4 -5
  52. package/dist/src/utils/client-utils.js.map +1 -1
  53. package/dist/src/utils/emit-util.d.ts +0 -1
  54. package/dist/src/utils/emit-util.d.ts.map +1 -1
  55. package/dist/src/utils/emit-util.js +0 -13
  56. package/dist/src/utils/emit-util.js.map +1 -1
  57. package/dist/src/utils/model-utils.d.ts +1 -1
  58. package/dist/src/utils/model-utils.d.ts.map +1 -1
  59. package/dist/src/utils/model-utils.js +4 -11
  60. package/dist/src/utils/model-utils.js.map +1 -1
  61. package/dist/tsconfig.tsbuildinfo +1 -1
  62. package/package.json +9 -15
  63. package/src/index.ts +27 -105
  64. package/src/lib.ts +1 -77
  65. package/src/rlc-common/helpers/name-constructors.ts +1 -8
  66. package/src/rlc-common/index.ts +0 -16
  67. package/src/rlc-common/interfaces.ts +0 -11
  68. package/src/rlc-common/metadata/build-package-file.ts +0 -13
  69. package/src/rlc-common/metadata/build-readme-file.ts +4 -99
  70. package/src/rlc-common/metadata/package-json/build-azure-monorepo-package.ts +2 -3
  71. package/src/rlc-common/metadata/package-json/package-common.ts +1 -2
  72. package/src/rlc-common/test/build-snippets.ts +0 -1
  73. package/src/rlc-common/test/template.ts +0 -4
  74. package/src/transform/transform-schemas.ts +1 -1
  75. package/src/transform/transform.ts +4 -14
  76. package/src/transform/transfrom-rlc-options.ts +19 -63
  77. package/src/utils/client-utils.ts +4 -5
  78. package/src/utils/emit-util.ts +1 -14
  79. package/src/utils/model-utils.ts +4 -17
  80. package/dist/src/rlc-common/build-client-definitions.d.ts +0 -6
  81. package/dist/src/rlc-common/build-client-definitions.d.ts.map +0 -1
  82. package/dist/src/rlc-common/build-client-definitions.js +0 -157
  83. package/dist/src/rlc-common/build-client-definitions.js.map +0 -1
  84. package/dist/src/rlc-common/build-client.d.ts +0 -9
  85. package/dist/src/rlc-common/build-client.d.ts.map +0 -1
  86. package/dist/src/rlc-common/build-client.js +0 -375
  87. package/dist/src/rlc-common/build-client.js.map +0 -1
  88. package/dist/src/rlc-common/build-index-file.d.ts +0 -6
  89. package/dist/src/rlc-common/build-index-file.d.ts.map +0 -1
  90. package/dist/src/rlc-common/build-index-file.js +0 -180
  91. package/dist/src/rlc-common/build-index-file.js.map +0 -1
  92. package/dist/src/rlc-common/build-is-unexpected-helper.d.ts +0 -6
  93. package/dist/src/rlc-common/build-is-unexpected-helper.d.ts.map +0 -1
  94. package/dist/src/rlc-common/build-is-unexpected-helper.js +0 -219
  95. package/dist/src/rlc-common/build-is-unexpected-helper.js.map +0 -1
  96. package/dist/src/rlc-common/build-logger.d.ts +0 -6
  97. package/dist/src/rlc-common/build-logger.d.ts.map +0 -1
  98. package/dist/src/rlc-common/build-logger.js +0 -23
  99. package/dist/src/rlc-common/build-logger.js.map +0 -1
  100. package/dist/src/rlc-common/build-method-shortcuts.d.ts +0 -5
  101. package/dist/src/rlc-common/build-method-shortcuts.d.ts.map +0 -1
  102. package/dist/src/rlc-common/build-method-shortcuts.js +0 -54
  103. package/dist/src/rlc-common/build-method-shortcuts.js.map +0 -1
  104. package/dist/src/rlc-common/build-object-types.d.ts +0 -29
  105. package/dist/src/rlc-common/build-object-types.d.ts.map +0 -1
  106. package/dist/src/rlc-common/build-object-types.js +0 -410
  107. package/dist/src/rlc-common/build-object-types.js.map +0 -1
  108. package/dist/src/rlc-common/build-paginate-helper.d.ts +0 -6
  109. package/dist/src/rlc-common/build-paginate-helper.d.ts.map +0 -1
  110. package/dist/src/rlc-common/build-paginate-helper.js +0 -27
  111. package/dist/src/rlc-common/build-paginate-helper.js.map +0 -1
  112. package/dist/src/rlc-common/build-parameter-types.d.ts +0 -14
  113. package/dist/src/rlc-common/build-parameter-types.d.ts.map +0 -1
  114. package/dist/src/rlc-common/build-parameter-types.js +0 -338
  115. package/dist/src/rlc-common/build-parameter-types.js.map +0 -1
  116. package/dist/src/rlc-common/build-polling-helper.d.ts +0 -6
  117. package/dist/src/rlc-common/build-polling-helper.d.ts.map +0 -1
  118. package/dist/src/rlc-common/build-polling-helper.js +0 -59
  119. package/dist/src/rlc-common/build-polling-helper.js.map +0 -1
  120. package/dist/src/rlc-common/build-response-types.d.ts +0 -6
  121. package/dist/src/rlc-common/build-response-types.d.ts.map +0 -1
  122. package/dist/src/rlc-common/build-response-types.js +0 -140
  123. package/dist/src/rlc-common/build-response-types.js.map +0 -1
  124. package/dist/src/rlc-common/build-samples.d.ts +0 -3
  125. package/dist/src/rlc-common/build-samples.d.ts.map +0 -1
  126. package/dist/src/rlc-common/build-samples.js +0 -30
  127. package/dist/src/rlc-common/build-samples.js.map +0 -1
  128. package/dist/src/rlc-common/build-schema-type.d.ts +0 -20
  129. package/dist/src/rlc-common/build-schema-type.d.ts.map +0 -1
  130. package/dist/src/rlc-common/build-schema-type.js +0 -64
  131. package/dist/src/rlc-common/build-schema-type.js.map +0 -1
  132. package/dist/src/rlc-common/build-serialize-helper.d.ts +0 -6
  133. package/dist/src/rlc-common/build-serialize-helper.d.ts.map +0 -1
  134. package/dist/src/rlc-common/build-serialize-helper.js +0 -36
  135. package/dist/src/rlc-common/build-serialize-helper.js.map +0 -1
  136. package/dist/src/rlc-common/build-top-level-index-file.d.ts +0 -6
  137. package/dist/src/rlc-common/build-top-level-index-file.d.ts.map +0 -1
  138. package/dist/src/rlc-common/build-top-level-index-file.js +0 -44
  139. package/dist/src/rlc-common/build-top-level-index-file.js.map +0 -1
  140. package/dist/src/rlc-common/helpers/path-utils.d.ts +0 -2
  141. package/dist/src/rlc-common/helpers/path-utils.d.ts.map +0 -1
  142. package/dist/src/rlc-common/helpers/path-utils.js +0 -9
  143. package/dist/src/rlc-common/helpers/path-utils.js.map +0 -1
  144. package/dist/src/rlc-common/helpers/shortcut-methods.d.ts +0 -4
  145. package/dist/src/rlc-common/helpers/shortcut-methods.d.ts.map +0 -1
  146. package/dist/src/rlc-common/helpers/shortcut-methods.js +0 -49
  147. package/dist/src/rlc-common/helpers/shortcut-methods.js.map +0 -1
  148. package/dist/src/rlc-common/helpers/value-generation-util.d.ts +0 -12
  149. package/dist/src/rlc-common/helpers/value-generation-util.d.ts.map +0 -1
  150. package/dist/src/rlc-common/helpers/value-generation-util.js +0 -161
  151. package/dist/src/rlc-common/helpers/value-generation-util.js.map +0 -1
  152. package/dist/src/rlc-common/transform-sample-groups.d.ts +0 -9
  153. package/dist/src/rlc-common/transform-sample-groups.d.ts.map +0 -1
  154. package/dist/src/rlc-common/transform-sample-groups.js +0 -298
  155. package/dist/src/rlc-common/transform-sample-groups.js.map +0 -1
  156. package/src/rlc-common/build-client-definitions.ts +0 -226
  157. package/src/rlc-common/build-client.ts +0 -463
  158. package/src/rlc-common/build-index-file.ts +0 -220
  159. package/src/rlc-common/build-is-unexpected-helper.ts +0 -241
  160. package/src/rlc-common/build-logger.ts +0 -29
  161. package/src/rlc-common/build-method-shortcuts.ts +0 -71
  162. package/src/rlc-common/build-object-types.ts +0 -591
  163. package/src/rlc-common/build-paginate-helper.ts +0 -31
  164. package/src/rlc-common/build-parameter-types.ts +0 -460
  165. package/src/rlc-common/build-polling-helper.ts +0 -80
  166. package/src/rlc-common/build-response-types.ts +0 -170
  167. package/src/rlc-common/build-samples.ts +0 -32
  168. package/src/rlc-common/build-schema-type.ts +0 -79
  169. package/src/rlc-common/build-serialize-helper.ts +0 -49
  170. package/src/rlc-common/build-top-level-index-file.ts +0 -51
  171. package/src/rlc-common/helpers/path-utils.ts +0 -8
  172. package/src/rlc-common/helpers/shortcut-methods.ts +0 -58
  173. package/src/rlc-common/helpers/value-generation-util.ts +0 -234
  174. package/src/rlc-common/transform-sample-groups.ts +0 -383
@@ -1,338 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { joinPaths } from "@typespec/compiler";
4
- import { Project, StructureKind, } from "ts-morph";
5
- import { getObjectInterfaceDeclaration } from "./build-object-types.js";
6
- import { getImportSpecifier } from "./helpers/imports-util.js";
7
- import { getParameterBaseName, getParameterTypeName } from "./helpers/name-constructors.js";
8
- import { getGeneratedWrapperTypes } from "./helpers/operation-helpers.js";
9
- import { SchemaContext, } from "./interfaces.js";
10
- export function buildParameterTypes(model) {
11
- const project = new Project({ useInMemoryFileSystem: true });
12
- const srcPath = model.srcPath;
13
- const filePath = joinPaths(srcPath, `parameters.ts`);
14
- const partialBodyTypeNames = new Set();
15
- const parametersFile = project.createSourceFile(filePath, undefined, {
16
- overwrite: true,
17
- });
18
- let hasHeaders = false;
19
- if (!model.parameters) {
20
- return;
21
- }
22
- for (const requestParameter of model.parameters) {
23
- const baseParameterName = getParameterBaseName(requestParameter.operationGroup, requestParameter.operationName);
24
- const requestCount = requestParameter?.parameters?.length ?? 0;
25
- const topParamName = getParameterTypeName(baseParameterName);
26
- const subParamNames = [];
27
- // We need to loop the requests. An operation with multiple requests means that
28
- // the operation can get different values for content-type and each value may
29
- // have a different type associated to it.
30
- for (let i = 0; i < requestCount; i++) {
31
- const parameter = requestParameter.parameters[i];
32
- if (!parameter) {
33
- continue;
34
- }
35
- const internalReferences = new Set();
36
- // In case we have more than one request to model we need to add a suffix to differentiate
37
- const nameSuffix = i > 0 ? `${i}` : "";
38
- const parameterInterfaceName = requestCount > 1 ? `${baseParameterName}RequestParameters${nameSuffix}` : topParamName;
39
- const queryParameterDefinitions = buildQueryParameterDefinition(parameter, baseParameterName, internalReferences, i);
40
- const pathParameterDefinitions = buildPathParameterDefinitions(parameter);
41
- const headerParameterDefinitions = buildHeaderParameterDefinitions(parameter, baseParameterName, parametersFile, internalReferences, i);
42
- const contentTypeParameterDefinition = buildContentTypeParametersDefinition(parameter, baseParameterName, internalReferences, i);
43
- const bodyParameterDefinition = buildBodyParametersDefinition(parameter, baseParameterName, internalReferences, i);
44
- const bodyTypeAlias = buildBodyTypeAlias(parameter, partialBodyTypeNames);
45
- if (bodyTypeAlias) {
46
- parametersFile.addTypeAlias(bodyTypeAlias);
47
- }
48
- // Add interfaces for body and query parameters
49
- parametersFile.addInterfaces([
50
- ...(bodyParameterDefinition ?? []),
51
- ...(queryParameterDefinitions ?? []),
52
- ...(pathParameterDefinitions ?? []),
53
- ...(headerParameterDefinitions ? [headerParameterDefinitions] : []),
54
- ...(contentTypeParameterDefinition ? [contentTypeParameterDefinition] : []),
55
- ]);
56
- // Add Operation parameters type alias which is composed of the types we generated above
57
- // plus the common type RequestParameters
58
- parametersFile.addTypeAlias({
59
- name: parameterInterfaceName,
60
- isExported: true,
61
- type: [...internalReferences, "RequestParameters"].join(" & "),
62
- });
63
- subParamNames.push(parameterInterfaceName);
64
- if (headerParameterDefinitions !== undefined) {
65
- hasHeaders = true;
66
- }
67
- }
68
- // Add Operation parameters type alias which is composed of the types we generated above
69
- // plus the common type RequestParameters
70
- if (requestCount > 1) {
71
- parametersFile.addTypeAlias({
72
- name: topParamName,
73
- isExported: true,
74
- type: [...subParamNames].join(" | "),
75
- });
76
- }
77
- }
78
- if (hasHeaders) {
79
- parametersFile.addImportDeclarations([
80
- {
81
- isTypeOnly: true,
82
- namedImports: ["RawHttpHeadersInput"],
83
- moduleSpecifier: getImportSpecifier("restPipeline", model.importInfo.runtimeImports),
84
- },
85
- ]);
86
- }
87
- parametersFile.addImportDeclarations([
88
- {
89
- isTypeOnly: true,
90
- namedImports: ["RequestParameters"],
91
- moduleSpecifier: getImportSpecifier("restClient", model.importInfo.runtimeImports),
92
- },
93
- ]);
94
- if ((model.importInfo.internalImports?.parameter?.importsSet?.size ?? 0) > 0) {
95
- parametersFile.addImportDeclarations([
96
- {
97
- isTypeOnly: true,
98
- namedImports: Array.from(model.importInfo.internalImports.parameter.importsSet),
99
- moduleSpecifier: `./models.js`,
100
- },
101
- ]);
102
- }
103
- // Add NodeReadableStream import if binary types are used in parameters.
104
- // platform-types.ts is generated directly under src/ (no static-helpers/
105
- // subdirectory) to match the RLC design where all output lives in src/.
106
- // The platform-types static helper resolves NodeReadableStream to
107
- // NodeJS.ReadableStream on Node and `never` on browser/react-native, so the
108
- // union arm drops out naturally in non-Node builds.
109
- if (parametersFile.getFullText().includes("NodeReadableStream")) {
110
- parametersFile.addImportDeclarations([
111
- {
112
- isTypeOnly: true,
113
- namedImports: ["NodeReadableStream"],
114
- moduleSpecifier: "#platform/platform-types",
115
- },
116
- ]);
117
- }
118
- return { path: filePath, content: parametersFile.getFullText() };
119
- }
120
- function buildQueryParameterDefinition(parameters, baseName, internalReferences, requestIndex) {
121
- const queryParameters = (parameters?.parameters || []).filter((p) => p.type === "query");
122
- if (!queryParameters.length) {
123
- return undefined;
124
- }
125
- const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
126
- const queryParameterInterfaceName = `${baseName}QueryParam${nameSuffix}`;
127
- const queryParameterPropertiesName = `${baseName}QueryParamProperties`;
128
- // Get the property signature for each query parameter
129
- const propertiesDefinition = queryParameters.map((qp) => getPropertyFromSchema(qp.param));
130
- // Get wrapper types for query parameters
131
- const wrapperTypesDefinition = getGeneratedWrapperTypes(queryParameters).map((wrapObj) => {
132
- return getObjectInterfaceDeclaration(wrapObj.name, wrapObj, [SchemaContext.Input], new Set());
133
- });
134
- const hasRequiredParameters = propertiesDefinition.some((p) => !p.hasQuestionToken);
135
- const propertiesInterface = {
136
- kind: StructureKind.Interface,
137
- isExported: true,
138
- name: queryParameterPropertiesName,
139
- properties: propertiesDefinition,
140
- };
141
- const parameterInterface = {
142
- kind: StructureKind.Interface,
143
- isExported: true,
144
- name: queryParameterInterfaceName,
145
- properties: [
146
- {
147
- name: "queryParameters",
148
- type: queryParameterPropertiesName,
149
- // Mark as optional if there are no required parameters
150
- hasQuestionToken: !hasRequiredParameters,
151
- },
152
- ],
153
- };
154
- // Mark the queryParameter interface for importing
155
- internalReferences.add(queryParameterInterfaceName);
156
- return [...wrapperTypesDefinition, propertiesInterface, parameterInterface];
157
- }
158
- function getPropertyFromSchema(schema) {
159
- const description = schema.description;
160
- return {
161
- name: schema.name,
162
- ...(description && { docs: [{ description }] }),
163
- type: schema.type,
164
- hasQuestionToken: !schema.required,
165
- kind: StructureKind.PropertySignature,
166
- };
167
- }
168
- function buildPathParameterDefinitions(parameters) {
169
- const pathParameters = (parameters.parameters || []).filter((p) => p.type === "path");
170
- if (!pathParameters.length) {
171
- return undefined;
172
- }
173
- const allDefinitions = [];
174
- // we only need to build the wrapper types if the path parameters are objects
175
- const wrapperTypesDefinition = getGeneratedWrapperTypes(pathParameters).map((wrap) => {
176
- return getObjectInterfaceDeclaration(wrap.name, wrap, [SchemaContext.Input], new Set());
177
- });
178
- allDefinitions.push(...wrapperTypesDefinition);
179
- return allDefinitions;
180
- }
181
- function buildHeaderParameterDefinitions(parameters, baseName, parametersFile, internalReferences, requestIndex) {
182
- const headerParameters = (parameters.parameters || []).filter((p) => p.type === "header" && p.name !== "contentType");
183
- if (!headerParameters.length) {
184
- return undefined;
185
- }
186
- const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
187
- const headerParameterInterfaceName = `${baseName}HeaderParam${nameSuffix}`;
188
- const headersInterface = getRequestHeaderInterfaceDefinition(headerParameters, baseName);
189
- let isOptional = true;
190
- if (headersInterface) {
191
- parametersFile.addInterface(headersInterface);
192
- isOptional = !(headersInterface.properties || []).some((prop) => prop.hasQuestionToken === false);
193
- }
194
- internalReferences.add(headerParameterInterfaceName);
195
- return {
196
- isExported: true,
197
- kind: StructureKind.Interface,
198
- name: headerParameterInterfaceName,
199
- properties: [
200
- {
201
- name: "headers",
202
- type: `RawHttpHeadersInput & ${baseName}Headers`,
203
- kind: StructureKind.PropertySignature,
204
- hasQuestionToken: isOptional,
205
- },
206
- ],
207
- };
208
- }
209
- function getRequestHeaderInterfaceDefinition(headerParameters, baseName) {
210
- const headersInterfaceName = `${baseName}Headers`;
211
- return {
212
- kind: StructureKind.Interface,
213
- isExported: true,
214
- name: headersInterfaceName,
215
- properties: headerParameters.map((h) => getPropertyFromSchema(h.param)),
216
- };
217
- }
218
- function buildContentTypeParametersDefinition(parameters, baseName, internalReferences, requestIndex) {
219
- const mediaTypeParameters = (parameters.parameters || []).filter((p) => p.type === "header" && p.name === "contentType");
220
- if (!mediaTypeParameters.length) {
221
- return undefined;
222
- }
223
- const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
224
- const mediaTypesParameterInterfaceName = `${baseName}MediaTypesParam${nameSuffix}`;
225
- // Mark the queryParameter interface for importing
226
- internalReferences.add(mediaTypesParameterInterfaceName);
227
- const firstMediaType = mediaTypeParameters[0];
228
- if (!firstMediaType) {
229
- return undefined;
230
- }
231
- const mediaParam = firstMediaType.param;
232
- return {
233
- isExported: true,
234
- kind: StructureKind.Interface,
235
- name: mediaTypesParameterInterfaceName,
236
- properties: [getPropertyFromSchema(mediaParam)],
237
- };
238
- }
239
- function buildBodyParametersDefinition(parameters, baseName, internalReferences, requestIndex) {
240
- const bodyParameters = parameters.body;
241
- if (!bodyParameters || !bodyParameters?.body || !bodyParameters?.body.length) {
242
- return [];
243
- }
244
- const nameSuffix = requestIndex > 0 ? `${requestIndex}` : "";
245
- const bodyParameterInterfaceName = `${baseName}BodyParam${nameSuffix}`;
246
- internalReferences.add(bodyParameterInterfaceName);
247
- // In case of formData we'd get multiple properties in body marked as partialBody
248
- if (bodyParameters.isPartialBody) {
249
- let allOptionalParts = true;
250
- const propertiesDefinitions = [];
251
- for (const param of bodyParameters.body) {
252
- if (param.required) {
253
- allOptionalParts = false;
254
- }
255
- propertiesDefinitions.push(getPropertyFromSchema(param));
256
- }
257
- const formBodyName = `${baseName}FormBody`;
258
- const formBodyInterface = {
259
- isExported: true,
260
- kind: StructureKind.Interface,
261
- name: formBodyName,
262
- properties: propertiesDefinitions,
263
- };
264
- return [
265
- {
266
- isExported: true,
267
- kind: StructureKind.Interface,
268
- name: bodyParameterInterfaceName,
269
- properties: [
270
- {
271
- name: "body",
272
- type: formBodyName,
273
- hasQuestionToken: allOptionalParts,
274
- },
275
- ],
276
- },
277
- formBodyInterface,
278
- ];
279
- }
280
- else {
281
- const firstBody = bodyParameters.body[0];
282
- if (!firstBody) {
283
- return [];
284
- }
285
- const bodySignature = getPropertyFromSchema(firstBody);
286
- return [
287
- {
288
- isExported: true,
289
- kind: StructureKind.Interface,
290
- name: bodyParameterInterfaceName,
291
- properties: [
292
- {
293
- docs: bodySignature.docs,
294
- name: "body",
295
- type: bodySignature.type,
296
- hasQuestionToken: bodySignature.hasQuestionToken,
297
- },
298
- ],
299
- },
300
- ];
301
- }
302
- }
303
- export function buildBodyTypeAlias(parameters, partialBodyTypeNames) {
304
- const bodyParameters = parameters.body;
305
- if (!bodyParameters || !bodyParameters?.body || !bodyParameters?.body.length) {
306
- return undefined;
307
- }
308
- const schema = bodyParameters.body[0];
309
- const headerParameters = (parameters.parameters || []).filter((p) => p.type === "header" && p.name === "contentType");
310
- if (!headerParameters.length || headerParameters.length > 1) {
311
- return undefined;
312
- }
313
- const firstHeader = headerParameters[0];
314
- if (!firstHeader) {
315
- return undefined;
316
- }
317
- const contentType = firstHeader.param.type;
318
- const description = `${schema.description}`;
319
- const typeName = `${schema.typeName}ResourceMergeAndPatch`;
320
- if (partialBodyTypeNames.has(typeName)) {
321
- return null;
322
- }
323
- else {
324
- partialBodyTypeNames.add(typeName);
325
- }
326
- if (contentType.includes("application/merge-patch+json")) {
327
- const type = `Partial<${schema.typeName}>`;
328
- return {
329
- // kind: StructureKind.TypeAlias,
330
- ...(description && { docs: [{ description }] }),
331
- name: `${typeName}`,
332
- type,
333
- isExported: true,
334
- };
335
- }
336
- return undefined;
337
- }
338
- //# sourceMappingURL=build-parameter-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-parameter-types.js","sourceRoot":"","sources":["../../../src/rlc-common/build-parameter-types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { RLCModel } from "./interfaces.js";
2
- export declare function buildPollingHelper(model: RLCModel): {
3
- path: string;
4
- content: string;
5
- } | undefined;
6
- //# sourceMappingURL=build-polling-helper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-polling-helper.d.ts","sourceRoot":"","sources":["../../../src/rlc-common/build-polling-helper.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAmBxE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ;;;cAYjD"}
@@ -1,59 +0,0 @@
1
- import { joinPaths } from "@typespec/compiler";
2
- import { OPERATION_LRO_HIGH_PRIORITY } from "./interfaces.js";
3
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
4
- // @ts-ignore: to fix the handlebars issue
5
- import hbs from "handlebars";
6
- import { hasPollingOperations } from "./helpers/operation-helpers.js";
7
- import { pollingContent } from "./static/polling-content.js";
8
- export function buildPollingHelper(model) {
9
- if (!hasPollingOperations(model)) {
10
- return;
11
- }
12
- const lroDetail = buildLroHelperDetail(model);
13
- const readmeFileContents = hbs.compile(pollingContent, { noEscape: true });
14
- const { srcPath } = model;
15
- return {
16
- path: joinPaths(srcPath, "pollingHelper.ts"),
17
- content: readmeFileContents(lroDetail),
18
- };
19
- }
20
- function buildLroHelperDetail(model) {
21
- if (!model.helperDetails?.clientLroOverload) {
22
- return {
23
- clientOverload: false,
24
- };
25
- }
26
- const mapDetail = [];
27
- const pathDictionary = model.paths;
28
- const responses = new Set();
29
- for (const details of Object.values(pathDictionary)) {
30
- for (const methodDetails of Object.values(details.methods)) {
31
- const firstMethod = methodDetails[0];
32
- if (!firstMethod) {
33
- continue;
34
- }
35
- const lroDetail = firstMethod.operationHelperDetail?.lroDetails;
36
- if (lroDetail?.isLongRunning) {
37
- const initialResponses = firstMethod.responseTypes.success.concat(firstMethod.responseTypes.error);
38
- const finalResponse = lroDetail.logicalResponseTypes?.success.concat(firstMethod.responseTypes.error);
39
- if (initialResponses && finalResponse) {
40
- initialResponses.forEach((n) => responses.add(n));
41
- finalResponse.forEach((n) => responses.add(n));
42
- mapDetail.push({
43
- initialResponses: initialResponses.join("|"),
44
- finalResponses: finalResponse.join("|"),
45
- precedence: lroDetail.precedence ?? OPERATION_LRO_HIGH_PRIORITY,
46
- });
47
- }
48
- }
49
- }
50
- }
51
- // Sorted by the precedence
52
- mapDetail.sort((d1, d2) => d1.precedence - d2.precedence);
53
- return {
54
- clientOverload: responses.size > 0 && mapDetail.length > 0,
55
- importedResponses: Array.from(responses),
56
- overloadMap: mapDetail,
57
- };
58
- }
59
- //# sourceMappingURL=build-polling-helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-polling-helper.js","sourceRoot":"","sources":["../../../src/rlc-common/build-polling-helper.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { RLCModel } from "./interfaces.js";
2
- export declare function buildResponseTypes(model: RLCModel): {
3
- path: string;
4
- content: string;
5
- } | undefined;
6
- //# sourceMappingURL=build-response-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-response-types.d.ts","sourceRoot":"","sources":["../../../src/rlc-common/build-response-types.ts"],"names":[],"mappings":"AAaA,OAAO,EAA0C,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGnF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ;;;cAyFjD"}
@@ -1,140 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { joinPaths } from "@typespec/compiler";
4
- import { Project, StructureKind, } from "ts-morph";
5
- import { getImportSpecifier } from "./helpers/imports-util.js";
6
- import { getResponseBaseName, getResponseTypeName } from "./helpers/name-constructors.js";
7
- let hasErrorResponse = false;
8
- export function buildResponseTypes(model) {
9
- const project = new Project({ useInMemoryFileSystem: true });
10
- const srcPath = model.srcPath;
11
- const filePath = joinPaths(srcPath, `responses.ts`);
12
- hasErrorResponse = false;
13
- const responsesFile = project.createSourceFile(filePath, undefined, {
14
- overwrite: true,
15
- });
16
- // Set used to track down which models need to be imported
17
- // Track if we need to import RawHttpHeaders
18
- let hasHeaders = false;
19
- if (!model.responses) {
20
- return;
21
- }
22
- for (const operationResponse of model.responses) {
23
- for (const response of operationResponse.responses) {
24
- // Building the response type base name
25
- const baseResponseName = getResponseBaseName(operationResponse.operationGroup, operationResponse.operationName, response.statusCode);
26
- // Build the response header
27
- const headersInterface = getResponseHeaderInterfaceDefinition(response, baseResponseName);
28
- if (headersInterface) {
29
- hasHeaders = true;
30
- responsesFile.addInterface(headersInterface);
31
- }
32
- // Get the information to build the Response Interface
33
- const responseTypeName = response.predefinedName ?? getResponseTypeName(baseResponseName);
34
- const responseProperties = getResponseInterfaceProperties(response, headersInterface?.name);
35
- const responseInterfaceDefinition = {
36
- name: responseTypeName,
37
- properties: responseProperties,
38
- isExported: true,
39
- extends: ["HttpResponse"],
40
- };
41
- // Only add a description if one was provided in the Swagger
42
- // otherwise skip to avoid having empty TSDoc lines
43
- if (response.description) {
44
- responseInterfaceDefinition.docs = [{ description: response.description }];
45
- }
46
- // Add the response interface to the responses file
47
- responsesFile.addInterface(responseInterfaceDefinition);
48
- }
49
- }
50
- if (hasHeaders) {
51
- responsesFile.addImportDeclarations([
52
- {
53
- isTypeOnly: true,
54
- namedImports: ["RawHttpHeaders"],
55
- moduleSpecifier: getImportSpecifier("restPipeline", model.importInfo.runtimeImports),
56
- },
57
- ]);
58
- }
59
- const namedImports = ["HttpResponse"];
60
- if (hasErrorResponse) {
61
- namedImports.push("ErrorResponse");
62
- }
63
- responsesFile.addImportDeclarations([
64
- {
65
- isTypeOnly: true,
66
- namedImports,
67
- moduleSpecifier: getImportSpecifier("restClient", model.importInfo.runtimeImports),
68
- },
69
- ]);
70
- if ((model.importInfo.internalImports.response?.importsSet?.size ?? 0) > 0) {
71
- const modelNamedImports = Array.from(model.importInfo.internalImports.response.importsSet).filter((modelName) => {
72
- return !(modelName === "ErrorResponseOutput" && hasErrorResponse);
73
- });
74
- responsesFile.addImportDeclarations([
75
- {
76
- isTypeOnly: true,
77
- namedImports: modelNamedImports,
78
- moduleSpecifier: `./outputModels.js`,
79
- },
80
- ]);
81
- }
82
- return { path: filePath, content: responsesFile.getFullText() };
83
- }
84
- function getResponseHeaderInterfaceDefinition(response, baseName) {
85
- // Check if there are any required headers
86
- if (!response.headers) {
87
- return;
88
- }
89
- const headersInterfaceName = `${baseName}Headers`;
90
- return {
91
- kind: StructureKind.Interface,
92
- isExported: true,
93
- name: headersInterfaceName,
94
- properties: response?.headers.map((h) => {
95
- const description = h.description;
96
- return {
97
- name: h.name,
98
- ...(description && { docs: [{ description }] }),
99
- type: h.type,
100
- hasQuestionToken: !h.required,
101
- };
102
- }),
103
- };
104
- }
105
- /**
106
- * Gets the properties that need to be part of the response interface
107
- */
108
- function getResponseInterfaceProperties(response, headersInterfaceName) {
109
- const statusCode = response.statusCode;
110
- const responseProperties = [
111
- {
112
- name: "status",
113
- type: statusCode === "default" ? `string` : `"${statusCode}"`,
114
- kind: StructureKind.PropertySignature,
115
- },
116
- ];
117
- if (response.body) {
118
- const description = response.body.description;
119
- let type = response.body.type;
120
- if (response.body.type === "ErrorResponseOutput" && response.body.fromCore) {
121
- type = "ErrorResponse";
122
- hasErrorResponse = true;
123
- }
124
- responseProperties.push({
125
- name: "body",
126
- type,
127
- kind: StructureKind.PropertySignature,
128
- ...(description && { docs: [{ description }] }),
129
- });
130
- }
131
- if (headersInterfaceName) {
132
- responseProperties.push({
133
- name: "headers",
134
- type: `RawHttpHeaders & ${headersInterfaceName}`,
135
- kind: StructureKind.PropertySignature,
136
- });
137
- }
138
- return responseProperties;
139
- }
140
- //# sourceMappingURL=build-response-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-response-types.js","sourceRoot":"","sources":["../../../src/rlc-common/build-response-types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { File as RLCFile, RLCModel } from "./interfaces.js";
2
- export declare function buildSamples(model: RLCModel): RLCFile[] | undefined;
3
- //# sourceMappingURL=build-samples.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-samples.d.ts","sourceRoot":"","sources":["../../../src/rlc-common/build-samples.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,QAAQ,EAAkB,MAAM,iBAAiB,CAAC;AAQ5E,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,yBAoB3C"}
@@ -1,30 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT License.
3
- import { sampleTemplate } from "./static/sample-template.js";
4
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
5
- // @ts-ignore: to fix the handlebars issue
6
- import { joinPaths } from "@typespec/compiler";
7
- import hbs from "handlebars";
8
- // Build sample files for the model based on the sample groups
9
- export function buildSamples(model) {
10
- if (!model.options || !model.options.packageDetails) {
11
- return;
12
- }
13
- const sampleGroups = model.sampleGroups;
14
- if (!sampleGroups || sampleGroups.length === 0) {
15
- return;
16
- }
17
- const sampleFiles = [];
18
- for (const sampleGroup of sampleGroups) {
19
- const sampleGroupFileContents = hbs.compile(sampleTemplate, {
20
- noEscape: true,
21
- });
22
- const filePath = joinPaths("samples-dev", `${sampleGroup.filename}.ts`);
23
- sampleFiles.push({
24
- path: filePath,
25
- content: sampleGroupFileContents(sampleGroup),
26
- });
27
- }
28
- return sampleFiles;
29
- }
30
- //# sourceMappingURL=build-samples.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-samples.js","sourceRoot":"","sources":["../../../src/rlc-common/build-samples.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,6DAA6D;AAC7D,0CAA0C;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,8DAA8D;AAC9D,MAAM,UAAU,YAAY,CAAC,KAAe;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACpD,OAAO;IACT,CAAC;IACD,MAAM,YAAY,GAAiC,KAAK,CAAC,YAAY,CAAC;IACtE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO;IACT,CAAC;IACD,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE;YAC1D,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,EAAE,GAAG,WAAW,CAAC,QAAQ,KAAK,CAAC,CAAC;QACxE,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,uBAAuB,CAAC,WAAW,CAAC;SAC9C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC"}