@azure-tools/typespec-ts 0.23.0 → 0.25.0-alpha.20240311.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.
- package/CHANGELOG.md +14 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +10 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib.d.ts +5 -2
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +2 -1
- package/dist/src/lib.js.map +1 -1
- package/dist/src/modular/buildCodeModel.d.ts.map +1 -1
- package/dist/src/modular/buildCodeModel.js +86 -45
- package/dist/src/modular/buildCodeModel.js.map +1 -1
- package/dist/src/modular/buildProjectFiles.js +11 -12
- package/dist/src/modular/buildProjectFiles.js.map +1 -1
- package/dist/src/modular/emitModels.d.ts.map +1 -1
- package/dist/src/modular/emitModels.js +3 -6
- package/dist/src/modular/emitModels.js.map +1 -1
- package/dist/src/modular/helpers/classicalOperationHelpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/classicalOperationHelpers.js +8 -2
- package/dist/src/modular/helpers/classicalOperationHelpers.js.map +1 -1
- package/dist/src/modular/helpers/operationHelpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/operationHelpers.js +22 -5
- package/dist/src/modular/helpers/operationHelpers.js.map +1 -1
- package/dist/src/modular/helpers/typeHelpers.d.ts.map +1 -1
- package/dist/src/modular/helpers/typeHelpers.js +11 -5
- package/dist/src/modular/helpers/typeHelpers.js.map +1 -1
- package/dist/src/transform/transform.d.ts.map +1 -1
- package/dist/src/transform/transform.js +2 -2
- package/dist/src/transform/transform.js.map +1 -1
- package/dist/src/transform/transformApiVersionInfo.js +2 -2
- package/dist/src/transform/transformApiVersionInfo.js.map +1 -1
- package/dist/src/transform/transformHelperFunctionDetails.d.ts +2 -2
- package/dist/src/transform/transformHelperFunctionDetails.d.ts.map +1 -1
- package/dist/src/transform/transformHelperFunctionDetails.js +3 -3
- package/dist/src/transform/transformHelperFunctionDetails.js.map +1 -1
- package/dist/src/transform/transformParameters.js +1 -1
- package/dist/src/transform/transformParameters.js.map +1 -1
- package/dist/src/transform/transformPaths.js +5 -5
- package/dist/src/transform/transformPaths.js.map +1 -1
- package/dist/src/transform/transformResponses.js +2 -2
- package/dist/src/transform/transformResponses.js.map +1 -1
- package/dist/src/transform/transfromRLCOptions.d.ts +3 -2
- package/dist/src/transform/transfromRLCOptions.d.ts.map +1 -1
- package/dist/src/transform/transfromRLCOptions.js +30 -10
- package/dist/src/transform/transfromRLCOptions.js.map +1 -1
- package/dist/src/utils/emitUtil.js +9 -9
- package/dist/src/utils/emitUtil.js.map +1 -1
- package/dist/src/utils/modelUtils.d.ts +2 -6
- package/dist/src/utils/modelUtils.d.ts.map +1 -1
- package/dist/src/utils/modelUtils.js +54 -39
- package/dist/src/utils/modelUtils.js.map +1 -1
- package/dist/src/utils/operationUtil.d.ts +2 -2
- package/dist/src/utils/operationUtil.d.ts.map +1 -1
- package/dist/src/utils/operationUtil.js +10 -10
- package/dist/src/utils/operationUtil.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -17
- package/src/index.ts +6 -5
- package/src/lib.ts +7 -2
- package/src/modular/buildCodeModel.ts +89 -48
- package/src/modular/buildProjectFiles.ts +13 -13
- package/src/modular/emitModels.ts +3 -6
- package/src/modular/helpers/classicalOperationHelpers.ts +9 -2
- package/src/modular/helpers/operationHelpers.ts +28 -9
- package/src/modular/helpers/typeHelpers.ts +12 -6
- package/src/transform/transform.ts +6 -2
- package/src/transform/transformApiVersionInfo.ts +2 -2
- package/src/transform/transformHelperFunctionDetails.ts +4 -4
- package/src/transform/transformParameters.ts +1 -1
- package/src/transform/transformPaths.ts +5 -5
- package/src/transform/transformResponses.ts +2 -2
- package/src/transform/transfromRLCOptions.ts +49 -22
- package/src/utils/emitUtil.ts +7 -7
- package/src/utils/modelUtils.ts +51 -44
- package/src/utils/operationUtil.ts +11 -9
|
@@ -18,12 +18,12 @@ export function transformRLCOptions(emitterOptions, dpgContext) {
|
|
|
18
18
|
function extractRLCOptions(dpgContext, emitterOptions, generationRootDir) {
|
|
19
19
|
const program = dpgContext.program;
|
|
20
20
|
const includeShortcuts = getIncludeShortcuts(emitterOptions);
|
|
21
|
-
const branded = getBranded(emitterOptions);
|
|
22
21
|
const packageDetails = getPackageDetails(program, emitterOptions);
|
|
22
|
+
const flavor = getFlavor(emitterOptions, packageDetails);
|
|
23
23
|
const serviceInfo = getServiceInfo(program);
|
|
24
24
|
const azureSdkForJs = getAzureSdkForJs(emitterOptions);
|
|
25
25
|
const generateMetadata = getGenerateMetadata(emitterOptions);
|
|
26
|
-
const generateTest = getGenerateTest(emitterOptions,
|
|
26
|
+
const generateTest = getGenerateTest(emitterOptions, flavor);
|
|
27
27
|
const generateSample = getGenerateSample(emitterOptions);
|
|
28
28
|
const credentialInfo = getCredentialInfo(program, emitterOptions);
|
|
29
29
|
const azureOutputDirectory = getAzureOutputDirectory(generationRootDir);
|
|
@@ -33,7 +33,7 @@ function extractRLCOptions(dpgContext, emitterOptions, generationRootDir) {
|
|
|
33
33
|
return {
|
|
34
34
|
...emitterOptions,
|
|
35
35
|
...credentialInfo,
|
|
36
|
-
|
|
36
|
+
flavor,
|
|
37
37
|
includeShortcuts,
|
|
38
38
|
packageDetails,
|
|
39
39
|
generateMetadata,
|
|
@@ -134,7 +134,7 @@ function detectIfNameConflicts(dpgContext) {
|
|
|
134
134
|
const clientOperations = listOperationsInOperationGroup(dpgContext, client);
|
|
135
135
|
for (const clientOp of clientOperations) {
|
|
136
136
|
const route = ignoreDiagnostics(getHttpOperation(program, clientOp));
|
|
137
|
-
const name = getOperationName(
|
|
137
|
+
const name = getOperationName(dpgContext, route.operation);
|
|
138
138
|
if (nameSet.has(name)) {
|
|
139
139
|
return true;
|
|
140
140
|
}
|
|
@@ -147,7 +147,7 @@ function detectIfNameConflicts(dpgContext) {
|
|
|
147
147
|
const operations = listOperationsInOperationGroup(dpgContext, operationGroup);
|
|
148
148
|
for (const op of operations) {
|
|
149
149
|
const route = ignoreDiagnostics(getHttpOperation(program, op));
|
|
150
|
-
const name = getOperationName(
|
|
150
|
+
const name = getOperationName(dpgContext, route.operation);
|
|
151
151
|
if (nameSet.has(name)) {
|
|
152
152
|
return true;
|
|
153
153
|
}
|
|
@@ -163,8 +163,28 @@ function detectIfNameConflicts(dpgContext) {
|
|
|
163
163
|
function getIncludeShortcuts(emitterOptions) {
|
|
164
164
|
return Boolean(emitterOptions.includeShortcuts);
|
|
165
165
|
}
|
|
166
|
-
function
|
|
167
|
-
|
|
166
|
+
function getFlavor(emitterOptions, packageDetails) {
|
|
167
|
+
const flavor = emitterOptions.flavor;
|
|
168
|
+
if (flavor !== undefined) {
|
|
169
|
+
if (flavor.toLowerCase() === "azure") {
|
|
170
|
+
return "azure";
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const branded = emitterOptions.branded;
|
|
177
|
+
if (branded !== undefined) {
|
|
178
|
+
return branded ? "azure" : undefined;
|
|
179
|
+
}
|
|
180
|
+
const scopeName = packageDetails === null || packageDetails === void 0 ? void 0 : packageDetails.scopeName;
|
|
181
|
+
if (scopeName !== undefined &&
|
|
182
|
+
(scopeName.startsWith("azure") || scopeName.startsWith("msinternal"))) {
|
|
183
|
+
return "azure";
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
168
188
|
}
|
|
169
189
|
function getPackageDetails(program, emitterOptions) {
|
|
170
190
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
@@ -211,13 +231,13 @@ function getGenerateMetadata(emitterOptions) {
|
|
|
211
231
|
* @param emitterOptions
|
|
212
232
|
* @returns
|
|
213
233
|
*/
|
|
214
|
-
function getGenerateTest(emitterOptions,
|
|
215
|
-
if (
|
|
234
|
+
function getGenerateTest(emitterOptions, flavor) {
|
|
235
|
+
if (flavor !== "azure" &&
|
|
216
236
|
(emitterOptions.generateTest === undefined ||
|
|
217
237
|
emitterOptions.generateTest === null)) {
|
|
218
238
|
return undefined;
|
|
219
239
|
}
|
|
220
|
-
else if (
|
|
240
|
+
else if (flavor === "azure" &&
|
|
221
241
|
(emitterOptions.generateTest === undefined ||
|
|
222
242
|
emitterOptions.generateTest === null)) {
|
|
223
243
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfromRLCOptions.js","sourceRoot":"","sources":["../../../src/transform/transfromRLCOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,aAAa,
|
|
1
|
+
{"version":3,"file":"transfromRLCOptions.js","sourceRoot":"","sources":["../../../src/transform/transfromRLCOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,aAAa,EAKd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,MAAM,EACN,iBAAiB,EACjB,QAAQ,EAET,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAkB,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC/B,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,MAAM,UAAU,mBAAmB,CACjC,cAA8B,EAC9B,UAAsB;;IAEtB,0CAA0C;IAC1C,MAAM,OAAO,GAAG,iBAAiB,CAC/B,UAAU,EACV,cAAc,EACd,MAAA,MAAA,UAAU,CAAC,oBAAoB,0CAAE,OAAO,mCAAI,EAAE,CAC/C,CAAC;IACF,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACtB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAsB,EACtB,cAA8B,EAC9B,iBAAyB;IAEzB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACvD,MAAM,gBAAgB,GACpB,mBAAmB,CAAC,cAAc,CAAC,CAAC;IACtC,MAAM,YAAY,GAAwB,eAAe,CACvD,cAAc,EACd,MAAM,CACP,CAAC;IACF,MAAM,cAAc,GAAwB,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAC9E,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAClE,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;IACxE,MAAM,oBAAoB,GAAG,uBAAuB,CAClD,UAAU,EACV,cAAc,CACf,CAAC;IACF,MAAM,oBAAoB,GAAG,uBAAuB,CAClD,UAAU,EACV,cAAc,CACf,CAAC;IACF,MAAM,eAAe,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC3D,OAAO;QACL,GAAG,cAAc;QACjB,GAAG,cAAc;QACjB,MAAM;QACN,gBAAgB;QAChB,cAAc;QACd,gBAAgB;QAChB,YAAY;QACZ,cAAc;QACd,aAAa;QACb,WAAW;QACX,oBAAoB;QACpB,UAAU,EAAE,UAAU;QACtB,oBAAoB;QACpB,oBAAoB;QACpB,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB;;IACnC,MAAM,SAAS,GAAG,MAAA,iBAAiB,CAAC,OAAO,CAAC,0CAAE,IAAI,CAAC;IACnD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,SAAS,CAAC;KAClB;IACD,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5D,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;QAC5C,OAAO,SAAS,CAAC;KAClB;IACD,MAAM,YAAY,GAAe,EAAE,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE;QAC1C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE;YACjC,QAAQ,IAAI,CAAC,IAAI,EAAE;gBACjB,KAAK,MAAM;oBACT,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC;oBACnC,YAAY,CAAC,wBAAwB,GAAG,eAAe,CAAC;oBACxD,YAAY,CAAC,6BAA6B,GAAG,IAAI,CAAC,MAAM,CAAC;oBACzD,MAAM;gBACR,KAAK,QAAQ;oBACX,IAAI,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE;wBACxB,OAAO,SAAS,CAAC;qBAClB;oBACD,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC;oBACnC,YAAY,CAAC,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC;oBACjD,MAAM;gBACR,KAAK,QAAQ,CAAC,CAAC;oBACb,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;wBACtC,OAAO,SAAS,CAAC;qBAClB;oBACD,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC;oBACnC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;wBAClC,YAAY,CAAC,gBAAgB,GAAG,EAAE,CAAC;qBACpC;oBACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC5B,gBAAgB,CAAC,OAAO,EAAE;4BACxB,IAAI,EAAE,sBAAsB;4BAC5B,MAAM,EAAE,QAAQ;yBACjB,CAAC,CAAC;qBACJ;oBACD,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAChC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC1B,OAAO,IAAI,CAAC,KAAK,CAAC;oBACpB,CAAC,CAAC,CACH,CAAC;oBACF,MAAM;iBACP;gBACD;oBACE,MAAM;aACT;SACF;KACF;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,uBAAuB,CAC9B,UAAsB,EACtB,cAA8B;IAE9B,IACE,cAAc,CAAC,oBAAoB,KAAK,IAAI;QAC5C,cAAc,CAAC,oBAAoB,KAAK,KAAK,EAC7C;QACA,OAAO,cAAc,CAAC,oBAAoB,CAAC;KAC5C;IACD,wFAAwF;IACxF,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,uBAAuB,CAC9B,UAAsB,EACtB,cAA8B;IAE9B,IACE,cAAc,CAAC,oBAAoB,KAAK,IAAI;QAC5C,cAAc,CAAC,oBAAoB,KAAK,KAAK,EAC7C;QACA,OAAO,cAAc,CAAC,oBAAoB,CAAC;KAC5C;IACD,kFAAkF;IAClF,OAAO,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,kBAAkB,CAAC,cAA8B;IACxD,IACE,cAAc,CAAC,eAAe,KAAK,IAAI;QACvC,cAAc,CAAC,eAAe,KAAK,KAAK,EACxC;QACA,OAAO,cAAc,CAAC,eAAe,CAAC;KACvC;IACD,mFAAmF;IACnF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAsB;IACnD,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,0EAA0E;QAC1E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5E,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE;YACvC,MAAM,KAAK,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACrB,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACnB;SACF;QACD,MAAM,eAAe,GAAG,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACtE,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;YAC5C,MAAM,UAAU,GAAG,8BAA8B,CAC/C,UAAU,EACV,cAAc,CACf,CAAC;YACF,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;gBAC3B,MAAM,KAAK,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC/D,MAAM,IAAI,GAAG,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC3D,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACrB,OAAO,IAAI,CAAC;iBACb;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBACnB;aACF;SACF;KACF;IAED,uCAAuC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,cAA8B;IACzD,OAAO,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,SAAS,CAChB,cAA8B,EAC9B,cAA+B;IAE/B,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;IAErC,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;YACpC,OAAO,OAAO,CAAC;SAChB;aAAM;YACL,OAAO,SAAS,CAAC;SAClB;KACF;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IACvC,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;KACtC;IAED,MAAM,SAAS,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,CAAC;IAC5C,IACE,SAAS,KAAK,SAAS;QACvB,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,EACrE;QACA,OAAO,OAAO,CAAC;KAChB;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAgB,EAChB,cAA8B;;IAE9B,MAAM,cAAc,GAAmB;QACrC,GAAG,cAAc,CAAC,cAAc;QAChC,IAAI,EACF,MAAA,MAAA,cAAc,CAAC,cAAc,0CAAE,IAAI,mCACnC,aAAa,CACX,MAAA,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,mCAAI,MAAA,iBAAiB,CAAC,OAAO,CAAC,0CAAE,KAAK,mCAAI,EAAE,EAChE,QAAQ,CAAC,KAAK,CACf;QACH,OAAO,EAAE,MAAA,MAAA,cAAc,CAAC,cAAc,0CAAE,OAAO,mCAAI,cAAc;KAClE,CAAC;IACF,IAAI,MAAA,cAAc,CAAC,cAAc,0CAAE,IAAI,EAAE;QACvC,MAAM,SAAS,GAAG,MAAA,cAAc,CAAC,cAAc,0CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,cAAc,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC/C,cAAc,CAAC,SAAS,GAAG,MAAA,SAAS,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SAC3D;KACF;IACD,OAAO,CACL,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI;QAChB,IAAI,EAAE,2BAA2B;QACjC,gBAAgB,EAAE,eAAe;QACjC,OAAO,EAAE,cAAc;KACxB,CACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,OAAO;QACL,KAAK,EAAE,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK;QAC5B,WAAW,EAAE,cAAc,IAAI,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;KACpE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,cAA8B;IACtD,OAAO,cAAc,CAAC,aAAa,KAAK,SAAS;QAC/C,cAAc,CAAC,aAAa,KAAK,IAAI;QACrC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,cAA8B;IACzD,IACE,cAAc,CAAC,gBAAgB,KAAK,SAAS;QAC7C,cAAc,CAAC,gBAAgB,KAAK,IAAI,EACxC;QACA,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,cAA8B,EAAE,MAAgB;IACvE,IACE,MAAM,KAAK,OAAO;QAClB,CAAC,cAAc,CAAC,YAAY,KAAK,SAAS;YACxC,cAAc,CAAC,YAAY,KAAK,IAAI,CAAC,EACvC;QACA,OAAO,SAAS,CAAC;KAClB;SAAM,IACL,MAAM,KAAK,OAAO;QAClB,CAAC,cAAc,CAAC,YAAY,KAAK,SAAS;YACxC,cAAc,CAAC,YAAY,KAAK,IAAI,CAAC,EACvC;QACA,OAAO,IAAI,CAAC;KACb;IACD,OAAO,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,cAA8B;IACvD,IACE,cAAc,CAAC,cAAc,KAAK,SAAS;QAC3C,cAAc,CAAC,cAAc,KAAK,IAAI,EACtC;QACA,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,OAAgB,EAChB,cAA8B;IAE9B,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,cAAc,GAClB,cAAc,CAAC,cAAc,KAAK,KAAK;QACrC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,YAAY;YACZ,CAAC,CAAC,YAAY,CAAC,cAAc;YAC7B,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;IACtC,MAAM,gBAAgB,GACpB,YAAY,IAAI,YAAY,CAAC,gBAAgB;QAC3C,CAAC,CAAC,YAAY,CAAC,gBAAgB;QAC/B,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC;IACtC,MAAM,uBAAuB,GAC3B,YAAY,IAAI,YAAY,CAAC,uBAAuB;QAClD,CAAC,CAAC,YAAY,CAAC,uBAAuB;QACtC,CAAC,CAAC,cAAc,CAAC,uBAAuB,CAAC;IAC7C,MAAM,wBAAwB,GAC5B,YAAY,IAAI,YAAY,CAAC,wBAAwB;QACnD,CAAC,CAAC,YAAY,CAAC,wBAAwB;QACvC,CAAC,CAAC,cAAc,CAAC,wBAAwB,CAAC;IAC9C,MAAM,6BAA6B,GACjC,YAAY,IAAI,YAAY,CAAC,6BAA6B;QACxD,CAAC,CAAC,YAAY,CAAC,6BAA6B;QAC5C,CAAC,CAAC,cAAc,CAAC,6BAA6B,CAAC;IACnD,OAAO;QACL,cAAc;QACd,gBAAgB;QAChB,uBAAuB;QACvB,wBAAwB;QACxB,6BAA6B;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,gBAAwB;IACvD,MAAM,SAAS,GAAG,gBAAgB,CAAC;IACnC,MAAM,eAAe,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAC7B,OAAO,CAAC,KAAK,EAAE,EAAE,EAClB,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,CAAC,CAAC,EACR,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAK,KAAK;QAC/C,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC"}
|
|
@@ -3,25 +3,25 @@ import { dirname, join } from "path";
|
|
|
3
3
|
import { format } from "prettier";
|
|
4
4
|
import { prettierJSONOptions, prettierTypeScriptOptions } from "../lib.js";
|
|
5
5
|
export async function emitModels(rlcModels, program) {
|
|
6
|
-
var _a
|
|
6
|
+
var _a;
|
|
7
7
|
const schemaOutput = buildSchemaTypes(rlcModels);
|
|
8
|
-
const
|
|
8
|
+
const isAzureFlavor = ((_a = rlcModels === null || rlcModels === void 0 ? void 0 : rlcModels.options) === null || _a === void 0 ? void 0 : _a.flavor) === "azure";
|
|
9
9
|
if (schemaOutput) {
|
|
10
10
|
const { inputModelFile, outputModelFile } = schemaOutput;
|
|
11
11
|
if (inputModelFile) {
|
|
12
|
-
await emitFile(inputModelFile, program,
|
|
12
|
+
await emitFile(inputModelFile, program, isAzureFlavor);
|
|
13
13
|
}
|
|
14
14
|
if (outputModelFile) {
|
|
15
|
-
await emitFile(outputModelFile, program,
|
|
15
|
+
await emitFile(outputModelFile, program, isAzureFlavor);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
export async function emitContentByBuilder(program, builderFnOrList, rlcModels, emitterOutputDir) {
|
|
20
|
-
var _a
|
|
20
|
+
var _a;
|
|
21
21
|
if (!Array.isArray(builderFnOrList)) {
|
|
22
22
|
builderFnOrList = [builderFnOrList];
|
|
23
23
|
}
|
|
24
|
-
const
|
|
24
|
+
const isAzureFlavor = ((_a = rlcModels === null || rlcModels === void 0 ? void 0 : rlcModels.options) === null || _a === void 0 ? void 0 : _a.flavor) === "azure";
|
|
25
25
|
for (const builderFn of builderFnOrList) {
|
|
26
26
|
let contentFiles = builderFn(rlcModels);
|
|
27
27
|
if (!contentFiles) {
|
|
@@ -31,16 +31,16 @@ export async function emitContentByBuilder(program, builderFnOrList, rlcModels,
|
|
|
31
31
|
contentFiles = [contentFiles];
|
|
32
32
|
}
|
|
33
33
|
for (const file of contentFiles) {
|
|
34
|
-
await emitFile(file, program,
|
|
34
|
+
await emitFile(file, program, isAzureFlavor, emitterOutputDir);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
async function emitFile(file, program,
|
|
38
|
+
async function emitFile(file, program, isAzureFlavor, emitterOutputDir) {
|
|
39
39
|
const host = program.host;
|
|
40
40
|
const filePath = join(emitterOutputDir !== null && emitterOutputDir !== void 0 ? emitterOutputDir : "", file.path);
|
|
41
41
|
const isJson = /\.json$/gi.test(filePath);
|
|
42
42
|
const isSourceCode = /\.(ts|js)$/gi.test(filePath);
|
|
43
|
-
const microsoftHeader =
|
|
43
|
+
const microsoftHeader = isAzureFlavor
|
|
44
44
|
? `// Copyright (c) Microsoft Corporation.\n`
|
|
45
45
|
: "";
|
|
46
46
|
const licenseHeader = `${microsoftHeader}// Licensed under the MIT license.\n`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitUtil.js","sourceRoot":"","sources":["../../../src/utils/emitUtil.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAE3E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAmB,EAAE,OAAgB;;IACpE,MAAM,YAAY,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,
|
|
1
|
+
{"version":3,"file":"emitUtil.js","sourceRoot":"","sources":["../../../src/utils/emitUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,13 +27,9 @@ export declare function getBodyType(program: Program, route: HttpOperation): Typ
|
|
|
27
27
|
export declare function predictDefaultValue(dpgContext: SdkContext, param?: ModelProperty): string | number | boolean | undefined;
|
|
28
28
|
export declare function getDefaultService(program: Program): Service | undefined;
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
31
|
-
* TODO: remember to switch to TCGC once the fix is done
|
|
32
|
-
* @param program
|
|
33
|
-
* @param dpgContext
|
|
34
|
-
* @returns default api-version value
|
|
30
|
+
* Return the default api version from the program; undefined if no default
|
|
35
31
|
*/
|
|
36
|
-
export declare function
|
|
32
|
+
export declare function getDefaultApiVersionString(program: Program, dpgContext: SdkContext): string | undefined;
|
|
37
33
|
export declare function trimUsage(model: any): any;
|
|
38
34
|
export declare function isAzureCoreErrorType(t?: Type): boolean;
|
|
39
35
|
export declare function isAnonymousObjectSchema(schema: Schema): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/modelUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAwBL,KAAK,EACL,aAAa,EACb,IAAI,
|
|
1
|
+
{"version":3,"file":"modelUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/modelUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAwBL,KAAK,EACL,aAAa,EACb,IAAI,EASJ,OAAO,EAEP,OAAO,EAKR,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAKL,YAAY,EACZ,MAAM,EACN,aAAa,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAKL,aAAa,EAGd,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI/D,eAAO,MAAM,iBAAiB,6EAC8C,CAAC;AAE7E,eAAO,MAAM,0BAA0B,oFAAgC,CAAC;AAExE,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,6FAInD;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,WAGnE;AA8BD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,OAkBjD;AAED,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,IAAI,EACf,OAAO,CAAC,EAAE,gBAAgB,OAsF3B;AACD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAmB5E;AACD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,OAAe,GACvB,OAAO,CAST;AA6gCD,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,GAAG,MAAM,CAG3E;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,aAAa,EAAE,GACtB,MAAM,CAyBR;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,aAAa,EAAE,GACtB,MAAM,EAAE,CAoDV;AA+CD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,aAAa,GAAG,IAAI,EAC1B,UAAU,EAAE,GAAG,EACf,QAAQ,GAAE,MAAe,sBAW1B;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,aAAa,GACnB,IAAI,GAAG,SAAS,CAWlB;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,UAAU,EACtB,KAAK,CAAC,EAAE,aAAa,yCAmBtB;AAoBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAevE;AACD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,GACrB,MAAM,GAAG,SAAS,CAIpB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,OAanC;AAED,wBAAgB,oBAAoB,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAetD;AAGD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,WAErD;AAGD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,WAK9C;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,EAAE,CAAA;CAAO,UAwBxE"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
|
-
import { getDiscriminator, getDoc, getEffectiveModelType, getFormat, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getProperty, getPropertyType, getSummary, getVisibility, isNeverType, isNumericType, isSecret, isStringType, isTemplateDeclaration, isUnknownType, isNullType,
|
|
3
|
+
import { getDiscriminator, getDoc, getEffectiveModelType, getFormat, getFriendlyName, getMaxLength, getMaxValue, getMinLength, getMinValue, getPattern, getProperty, getPropertyType, getSummary, getVisibility, isNeverType, isNumericType, isSecret, isStringType, isTemplateDeclaration, isUnknownType, isNullType, NoTarget, listServices, getEncode, isRecordModelType, isArrayModelType } from "@typespec/compiler";
|
|
4
4
|
import { reportDiagnostic } from "../lib.js";
|
|
5
5
|
import { NameType, normalizeName, SchemaContext } from "@azure-tools/rlc-common";
|
|
6
6
|
import { getHeaderFieldName, getPathParamName, getQueryParamName, isStatusCode, createMetadataInfo, Visibility } from "@typespec/http";
|
|
7
7
|
import { getPagedResult, isFixed } from "@azure-tools/typespec-azure-core";
|
|
8
8
|
import { extractPagedMetadataNested } from "./operationUtil.js";
|
|
9
|
-
import { getDefaultApiVersion, isApiVersion } from "@azure-tools/typespec-client-generator-core";
|
|
9
|
+
import { getDefaultApiVersion, getWireName, isApiVersion } from "@azure-tools/typespec-client-generator-core";
|
|
10
10
|
import { getModelNamespaceName } from "./namespaceUtils.js";
|
|
11
11
|
import { KnownMediaType, hasMediaType } from "./mediaTypes.js";
|
|
12
12
|
export const BINARY_TYPE_UNION = "string | Uint8Array | ReadableStream<Uint8Array> | NodeJS.ReadableStream";
|
|
@@ -132,7 +132,7 @@ export function getSchemaForType(dpgContext, typeInput, options) {
|
|
|
132
132
|
return getSchemaForEnumMember(program, type);
|
|
133
133
|
}
|
|
134
134
|
if (isUnknownType(type)) {
|
|
135
|
-
const returnType = { type: "unknown" };
|
|
135
|
+
const returnType = { name: "unknown", type: "unknown" };
|
|
136
136
|
if (usage && usage.includes(SchemaContext.Output)) {
|
|
137
137
|
returnType.outputTypeName = "any";
|
|
138
138
|
returnType.typeName = "unknown";
|
|
@@ -140,10 +140,10 @@ export function getSchemaForType(dpgContext, typeInput, options) {
|
|
|
140
140
|
return returnType;
|
|
141
141
|
}
|
|
142
142
|
if (isNeverType(type)) {
|
|
143
|
-
return { type: "never" };
|
|
143
|
+
return { name: "never", type: "never" };
|
|
144
144
|
}
|
|
145
145
|
if (isNullType(type)) {
|
|
146
|
-
return { type: "null" };
|
|
146
|
+
return { name: "null", type: "null" };
|
|
147
147
|
}
|
|
148
148
|
reportDiagnostic(program, {
|
|
149
149
|
code: "invalid-schema",
|
|
@@ -153,7 +153,11 @@ export function getSchemaForType(dpgContext, typeInput, options) {
|
|
|
153
153
|
return undefined;
|
|
154
154
|
}
|
|
155
155
|
export function getEffectiveModelFromType(program, type) {
|
|
156
|
-
|
|
156
|
+
/**
|
|
157
|
+
* If type is an anonymous model, tries to find a named model that has the same
|
|
158
|
+
* set of properties when non-schema properties are excluded.
|
|
159
|
+
*/
|
|
160
|
+
if (type.kind === "Model" && type.name === "") {
|
|
157
161
|
const effective = getEffectiveModelType(program, type, isSchemaProperty);
|
|
158
162
|
if (effective.name) {
|
|
159
163
|
return effective;
|
|
@@ -282,12 +286,15 @@ function getSchemaForUnion(dpgContext, union, options) {
|
|
|
282
286
|
else {
|
|
283
287
|
schema.type = "union";
|
|
284
288
|
schema.typeName = (_a = union.name) !== null && _a !== void 0 ? _a : unionAlias;
|
|
289
|
+
schema.outputTypeName = union.name
|
|
290
|
+
? union.name + "Output"
|
|
291
|
+
: outputUnionAlias;
|
|
285
292
|
}
|
|
286
293
|
}
|
|
287
294
|
return schema;
|
|
288
295
|
}
|
|
289
296
|
function getSchemaForUnionVariant(dpgContext, variant, options) {
|
|
290
|
-
return getSchemaForType(dpgContext, variant, options);
|
|
297
|
+
return getSchemaForType(dpgContext, variant.type, options);
|
|
291
298
|
}
|
|
292
299
|
// An openapi "string" can be defined in several different ways in typespec
|
|
293
300
|
function isOasString(type) {
|
|
@@ -303,6 +310,10 @@ function isOasString(type) {
|
|
|
303
310
|
// A union where all variants are an OasString
|
|
304
311
|
return type.options.every((o) => isOasString(o));
|
|
305
312
|
}
|
|
313
|
+
else if (type.kind === "UnionVariant") {
|
|
314
|
+
// A union variant where the type is an OasString
|
|
315
|
+
return isOasString(type.type);
|
|
316
|
+
}
|
|
306
317
|
return false;
|
|
307
318
|
}
|
|
308
319
|
function isStringLiteral(type) {
|
|
@@ -310,7 +321,8 @@ function isStringLiteral(type) {
|
|
|
310
321
|
return (type.kind === "String" ||
|
|
311
322
|
(type.kind === "Union" && type.options.every((o) => o.kind === "String")) ||
|
|
312
323
|
(type.kind === "EnumMember" &&
|
|
313
|
-
typeof ((_a = type.value) !== null && _a !== void 0 ? _a : type.name) === "string")
|
|
324
|
+
typeof ((_a = type.value) !== null && _a !== void 0 ? _a : type.name) === "string") ||
|
|
325
|
+
(type.kind === "UnionVariant" && type.type.kind === "String"));
|
|
314
326
|
}
|
|
315
327
|
// Return any string literal values for type
|
|
316
328
|
function getStringValues(type) {
|
|
@@ -324,6 +336,8 @@ function getStringValues(type) {
|
|
|
324
336
|
.filter((x) => x !== undefined);
|
|
325
337
|
case "EnumMember":
|
|
326
338
|
return typeof type.value !== "number" ? [(_a = type.value) !== null && _a !== void 0 ? _a : type.name] : [];
|
|
339
|
+
case "UnionVariant":
|
|
340
|
+
return getStringValues(type.type);
|
|
327
341
|
default:
|
|
328
342
|
return [];
|
|
329
343
|
}
|
|
@@ -419,15 +433,13 @@ function getSchemaForModel(dpgContext, model, options) {
|
|
|
419
433
|
return getSchemaForArrayModel(dpgContext, model, options);
|
|
420
434
|
}
|
|
421
435
|
const program = dpgContext.program;
|
|
422
|
-
const overridedModelName = (_a = getFriendlyName(program, model)) !== null && _a !== void 0 ? _a :
|
|
423
|
-
const fullNamespaceName =
|
|
436
|
+
const overridedModelName = (_a = getFriendlyName(program, model)) !== null && _a !== void 0 ? _a : getWireName(dpgContext, model);
|
|
437
|
+
const fullNamespaceName = getModelNamespaceName(dpgContext, model.namespace)
|
|
424
438
|
.map((nsName) => {
|
|
425
439
|
return normalizeName(nsName, NameType.Interface);
|
|
426
440
|
})
|
|
427
441
|
.join("") + model.name;
|
|
428
|
-
let name =
|
|
429
|
-
? fullNamespaceName
|
|
430
|
-
: model.name;
|
|
442
|
+
let name = model.name;
|
|
431
443
|
if (!overridedModelName &&
|
|
432
444
|
model.templateMapper &&
|
|
433
445
|
model.templateMapper.args &&
|
|
@@ -448,7 +460,11 @@ function getSchemaForModel(dpgContext, model, options) {
|
|
|
448
460
|
.join("") + "List";
|
|
449
461
|
}
|
|
450
462
|
const modelSchema = {
|
|
451
|
-
name: overridedModelName !==
|
|
463
|
+
name: overridedModelName !== name
|
|
464
|
+
? overridedModelName
|
|
465
|
+
: ((_b = dpgContext.rlcOptions) === null || _b === void 0 ? void 0 : _b.enableModelNamespace)
|
|
466
|
+
? fullNamespaceName
|
|
467
|
+
: name,
|
|
452
468
|
type: "object",
|
|
453
469
|
description: (_c = getDoc(program, model)) !== null && _c !== void 0 ? _c : ""
|
|
454
470
|
};
|
|
@@ -547,7 +563,7 @@ function getSchemaForModel(dpgContext, model, options) {
|
|
|
547
563
|
};
|
|
548
564
|
}
|
|
549
565
|
for (const [propName, prop] of model.properties) {
|
|
550
|
-
const restApiName =
|
|
566
|
+
const restApiName = getWireName(dpgContext, prop);
|
|
551
567
|
const name = `"${restApiName !== null && restApiName !== void 0 ? restApiName : propName}"`;
|
|
552
568
|
if (!isSchemaProperty(program, prop)) {
|
|
553
569
|
continue;
|
|
@@ -576,7 +592,14 @@ function getSchemaForModel(dpgContext, model, options) {
|
|
|
576
592
|
if (propertyName &&
|
|
577
593
|
name === `"${propertyName}"` &&
|
|
578
594
|
modelSchema.discriminator) {
|
|
579
|
-
modelSchema.discriminator
|
|
595
|
+
modelSchema.discriminator = {
|
|
596
|
+
...modelSchema.discriminator,
|
|
597
|
+
...{
|
|
598
|
+
type: (_p = propSchema.typeName) !== null && _p !== void 0 ? _p : propSchema.type,
|
|
599
|
+
typeName: propSchema.typeName,
|
|
600
|
+
outputTypeName: propSchema.outputTypeName
|
|
601
|
+
}
|
|
602
|
+
};
|
|
580
603
|
continue;
|
|
581
604
|
}
|
|
582
605
|
// Apply decorators on the property to the type's schema
|
|
@@ -654,10 +677,6 @@ function applyIntrinsicDecorators(program, type, target) {
|
|
|
654
677
|
if (isString && !(target === null || target === void 0 ? void 0 : target.documentation) && docStr) {
|
|
655
678
|
newTarget.description = docStr;
|
|
656
679
|
}
|
|
657
|
-
const restApiName = getProjectedName(program, type, "json");
|
|
658
|
-
if (restApiName) {
|
|
659
|
-
newTarget.name = restApiName;
|
|
660
|
-
}
|
|
661
680
|
const summaryStr = getSummary(program, type);
|
|
662
681
|
if (isString && !target.summary && summaryStr) {
|
|
663
682
|
newTarget.summary = summaryStr;
|
|
@@ -700,8 +719,12 @@ function getSchemaForEnumMember(program, e) {
|
|
|
700
719
|
}
|
|
701
720
|
function getSchemaForEnum(dpgContext, e) {
|
|
702
721
|
const values = [];
|
|
703
|
-
const
|
|
704
|
-
|
|
722
|
+
const memberValues = Array.from(e.members.values());
|
|
723
|
+
if (memberValues.length === 0) {
|
|
724
|
+
return {};
|
|
725
|
+
}
|
|
726
|
+
const type = enumMemberType(memberValues[0]);
|
|
727
|
+
for (const option of memberValues) {
|
|
705
728
|
if (type !== enumMemberType(option)) {
|
|
706
729
|
reportDiagnostic(dpgContext.program, {
|
|
707
730
|
code: "union-unsupported",
|
|
@@ -725,7 +748,8 @@ function getSchemaForEnum(dpgContext, e) {
|
|
|
725
748
|
return schema;
|
|
726
749
|
}
|
|
727
750
|
function enumMemberType(member) {
|
|
728
|
-
|
|
751
|
+
const memberValue = member.value;
|
|
752
|
+
if (typeof memberValue === "number") {
|
|
729
753
|
return "number";
|
|
730
754
|
}
|
|
731
755
|
return "string";
|
|
@@ -1205,7 +1229,7 @@ export function predictDefaultValue(dpgContext, param) {
|
|
|
1205
1229
|
if (!serviceNamespace) {
|
|
1206
1230
|
return;
|
|
1207
1231
|
}
|
|
1208
|
-
const defaultApiVersion =
|
|
1232
|
+
const defaultApiVersion = getDefaultApiVersionString(program, dpgContext);
|
|
1209
1233
|
if (param && isApiVersion(dpgContext, param) && defaultApiVersion) {
|
|
1210
1234
|
return defaultApiVersion;
|
|
1211
1235
|
}
|
|
@@ -1239,22 +1263,13 @@ export function getDefaultService(program) {
|
|
|
1239
1263
|
return services[0];
|
|
1240
1264
|
}
|
|
1241
1265
|
/**
|
|
1242
|
-
*
|
|
1243
|
-
* TODO: remember to switch to TCGC once the fix is done
|
|
1244
|
-
* @param program
|
|
1245
|
-
* @param dpgContext
|
|
1246
|
-
* @returns default api-version value
|
|
1266
|
+
* Return the default api version from the program; undefined if no default
|
|
1247
1267
|
*/
|
|
1248
|
-
export function
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
const defaultVersion = getDefaultApiVersion(dpgContext, serviceNamespace.type);
|
|
1254
|
-
if (defaultVersion) {
|
|
1255
|
-
return defaultVersion.value;
|
|
1256
|
-
}
|
|
1257
|
-
return serviceNamespace.version;
|
|
1268
|
+
export function getDefaultApiVersionString(program, dpgContext) {
|
|
1269
|
+
var _a;
|
|
1270
|
+
return getDefaultService(program)
|
|
1271
|
+
? (_a = getDefaultApiVersion(dpgContext, getDefaultService(program).type)) === null || _a === void 0 ? void 0 : _a.value
|
|
1272
|
+
: undefined;
|
|
1258
1273
|
}
|
|
1259
1274
|
export function trimUsage(model) {
|
|
1260
1275
|
if (typeof model !== "object") {
|