@autorest/typescript 6.0.0 → 6.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../src/restLevelClient/transforms/transform.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EAIV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,QAAQ,EACR,iBAAiB,EAElB,MAAM,yBAAyB,CAAC;AAiBjC,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAoBpD;AA6BD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,SAAS,GACf,iBAAiB,CA4CnB"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../src/restLevelClient/transforms/transform.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EAIV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,QAAQ,EACR,iBAAiB,EAKlB,MAAM,yBAAyB,CAAC;AAoBjC,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,CAqBpD;AAyDD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,SAAS,GACf,iBAAiB,CAoDnB"}
@@ -4,6 +4,7 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.transformAnnotationDetails = exports.transform = void 0;
6
6
  const codemodel_1 = require("@autorest/codemodel");
7
+ const rlc_common_1 = require("@azure-tools/rlc-common");
7
8
  const autorestSession_1 = require("../../autorestSession");
8
9
  const urlTransforms_1 = require("../../transforms/urlTransforms");
9
10
  const extractPaginationDetails_1 = require("../../utils/extractPaginationDetails");
@@ -19,6 +20,7 @@ const transformSchemas_1 = require("./transformSchemas");
19
20
  function transform(model) {
20
21
  const { srcPath } = (0, autorestSession_1.getAutorestOptions)();
21
22
  const importDetails = new Map();
23
+ const urlInfo = transformUrlInfo(model);
22
24
  const rlcModel = {
23
25
  libraryName: (0, nameUtils_1.normalizeName)((0, languageHelpers_1.getLanguageMetadata)(model.language).name, nameUtils_1.NameType.Interface),
24
26
  srcPath,
@@ -27,17 +29,33 @@ function transform(model) {
27
29
  schemas: (0, transformSchemas_1.transformSchemas)(model),
28
30
  responses: (0, transformResponseTypes_1.transformResponseTypes)(model, importDetails),
29
31
  importSet: importDetails,
30
- apiVersionInQueryParam: transformApiVersionParam(model),
31
32
  parameters: (0, transformParameterTypes_1.transformParameterTypes)(model, importDetails),
32
33
  annotations: transformAnnotationDetails(model),
33
- urlInfo: transformUrlInfo(model)
34
+ urlInfo: transformUrlInfo(model),
35
+ apiVersionInfo: transformApiVersion(model, urlInfo)
34
36
  };
35
37
  return rlcModel;
36
38
  }
37
39
  exports.transform = transform;
38
- function transformApiVersionParam(model) {
40
+ function transformApiVersion(model, urlInfo) {
41
+ var _a;
42
+ const queryVersionDetail = getOperationQueryApiVersion(model);
43
+ const pathVersionDetail = (0, rlc_common_1.extractPathApiVersion)(urlInfo);
44
+ const isCrossedVersion = (pathVersionDetail === null || pathVersionDetail === void 0 ? void 0 : pathVersionDetail.isCrossedVersion) || (queryVersionDetail === null || queryVersionDetail === void 0 ? void 0 : queryVersionDetail.isCrossedVersion);
45
+ let defaultValue = (_a = pathVersionDetail === null || pathVersionDetail === void 0 ? void 0 : pathVersionDetail.defaultValue) !== null && _a !== void 0 ? _a : queryVersionDetail === null || queryVersionDetail === void 0 ? void 0 : queryVersionDetail.defaultValue;
46
+ // Clear the default value if there exists cross version
47
+ if (isCrossedVersion) {
48
+ defaultValue = undefined;
49
+ }
50
+ return {
51
+ definedPosition: (0, rlc_common_1.extractDefinedPosition)(queryVersionDetail, pathVersionDetail),
52
+ isCrossedVersion,
53
+ defaultValue
54
+ };
55
+ }
56
+ function getOperationQueryApiVersion(model) {
39
57
  if (!model.globalParameters || !model.globalParameters.length) {
40
- return undefined;
58
+ return;
41
59
  }
42
60
  const apiVersionParam = model.globalParameters
43
61
  .filter(gp => {
@@ -48,12 +66,12 @@ function transformApiVersionParam(model) {
48
66
  .find(param => (0, languageHelpers_1.getLanguageMetadata)(param.language).serializedName === "api-version");
49
67
  if (apiVersionParam && (0, schemaHelpers_1.isConstantSchema)(apiVersionParam.schema)) {
50
68
  return {
51
- name: "api-version",
52
- type: "constant",
53
- default: apiVersionParam.schema.value.value.toString()
69
+ definedPosition: "path",
70
+ isCrossedVersion: false,
71
+ defaultValue: apiVersionParam.schema.value.value.toString()
54
72
  };
55
73
  }
56
- return undefined;
74
+ return;
57
75
  }
58
76
  function transformAnnotationDetails(model) {
59
77
  var _a;
@@ -76,10 +94,18 @@ function transformAnnotationDetails(model) {
76
94
  }
77
95
  (_a = operation.signatureParameters) === null || _a === void 0 ? void 0 : _a.forEach(parameter => {
78
96
  const serializeInfo = (0, transformParameterTypes_1.getSpecialSerializeInfo)(parameter);
79
- hasMultiCollection = hasMultiCollection ? hasMultiCollection : serializeInfo.hasMultiCollection;
80
- hasPipeCollection = hasPipeCollection ? hasPipeCollection : serializeInfo.hasPipeCollection;
81
- hasSsvCollection = hasSsvCollection ? hasSsvCollection : serializeInfo.hasSsvCollection;
82
- hasTsvCollection = hasTsvCollection ? hasTsvCollection : serializeInfo.hasTsvCollection;
97
+ hasMultiCollection = hasMultiCollection
98
+ ? hasMultiCollection
99
+ : serializeInfo.hasMultiCollection;
100
+ hasPipeCollection = hasPipeCollection
101
+ ? hasPipeCollection
102
+ : serializeInfo.hasPipeCollection;
103
+ hasSsvCollection = hasSsvCollection
104
+ ? hasSsvCollection
105
+ : serializeInfo.hasSsvCollection;
106
+ hasTsvCollection = hasTsvCollection
107
+ ? hasTsvCollection
108
+ : serializeInfo.hasTsvCollection;
83
109
  });
84
110
  }
85
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/restLevelClient/transforms/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/restLevelClient/transforms/transform.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,mDAK6B;AAC7B,wDAQiC;AACjC,2DAA2D;AAC3D,kEAAkE;AAClE,mFAG8C;AAC9C,iEAAkE;AAClE,qDAAgE;AAChE,0EAAuE;AACvE,oDAAoD;AACpD,yDAAsD;AACtD,uEAGmC;AACnC,qDAAkD;AAClD,qEAAkE;AAClE,yDAAsD;AAEtD,SAAgB,SAAS,CAAC,KAAgB;IACxC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACzC,MAAM,aAAa,GAAG,IAAI,GAAG,EAA2B,CAAC;IACzD,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAa;QACzB,WAAW,EAAE,IAAA,yBAAa,EACxB,IAAA,qCAAmB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EACxC,oBAAQ,CAAC,SAAS,CACnB;QACD,OAAO;QACP,KAAK,EAAE,IAAA,+BAAc,EAAC,KAAK,CAAC;QAC5B,OAAO,EAAE,IAAA,mCAAgB,EAAC,KAAK,CAAC;QAChC,OAAO,EAAE,IAAA,mCAAgB,EAAC,KAAK,CAAC;QAChC,SAAS,EAAE,IAAA,+CAAsB,EAAC,KAAK,EAAE,aAAa,CAAC;QACvD,SAAS,EAAE,aAAa;QACxB,UAAU,EAAE,IAAA,iDAAuB,EAAC,KAAK,EAAE,aAAa,CAAC;QACzD,WAAW,EAAE,0BAA0B,CAAC,KAAK,CAAC;QAC9C,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC;QAChC,cAAc,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC;KACpD,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AArBD,8BAqBC;AAED,SAAS,mBAAmB,CAC1B,KAAgB,EAChB,OAAgB;;IAEhB,MAAM,kBAAkB,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,iBAAiB,GAAG,IAAA,kCAAqB,EAAC,OAAO,CAAC,CAAC;IACzD,MAAM,gBAAgB,GACpB,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,gBAAgB,MAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,gBAAgB,CAAA,CAAC;IAC9E,IAAI,YAAY,GACd,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,YAAY,mCAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,YAAY,CAAC;IAEtE,wDAAwD;IACxD,IAAI,gBAAgB,EAAE;QACpB,YAAY,GAAG,SAAS,CAAC;KAC1B;IAED,OAAO;QACL,eAAe,EAAE,IAAA,mCAAsB,EACrC,kBAAkB,EAClB,iBAAiB,CAClB;QACD,gBAAgB;QAChB,YAAY;KACb,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,KAAgB;IAEhB,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE;QAC7D,OAAO;KACR;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,gBAAgB;SAC3C,MAAM,CACL,EAAE,CAAC,EAAE;;QACH,OAAA,EAAE,CAAC,cAAc,KAAK,kCAAsB,CAAC,MAAM;YACnD,CAAA,MAAA,EAAE,CAAC,QAAQ,CAAC,IAAI,0CAAE,EAAE,MAAK,6BAAiB,CAAC,KAAK,CAAA;KAAA,CACnD;SACA,IAAI,CACH,KAAK,CAAC,EAAE,CACN,IAAA,qCAAmB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,cAAc,KAAK,aAAa,CACvE,CAAC;IAEJ,IAAI,eAAe,IAAI,IAAA,gCAAgB,EAAC,eAAe,CAAC,MAAM,CAAC,EAAE;QAC/D,OAAO;YACL,eAAe,EAAE,MAAM;YACvB,gBAAgB,EAAE,KAAK;YACvB,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;SAC5D,CAAC;KACH;IAED,OAAO;AACT,CAAC;AAED,SAAgB,0BAA0B,CACxC,KAAgB;;IAEhB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,qBAAqB;IACrB,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1B,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,KAAK,IAAI,cAAc,IAAI,KAAK,CAAC,eAAe,EAAE;QAChD,KAAK,IAAI,SAAS,IAAI,cAAc,CAAC,UAAU,EAAE;YAC/C,MAAM,iBAAiB,GAAG,IAAA,mDAAwB,EAAC,SAAS,CAAC,CAAC;YAC9D,IAAI,iBAAiB,EAAE;gBACrB,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC;gBACrD,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,CAAC,CAAC;gBACjD,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;aAC1C;YACD,MAAA,SAAS,CAAC,mBAAmB,0CAAE,OAAO,CAAC,SAAS,CAAC,EAAE;gBACjD,MAAM,aAAa,GAAG,IAAA,iDAAuB,EAAC,SAAS,CAAC,CAAC;gBACzD,kBAAkB,GAAG,kBAAkB;oBACrC,CAAC,CAAC,kBAAkB;oBACpB,CAAC,CAAC,aAAa,CAAC,kBAAkB,CAAC;gBACrC,iBAAiB,GAAG,iBAAiB;oBACnC,CAAC,CAAC,iBAAiB;oBACnB,CAAC,CAAC,aAAa,CAAC,iBAAiB,CAAC;gBACpC,gBAAgB,GAAG,gBAAgB;oBACjC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC;gBACnC,gBAAgB,GAAG,gBAAgB;oBACjC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC;YACrC,CAAC,CAAC,CAAC;SACJ;KACF;IAED,uFAAuF;IACvF,kCAAkC;IAClC,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;IACjE,OAAO;QACL,SAAS,EAAE,IAAA,8CAAmB,EAAC,KAAK,CAAC;QACrC,cAAc,EAAE,IAAA,2CAAoB,EAAC,KAAK,CAAC;QAC3C,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;YACzB,aAAa,EAAE,CAAC,GAAG,SAAS,CAAC;YAC7B,eAAe;SAChB;QACD,kBAAkB;QAClB,iBAAiB;QACjB,gBAAgB;QAChB,gBAAgB;KACjB,CAAC;AACJ,CAAC;AAtDD,gEAsDC;AAED,SAAS,gBAAgB,CAAC,KAAgB;IACxC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAA,gCAAgB,EAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autorest/typescript",
3
- "version": "6.0.0",
3
+ "version": "6.0.1",
4
4
  "scripts": {
5
5
  "build": "tsc -p . && npm run copyFiles",
6
6
  "build:test:browser": "tsc -p tsconfig.browser-test.json && webpack --config webpack.config.test.js",
@@ -74,7 +74,7 @@
74
74
  "source-map-support": "^0.5.16",
75
75
  "ts-morph": "^15.1.0",
76
76
  "@azure/core-auth": "^1.3.2",
77
- "@azure-tools/rlc-common": "^0.11.0"
77
+ "@azure-tools/rlc-common": "^0.12.0"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@azure-tools/test-recorder": "^3.0.0",
@@ -11,7 +11,10 @@ import {
11
11
  ImportKind,
12
12
  RLCModel,
13
13
  AnnotationDetails,
14
- UrlInfo
14
+ UrlInfo,
15
+ ApiVersionInfo,
16
+ extractPathApiVersion,
17
+ extractDefinedPosition
15
18
  } from "@azure-tools/rlc-common";
16
19
  import { getAutorestOptions } from "../../autorestSession";
17
20
  import { transformBaseUrl } from "../../transforms/urlTransforms";
@@ -24,7 +27,10 @@ import { NameType, normalizeName } from "../../utils/nameUtils";
24
27
  import { hasPollingOperations } from "../helpers/hasPollingOperations";
25
28
  import { isConstantSchema } from "../schemaHelpers";
26
29
  import { transformOptions } from "./transformOptions";
27
- import { transformParameterTypes, getSpecialSerializeInfo } from "./transformParameterTypes";
30
+ import {
31
+ transformParameterTypes,
32
+ getSpecialSerializeInfo
33
+ } from "./transformParameterTypes";
28
34
  import { transformPaths } from "./transformPaths";
29
35
  import { transformResponseTypes } from "./transformResponseTypes";
30
36
  import { transformSchemas } from "./transformSchemas";
@@ -32,6 +38,7 @@ import { transformSchemas } from "./transformSchemas";
32
38
  export function transform(model: CodeModel): RLCModel {
33
39
  const { srcPath } = getAutorestOptions();
34
40
  const importDetails = new Map<ImportKind, Set<string>>();
41
+ const urlInfo = transformUrlInfo(model);
35
42
  const rlcModel: RLCModel = {
36
43
  libraryName: normalizeName(
37
44
  getLanguageMetadata(model.language).name,
@@ -43,17 +50,45 @@ export function transform(model: CodeModel): RLCModel {
43
50
  schemas: transformSchemas(model),
44
51
  responses: transformResponseTypes(model, importDetails),
45
52
  importSet: importDetails,
46
- apiVersionInQueryParam: transformApiVersionParam(model),
47
53
  parameters: transformParameterTypes(model, importDetails),
48
54
  annotations: transformAnnotationDetails(model),
49
- urlInfo: transformUrlInfo(model)
55
+ urlInfo: transformUrlInfo(model),
56
+ apiVersionInfo: transformApiVersion(model, urlInfo)
50
57
  };
51
58
  return rlcModel;
52
59
  }
53
60
 
54
- function transformApiVersionParam(model: CodeModel) {
61
+ function transformApiVersion(
62
+ model: CodeModel,
63
+ urlInfo: UrlInfo
64
+ ): ApiVersionInfo | undefined {
65
+ const queryVersionDetail = getOperationQueryApiVersion(model);
66
+ const pathVersionDetail = extractPathApiVersion(urlInfo);
67
+ const isCrossedVersion =
68
+ pathVersionDetail?.isCrossedVersion || queryVersionDetail?.isCrossedVersion;
69
+ let defaultValue =
70
+ pathVersionDetail?.defaultValue ?? queryVersionDetail?.defaultValue;
71
+
72
+ // Clear the default value if there exists cross version
73
+ if (isCrossedVersion) {
74
+ defaultValue = undefined;
75
+ }
76
+
77
+ return {
78
+ definedPosition: extractDefinedPosition(
79
+ queryVersionDetail,
80
+ pathVersionDetail
81
+ ),
82
+ isCrossedVersion,
83
+ defaultValue
84
+ };
85
+ }
86
+
87
+ function getOperationQueryApiVersion(
88
+ model: CodeModel
89
+ ): ApiVersionInfo | undefined {
55
90
  if (!model.globalParameters || !model.globalParameters.length) {
56
- return undefined;
91
+ return;
57
92
  }
58
93
 
59
94
  const apiVersionParam = model.globalParameters
@@ -69,13 +104,13 @@ function transformApiVersionParam(model: CodeModel) {
69
104
 
70
105
  if (apiVersionParam && isConstantSchema(apiVersionParam.schema)) {
71
106
  return {
72
- name: "api-version",
73
- type: "constant",
74
- default: apiVersionParam.schema.value.value.toString()
107
+ definedPosition: "path",
108
+ isCrossedVersion: false,
109
+ defaultValue: apiVersionParam.schema.value.value.toString()
75
110
  };
76
111
  }
77
112
 
78
- return undefined;
113
+ return;
79
114
  }
80
115
 
81
116
  export function transformAnnotationDetails(
@@ -100,11 +135,19 @@ export function transformAnnotationDetails(
100
135
  }
101
136
  operation.signatureParameters?.forEach(parameter => {
102
137
  const serializeInfo = getSpecialSerializeInfo(parameter);
103
- hasMultiCollection = hasMultiCollection ? hasMultiCollection: serializeInfo.hasMultiCollection;
104
- hasPipeCollection = hasPipeCollection ? hasPipeCollection: serializeInfo.hasPipeCollection;
105
- hasSsvCollection = hasSsvCollection ? hasSsvCollection: serializeInfo.hasSsvCollection;
106
- hasTsvCollection = hasTsvCollection ? hasTsvCollection: serializeInfo.hasTsvCollection;
107
- })
138
+ hasMultiCollection = hasMultiCollection
139
+ ? hasMultiCollection
140
+ : serializeInfo.hasMultiCollection;
141
+ hasPipeCollection = hasPipeCollection
142
+ ? hasPipeCollection
143
+ : serializeInfo.hasPipeCollection;
144
+ hasSsvCollection = hasSsvCollection
145
+ ? hasSsvCollection
146
+ : serializeInfo.hasSsvCollection;
147
+ hasTsvCollection = hasTsvCollection
148
+ ? hasTsvCollection
149
+ : serializeInfo.hasTsvCollection;
150
+ });
108
151
  }
109
152
  }
110
153
 
@@ -130,4 +173,3 @@ function transformUrlInfo(model: CodeModel): UrlInfo {
130
173
  const { endpoint, urlParameters } = transformBaseUrl(model);
131
174
  return { endpoint, urlParameters };
132
175
  }
133
-