@azure-tools/typespec-python 0.28.0 → 0.30.0

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 (92) hide show
  1. package/dist/scripts/eng/format.d.ts +2 -0
  2. package/dist/scripts/eng/format.d.ts.map +1 -0
  3. package/dist/scripts/eng/format.js +4 -0
  4. package/dist/scripts/eng/format.js.map +1 -0
  5. package/dist/scripts/eng/lint.d.ts +5 -0
  6. package/dist/scripts/eng/lint.d.ts.map +1 -0
  7. package/dist/scripts/eng/lint.js +66 -0
  8. package/dist/scripts/eng/lint.js.map +1 -0
  9. package/dist/scripts/{regenerate.d.ts.map → eng/regenerate.d.ts.map} +1 -1
  10. package/dist/scripts/{regenerate.js → eng/regenerate.js} +33 -30
  11. package/dist/scripts/eng/regenerate.js.map +1 -0
  12. package/dist/scripts/eng/run-tests.d.ts +2 -0
  13. package/dist/scripts/eng/run-tests.d.ts.map +1 -0
  14. package/dist/scripts/eng/run-tests.js +71 -0
  15. package/dist/scripts/eng/run-tests.js.map +1 -0
  16. package/dist/scripts/eng/utils.d.ts +3 -0
  17. package/dist/scripts/eng/utils.d.ts.map +1 -0
  18. package/dist/scripts/eng/utils.js +39 -0
  19. package/dist/scripts/eng/utils.js.map +1 -0
  20. package/dist/scripts/run-python3.d.ts +2 -0
  21. package/dist/scripts/run-python3.d.ts.map +1 -0
  22. package/dist/scripts/run-python3.js +23 -0
  23. package/dist/scripts/run-python3.js.map +1 -0
  24. package/dist/scripts/system-requirements.d.ts +17 -0
  25. package/dist/scripts/system-requirements.d.ts.map +1 -0
  26. package/{scripts/system-requirements.cjs → dist/scripts/system-requirements.js} +80 -97
  27. package/dist/scripts/system-requirements.js.map +1 -0
  28. package/dist/src/code-model.d.ts.map +1 -1
  29. package/dist/src/code-model.js +23 -17
  30. package/dist/src/code-model.js.map +1 -1
  31. package/dist/src/emitter.d.ts.map +1 -1
  32. package/dist/src/emitter.js +14 -3
  33. package/dist/src/emitter.js.map +1 -1
  34. package/dist/src/external-process.js +1 -1
  35. package/dist/src/external-process.js.map +1 -1
  36. package/dist/src/http.js +34 -23
  37. package/dist/src/http.js.map +1 -1
  38. package/dist/src/lib.d.ts +1 -0
  39. package/dist/src/lib.d.ts.map +1 -1
  40. package/dist/src/lib.js +1 -0
  41. package/dist/src/lib.js.map +1 -1
  42. package/dist/src/types.d.ts +7 -1
  43. package/dist/src/types.d.ts.map +1 -1
  44. package/dist/src/types.js +42 -7
  45. package/dist/src/types.js.map +1 -1
  46. package/dist/src/utils.d.ts +3 -3
  47. package/dist/src/utils.d.ts.map +1 -1
  48. package/dist/src/utils.js +11 -13
  49. package/dist/src/utils.js.map +1 -1
  50. package/generator/pygen/black.py +2 -3
  51. package/generator/pygen/codegen/models/__init__.py +2 -0
  52. package/generator/pygen/codegen/models/code_model.py +2 -4
  53. package/generator/pygen/codegen/models/combined_type.py +1 -1
  54. package/generator/pygen/codegen/models/credential_types.py +7 -14
  55. package/generator/pygen/codegen/models/enum_type.py +1 -1
  56. package/generator/pygen/codegen/models/lro_operation.py +0 -1
  57. package/generator/pygen/codegen/models/lro_paging_operation.py +1 -1
  58. package/generator/pygen/codegen/models/model_type.py +6 -9
  59. package/generator/pygen/codegen/models/operation.py +13 -16
  60. package/generator/pygen/codegen/models/paging_operation.py +0 -1
  61. package/generator/pygen/codegen/models/parameter_list.py +2 -5
  62. package/generator/pygen/codegen/models/primitive_types.py +35 -3
  63. package/generator/pygen/codegen/models/property.py +1 -9
  64. package/generator/pygen/codegen/serializers/__init__.py +1 -1
  65. package/generator/pygen/codegen/serializers/builder_serializer.py +12 -13
  66. package/generator/pygen/codegen/serializers/general_serializer.py +2 -2
  67. package/generator/pygen/codegen/serializers/model_serializer.py +2 -0
  68. package/generator/pygen/codegen/serializers/sample_serializer.py +20 -15
  69. package/generator/pygen/codegen/templates/model_base.py.jinja2 +30 -18
  70. package/generator/pygen/codegen/templates/vendor.py.jinja2 +0 -2
  71. package/generator/pygen/m2r.py +1 -1
  72. package/generator/pygen/postprocess/__init__.py +2 -2
  73. package/generator/pygen/postprocess/venvtools.py +1 -3
  74. package/generator/pygen/preprocess/__init__.py +1 -1
  75. package/generator/pygen/utils.py +1 -3
  76. package/generator/setup.py +1 -1
  77. package/package.json +18 -25
  78. package/scripts/__pycache__/venvtools.cpython-310.pyc +0 -0
  79. package/scripts/eng/format.ts +5 -0
  80. package/scripts/eng/lint.ts +75 -0
  81. package/scripts/eng/mypy.ini +38 -0
  82. package/scripts/eng/pylintrc +58 -0
  83. package/scripts/eng/pyrightconfig.json +6 -0
  84. package/scripts/{regenerate.ts → eng/regenerate.ts} +45 -33
  85. package/scripts/eng/run-tests.ts +80 -0
  86. package/scripts/eng/utils.ts +38 -0
  87. package/scripts/run-python3.ts +25 -0
  88. package/scripts/run_tsp.py +7 -5
  89. package/scripts/system-requirements.ts +253 -0
  90. package/dist/scripts/regenerate.js.map +0 -1
  91. package/scripts/run-python3.cjs +0 -22
  92. /package/dist/scripts/{regenerate.d.ts → eng/regenerate.d.ts} +0 -0
@@ -1,59 +1,46 @@
1
- const semver = require("semver");
2
- const child_process = require("child_process");
3
-
1
+ import { spawn } from "child_process";
2
+ import { coerce, satisfies } from "semver";
4
3
  /*
5
4
  * Copied from @autorest/system-requirements
6
5
  */
7
-
8
- const PythonRequirement = "python";
9
- const PRINT_PYTHON_VERSION_SCRIPT = "import sys; print('.'.join(map(str, sys.version_info[:3])))";
10
-
11
-
12
- function execute(command, cmdlineargs, options = {}) {
6
+ const execute = (command, cmdlineargs, options = {}) => {
13
7
  return new Promise((resolve, reject) => {
14
- const cp = child_process.spawn(command, cmdlineargs, { ...options, stdio: "pipe", shell: true });
15
- if (options.onCreate) {
16
- options.onCreate(cp);
17
- }
18
-
19
- options.onStdOutData ? cp.stdout.on("data", options.onStdOutData) : cp;
20
- options.onStdErrData ? cp.stderr.on("data", options.onStdErrData) : cp;
21
-
22
- let err = "";
23
- let out = "";
24
- let all = "";
25
- cp.stderr.on("data", (chunk) => {
26
- err += chunk;
27
- all += chunk;
28
- });
29
- cp.stdout.on("data", (chunk) => {
30
- out += chunk;
31
- all += chunk;
32
- });
33
-
34
- cp.on("error", (err) => {
35
- reject(err);
36
- });
37
- cp.on("close", (code, signal) =>
38
- resolve({
39
- stdout: out,
40
- stderr: err,
41
- log: all,
42
- error: code ? new Error("Process Failed.") : null,
43
- code,
44
- }),
45
- );
8
+ const cp = spawn(command, cmdlineargs, { ...options, stdio: "pipe", shell: true });
9
+ if (options.onCreate) {
10
+ options.onCreate(cp);
11
+ }
12
+ options.onStdOutData ? cp.stdout.on("data", options.onStdOutData) : cp;
13
+ options.onStdErrData ? cp.stderr.on("data", options.onStdErrData) : cp;
14
+ let err = "";
15
+ let out = "";
16
+ let all = "";
17
+ cp.stderr.on("data", (chunk) => {
18
+ err += chunk;
19
+ all += chunk;
20
+ });
21
+ cp.stdout.on("data", (chunk) => {
22
+ out += chunk;
23
+ all += chunk;
24
+ });
25
+ cp.on("error", (err) => {
26
+ reject(err);
27
+ });
28
+ cp.on("close", (code, signal) => resolve({
29
+ stdout: out,
30
+ stderr: err,
31
+ log: all,
32
+ error: code ? new Error("Process Failed.") : null,
33
+ code,
34
+ }));
46
35
  });
47
36
  };
48
-
49
- function versionIsSatisfied(version, requirement) {
50
- const cleanedVersion = semver.coerce(version);
51
- if (!cleanedVersion) {
52
- throw new Error(`Invalid version ${version}.`);
53
- }
54
- return semver.satisfies(cleanedVersion, requirement, true);
37
+ const versionIsSatisfied = (version, requirement) => {
38
+ const cleanedVersion = coerce(version);
39
+ if (!cleanedVersion) {
40
+ throw new Error(`Invalid version ${version}.`);
41
+ }
42
+ return satisfies(cleanedVersion, requirement, true);
55
43
  };
56
-
57
44
  /**
58
45
  * Validate the provided system requirement resolution is satisfying the version requirement if applicable.
59
46
  * @param resolution Command resolution.
@@ -61,68 +48,62 @@ function versionIsSatisfied(version, requirement) {
61
48
  * @param requirement Requirement.
62
49
  * @returns the resolution if it is valid or an @see SystemRequirementError if not.
63
50
  */
64
- function validateVersionRequirement(resolution, actualVersion, requirement) {
51
+ const validateVersionRequirement = (resolution, actualVersion, requirement) => {
65
52
  if (!requirement.version) {
66
53
  return resolution; // No version requirement.
67
- }
68
-
69
- try {
54
+ }
55
+ try {
70
56
  if (versionIsSatisfied(actualVersion, requirement.version)) {
71
- return resolution;
57
+ return resolution;
72
58
  }
73
59
  return {
74
- ...resolution,
75
- error: true,
76
- message: `'${resolution.command}' version is '${actualVersion}' but doesn't satisfy requirement '${requirement.version}'. Please update.`,
77
- actualVersion: actualVersion,
78
- neededVersion: requirement.version,
60
+ ...resolution,
61
+ error: true,
62
+ message: `'${resolution.command}' version is '${actualVersion}' but doesn't satisfy requirement '${requirement.version}'. Please update.`,
63
+ actualVersion: actualVersion,
64
+ neededVersion: requirement.version,
79
65
  };
80
- } catch {
66
+ }
67
+ catch {
81
68
  return {
82
- ...resolution,
83
- error: true,
84
- message: `Couldn't parse the version ${actualVersion}. This is not a valid semver version.`,
85
- actualVersion: actualVersion,
86
- neededVersion: requirement.version,
69
+ ...resolution,
70
+ error: true,
71
+ message: `Couldn't parse the version ${actualVersion}. This is not a valid semver version.`,
72
+ actualVersion: actualVersion,
73
+ neededVersion: requirement.version,
87
74
  };
88
- }
75
+ }
89
76
  };
90
-
91
- async function tryPython(requirement, command, additionalArgs = []) {
77
+ const tryPython = async (requirement, command, additionalArgs = []) => {
92
78
  const resolution = {
93
79
  name: PythonRequirement,
94
80
  command,
95
81
  additionalArgs: additionalArgs.length > 0 ? additionalArgs : undefined,
96
- };
97
-
98
- try {
82
+ };
83
+ try {
99
84
  const result = await execute(command, [...additionalArgs, "-c", `"${PRINT_PYTHON_VERSION_SCRIPT}"`]);
100
85
  return validateVersionRequirement(resolution, result.stdout.trim(), requirement);
101
- } catch (e) {
86
+ }
87
+ catch (e) {
102
88
  return {
103
- error: true,
104
- ...resolution,
105
- message: `'${command}' command line is not found in the path. Make sure to have it installed.`,
89
+ error: true,
90
+ ...resolution,
91
+ message: `'${command}' command line is not found in the path. Make sure to have it installed.`,
106
92
  };
107
- }
93
+ }
108
94
  };
109
-
110
95
  /**
111
96
  * Returns the path to the executable as asked in the requirement.
112
97
  * @param requirement System requirement definition.
113
98
  * @returns If the requirement provide an environment variable for the path returns the value of that environment variable. undefined otherwise.
114
99
  */
115
- function getExecutablePath(requirement) {
116
- return requirement.environmentVariable && process.env[requirement.environmentVariable];
117
- }
118
-
119
- function createPythonErrorMessage(requirement, errors) {
100
+ const getExecutablePath = (requirement) => requirement.environmentVariable && process.env[requirement.environmentVariable];
101
+ const createPythonErrorMessage = (requirement, errors) => {
120
102
  const versionReq = requirement.version ?? "*";
121
103
  const lines = [
122
104
  `Couldn't find a valid python interpreter satisfying the requirement (version: ${versionReq}). Tried:`,
123
105
  ...errors.map((x) => ` - ${x.command} (${x.message})`),
124
106
  ];
125
-
126
107
  return {
127
108
  error: true,
128
109
  name: "python",
@@ -130,46 +111,44 @@ function createPythonErrorMessage(requirement, errors) {
130
111
  message: lines.join("\n"),
131
112
  };
132
113
  };
133
-
134
- async function resolvePythonRequirement(requirement) {
114
+ const resolvePythonRequirement = async (requirement) => {
115
+ // Hardcoding AUTOREST_PYTHON_EXE is for backward compatibility
135
116
  const path = getExecutablePath(requirement) ?? process.env["AUTOREST_PYTHON_EXE"];
136
117
  if (path) {
137
118
  return await tryPython(requirement, path);
138
119
  }
139
-
140
120
  const errors = [];
141
121
  // On windows try `py` executable with `-3` flag.
142
122
  if (process.platform === "win32") {
143
123
  const pyResult = await tryPython(requirement, "py", ["-3"]);
144
124
  if ("error" in pyResult) {
145
- errors.push(pyResult);
146
- } else {
147
- return pyResult;
125
+ errors.push(pyResult);
126
+ }
127
+ else {
128
+ return pyResult;
148
129
  }
149
130
  }
150
-
151
131
  const python3Result = await tryPython(requirement, "python3");
152
132
  if ("error" in python3Result) {
153
133
  errors.push(python3Result);
154
- } else {
134
+ }
135
+ else {
155
136
  return python3Result;
156
137
  }
157
-
158
138
  const pythonResult = await tryPython(requirement, "python");
159
139
  if ("error" in pythonResult) {
160
140
  errors.push(pythonResult);
161
- } else {
141
+ }
142
+ else {
162
143
  return pythonResult;
163
144
  }
164
-
165
145
  return createPythonErrorMessage(requirement, errors);
166
146
  };
167
-
168
147
  /**
169
148
  * @param command list of the command and arguments. First item in array must be a python exe @see KnownPythonExe. (e.g. ["python", "mypythonfile.py"]
170
149
  * @param requirement
171
150
  */
172
- async function patchPythonPath(command, requirement) {
151
+ export const patchPythonPath = async (command, requirement) => {
173
152
  const [_, ...args] = command;
174
153
  const resolution = await resolvePythonRequirement(requirement);
175
154
  if ("error" in resolution) {
@@ -177,4 +156,8 @@ async function patchPythonPath(command, requirement) {
177
156
  }
178
157
  return [resolution.command, ...(resolution.additionalArgs ?? []), ...args];
179
158
  };
180
- module.exports.patchPythonPath = patchPythonPath;
159
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
160
+ // TYPES
161
+ const PythonRequirement = "python";
162
+ const PRINT_PYTHON_VERSION_SCRIPT = "import sys; print('.'.join(map(str, sys.version_info[:3])))";
163
+ //# sourceMappingURL=system-requirements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-requirements.js","sourceRoot":"","sources":["../../scripts/system-requirements.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"code-model.d.ts","sourceRoot":"","sources":["../../src/code-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAWH,mBAAmB,EAGtB,MAAM,6CAA6C,CAAC;AAIrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAgM5C,wBAAgB,aAAa,CAAC,iBAAiB,SAAS,mBAAmB,EACvE,UAAU,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,uBA+BlD"}
1
+ {"version":3,"file":"code-model.d.ts","sourceRoot":"","sources":["../../src/code-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAWH,mBAAmB,EAGtB,MAAM,6CAA6C,CAAC;AAIrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAgM5C,wBAAgB,aAAa,CAAC,iBAAiB,SAAS,mBAAmB,EACvE,UAAU,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,uBAuClD"}
@@ -1,5 +1,5 @@
1
1
  import { UsageFlags, getCrossLanguagePackageId, } from "@azure-tools/typespec-client-generator-core";
2
- import { KnownTypes, emitEndpointType, getType, simpleTypesMap, typesMap } from "./types.js";
2
+ import { KnownTypes, disableGenerationMap, emitEndpointType, getType, simpleTypesMap, typesMap } from "./types.js";
3
3
  import { emitParamBase, getImplementation, removeUnderscoresFromNamespace } from "./utils.js";
4
4
  import { emitBasicHttpMethod, emitLroHttpMethod, emitLroPagingHttpMethod, emitPagingHttpMethod } from "./http.js";
5
5
  import { ignoreDiagnostics } from "@typespec/compiler";
@@ -125,23 +125,23 @@ function emitOperationGroups(context, client, rootClient, prefix) {
125
125
  return operationGroups.length > 0 ? operationGroups : undefined;
126
126
  }
127
127
  function emitClient(context, client) {
128
- var _a, _b, _c, _d;
129
128
  if (client.initialization) {
130
129
  context.__endpointPathParameters = [];
131
130
  }
132
- const parameters = (_b = (_a = client.initialization) === null || _a === void 0 ? void 0 : _a.properties.map((x) => emitMethodParameter(context, x)).reduce((a, b) => [...a, ...b])) !== null && _b !== void 0 ? _b : [];
133
- const endpointParameter = (_c = client.initialization) === null || _c === void 0 ? void 0 : _c.properties.find((x) => x.kind === "endpoint");
131
+ const parameters = client.initialization?.properties.map((x) => emitMethodParameter(context, x)).reduce((a, b) => [...a, ...b]) ??
132
+ [];
133
+ const endpointParameter = client.initialization?.properties.find((x) => x.kind === "endpoint");
134
134
  const operationGroups = emitOperationGroups(context, client, client, "");
135
135
  let url;
136
- if ((endpointParameter === null || endpointParameter === void 0 ? void 0 : endpointParameter.type.kind) === "union") {
136
+ if (endpointParameter?.type.kind === "union") {
137
137
  url = endpointParameter.type.values[0].serverUrl;
138
138
  }
139
139
  else {
140
- url = endpointParameter === null || endpointParameter === void 0 ? void 0 : endpointParameter.type.serverUrl;
140
+ url = endpointParameter?.type.serverUrl;
141
141
  }
142
142
  return {
143
143
  name: client.name,
144
- description: (_d = client.description) !== null && _d !== void 0 ? _d : "",
144
+ description: client.description ?? "",
145
145
  parameters,
146
146
  operationGroups,
147
147
  url,
@@ -157,11 +157,25 @@ export function emitCodeModel(sdkContext) {
157
157
  clients: [],
158
158
  subnamespaceToClients: {},
159
159
  };
160
+ for (const client of sdkPackage.clients) {
161
+ codeModel["clients"].push(emitClient(sdkContext, client));
162
+ if (client.nameSpace === sdkPackage.rootNamespace) {
163
+ }
164
+ else {
165
+ codeModel["subnamespaceToClients"][client.nameSpace] = emitClient(sdkContext, client);
166
+ }
167
+ }
168
+ // loop through models and enums since there may be some orphaned models needs to be generated
160
169
  for (const model of sdkPackage.models) {
161
- if (model.name === "" || (model.usage & UsageFlags.Spread) > 0) {
170
+ if (model.name === "" ||
171
+ ((model.usage & UsageFlags.Spread) > 0 &&
172
+ (model.usage & UsageFlags.Input) === 0 &&
173
+ (model.usage & UsageFlags.Output) === 0)) {
162
174
  continue;
163
175
  }
164
- getType(sdkContext, model);
176
+ if (!disableGenerationMap.has(model)) {
177
+ getType(sdkContext, model);
178
+ }
165
179
  }
166
180
  for (const sdkEnum of sdkPackage.enums) {
167
181
  if (sdkEnum.usage === UsageFlags.ApiVersionEnum) {
@@ -169,14 +183,6 @@ export function emitCodeModel(sdkContext) {
169
183
  }
170
184
  getType(sdkContext, sdkEnum);
171
185
  }
172
- for (const client of sdkPackage.clients) {
173
- codeModel["clients"].push(emitClient(sdkContext, client));
174
- if (client.nameSpace === sdkPackage.rootNamespace) {
175
- }
176
- else {
177
- codeModel["subnamespaceToClients"][client.nameSpace] = emitClient(sdkContext, client);
178
- }
179
- }
180
186
  codeModel["types"] = [...typesMap.values(), ...Object.values(KnownTypes), ...simpleTypesMap.values()];
181
187
  codeModel["crossLanguagePackageId"] = ignoreDiagnostics(getCrossLanguagePackageId(sdkContext));
182
188
  return codeModel;
@@ -1 +1 @@
1
- {"version":3,"file":"code-model.js","sourceRoot":"","sources":["../../src/code-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-model.js","sourceRoot":"","sources":["../../src/code-model.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAEH,UAAU,EAGb,MAAM,6CAA6C,CAAC;AAKrD,OAAO,EAAE,oBAAoB,EAAoB,MAAM,UAAU,CAAC;AAKlE,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,CAUjE;AAwCD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBA0CvE"}
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAEH,UAAU,EAGb,MAAM,6CAA6C,CAAC;AAKrD,OAAO,EAAE,oBAAoB,EAAoB,MAAM,UAAU,CAAC;AAMlE,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,KAAK,GAAG,MAAM,CAUjE;AAwCD,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,oBAAoB,CAAC,iBAkDvE"}
@@ -2,10 +2,11 @@ import { createSdkContext, } from "@azure-tools/typespec-client-generator-core";
2
2
  import { saveCodeModelAsYaml } from "./external-process.js";
3
3
  import { dirname } from "path";
4
4
  import { fileURLToPath } from "url";
5
- import { execFileSync } from "child_process";
5
+ import { execSync } from "child_process";
6
6
  import { emitCodeModel } from "./code-model.js";
7
7
  import { removeUnderscoresFromNamespace } from "./utils.js";
8
8
  import path from "path";
9
+ import fs from "fs";
9
10
  export function getModelsMode(context) {
10
11
  const specifiedModelsMode = context.emitContext.options["models-mode"];
11
12
  if (specifiedModelsMode) {
@@ -57,8 +58,18 @@ export async function $onEmit(context) {
57
58
  const yamlMap = emitCodeModel(sdkContext);
58
59
  addDefaultOptions(sdkContext);
59
60
  const yamlPath = await saveCodeModelAsYaml("typespec-python-yaml-map", yamlMap);
61
+ let venvPath = path.join(root, "venv");
62
+ if (fs.existsSync(path.join(venvPath, "bin"))) {
63
+ venvPath = path.join(venvPath, "bin", "python");
64
+ }
65
+ else if (fs.existsSync(path.join(venvPath, "Scripts"))) {
66
+ venvPath = path.join(venvPath, "Scripts", "python.exe");
67
+ }
68
+ else {
69
+ throw new Error("Virtual environment doesn't exist.");
70
+ }
60
71
  const commandArgs = [
61
- `${root}/scripts/run-python3.cjs`,
72
+ venvPath,
62
73
  `${root}/scripts/run_tsp.py`,
63
74
  `--output-folder=${outputDir}`,
64
75
  `--cadl-file=${yamlPath}`,
@@ -86,7 +97,7 @@ export async function $onEmit(context) {
86
97
  }
87
98
  commandArgs.push("--from-typespec=true");
88
99
  if (!program.compilerOptions.noEmit && !program.hasError()) {
89
- execFileSync(process.execPath, commandArgs);
100
+ execSync(commandArgs.join(" "));
90
101
  }
91
102
  }
92
103
  //# sourceMappingURL=emitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"AACA,OAAO,EACH,gBAAgB,GAInB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,8BAA8B,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,aAAa,CAAC,OAAmB;IAC7C,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACvE,IAAI,mBAAmB,EAAE;QACrB,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACnC,IAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;YAC1C,OAAO,mBAAmB,CAAC;SAC9B;QACD,MAAM,IAAI,KAAK,CAAC,0DAA0D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACtG;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAsB;IAC7C,MAAM,cAAc,GAAG;QACnB,iBAAiB,EAAE,SAAS;QAC5B,0BAA0B,EAAE,IAAI;QAChC,QAAQ,EAAE,SAAS;KACtB,CAAC;IACF,UAAU,CAAC,WAAW,CAAC,OAAO,GAAG;QAC7B,GAAG,cAAc;QACjB,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO;KACpC,CAAC;IACF,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC;IAC/C,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,0BAA0B,CAAC,EAAE;QACrC,OAAO,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC;KAC/E;IACD,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;QAC1B,OAAO,CAAC,cAAc,CAAC,GAAG,8BAA8B,CACpD,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,CACpD,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACzB;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;QAC5B,yEAAyE;QACzE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;KAC9B;IACD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QAC9E,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC;KAC5B;AACL,CAAC;AAED,KAAK,UAAU,sBAAsB,CACjC,OAA0C;IAE1C,OAAO;QACH,GAAG,CAAC,MAAM,gBAAgB,CAA0C,OAAO,EAAE,8BAA8B,CAAC,CAAC;QAC7G,wBAAwB,EAAE,EAAE;KAC/B,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAA0C;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAmB,OAAO,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC;IAChF,MAAM,WAAW,GAAG;QAChB,GAAG,IAAI,0BAA0B;QACjC,GAAG,IAAI,qBAAqB;QAC5B,mBAAmB,SAAS,EAAE;QAC9B,eAAe,QAAQ,EAAE;KAC5B,CAAC;IACF,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC;IACvD,IAAI,eAAe,CAAC,wBAAwB,CAAC,EAAE;QAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACjG,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,IAAI,CAAC,6BAA6B,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1E,eAAe,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC;KACzD;IACD,IACI,eAAe,CAAC,qBAAqB,CAAC,KAAK,SAAS;QACpD,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EACzD;QACE,eAAe,CAAC,qBAAqB,CAAC,GAAG,IAAI,eAAe,CAAC,qBAAqB,CAAC,GAAG,CAAC;KAC1F;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;QACxD,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;KACzC;IACD,IAAI,UAAU,CAAC,GAAG,KAAK,IAAI,EAAE;QACzB,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;KACxC;IACD,IAAI,eAAe,CAAC,MAAM,KAAK,OAAO,EAAE;QACpC,WAAW,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;KAClE;IACD,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;QACxD,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;KAC/C;AACL,CAAC"}
1
+ {"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../src/emitter.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ export async function execAsync(command, args, options = {}) {
35
35
  });
36
36
  child.on("exit", (exitCode) => {
37
37
  resolve({
38
- exitCode: exitCode !== null && exitCode !== void 0 ? exitCode : -1,
38
+ exitCode: exitCode ?? -1,
39
39
  proc: child,
40
40
  });
41
41
  });
@@ -1 +1 @@
1
- {"version":3,"file":"external-process.js","sourceRoot":"","sources":["../../src/external-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAgB,KAAK,EAAgB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,kBAAkB,GAAG,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;AAElE,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,SAAiB,EAAE;IACjE,OAAO,SAAS,CAAC,kBAAkB,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,SAAkB;IACtE,MAAM,KAAK,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,OAAe,EACf,IAAc,EACd,UAAwB,EAAE;IAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACrE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC1B,OAAO,CAAC;gBACJ,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,CAAC,CAAC;gBACxB,IAAI,EAAE,KAAK;aACd,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"external-process.js","sourceRoot":"","sources":["../../src/external-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAgB,KAAK,EAAgB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,kBAAkB,GAAG,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,CAAC;AAElE,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,SAAiB,EAAE;IACjE,OAAO,SAAS,CAAC,kBAAkB,EAAE,MAAM,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,SAAkB;IACtE,MAAM,KAAK,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC3B,OAAe,EACf,IAAc,EACd,UAAwB,EAAE;IAE1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACrE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC1B,OAAO,CAAC;gBACJ,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC;gBACxB,IAAI,EAAE,KAAK;aACd,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/src/http.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { UsageFlags, } from "@azure-tools/typespec-client-generator-core";
2
- import { camelToSnakeCase, emitParamBase, getAddedOn, getDelimeterAndExplode, getDescriptionAndSummary, getImplementation, isAbstract, isAzureCoreModel, } from "./utils.js";
2
+ import { camelToSnakeCase, emitParamBase, getAddedOn, getDelimiterAndExplode, getDescriptionAndSummary, getImplementation, isAbstract, isAzureCoreErrorResponse, } from "./utils.js";
3
3
  import { KnownTypes, getType } from "./types.js";
4
4
  function isContentTypeParameter(parameter) {
5
5
  return parameter.serializedName.toLowerCase() === "content-type";
@@ -27,7 +27,7 @@ export function emitBasicHttpMethod(context, rootClient, method, operationGroupN
27
27
  }
28
28
  function emitInitialLroHttpMethod(context, rootClient, method, operationGroupName) {
29
29
  return {
30
- ...emitHttpOperation(context, rootClient, operationGroupName, method.operation),
30
+ ...emitHttpOperation(context, rootClient, operationGroupName, method.operation, method),
31
31
  name: `_${camelToSnakeCase(method.name)}_initial`,
32
32
  isLroInitialOperation: true,
33
33
  wantTracing: false,
@@ -49,8 +49,8 @@ function addLroInformation(context, rootClient, method, operationGroupName) {
49
49
  }
50
50
  function addPagingInformation(context, rootClient, method, operationGroupName) {
51
51
  for (const response of method.operation.responses.values()) {
52
- if (response.type && !isAzureCoreModel(response.type)) {
53
- getType(context, response.type)["pageResultModel"] = true;
52
+ if (response.type) {
53
+ getType(context, response.type)["usage"] = UsageFlags.None;
54
54
  }
55
55
  }
56
56
  const itemType = getType(context, method.response.type);
@@ -84,14 +84,13 @@ export function emitLroPagingHttpMethod(context, rootClient, method, operationGr
84
84
  return [lroMethod.initialOperation, pagingMethod, lroMethod];
85
85
  }
86
86
  function emitHttpOperation(context, rootClient, operationGroupName, operation, method) {
87
- var _a, _b;
88
87
  const responses = [];
89
88
  const exceptions = [];
90
89
  for (const [statusCodes, response] of operation.responses) {
91
90
  responses.push(emitHttpResponse(context, statusCodes, response, method));
92
91
  }
93
92
  for (const [statusCodes, exception] of operation.exceptions) {
94
- exceptions.push(emitHttpResponse(context, statusCodes, exception));
93
+ exceptions.push(emitHttpResponse(context, statusCodes, exception, undefined, true));
95
94
  }
96
95
  const result = {
97
96
  url: operation.path,
@@ -108,14 +107,17 @@ function emitHttpOperation(context, rootClient, operationGroupName, operation, m
108
107
  apiVersions: [],
109
108
  wantTracing: true,
110
109
  exposeStreamKeyword: true,
111
- crossLanguageDefinitionId: method === null || method === void 0 ? void 0 : method.crossLanguageDefintionId,
112
- samples: arrayToRecord(method === null || method === void 0 ? void 0 : method.operation.examples),
110
+ crossLanguageDefinitionId: method?.crossLanguageDefintionId,
111
+ samples: arrayToRecord(method?.operation.examples),
113
112
  };
114
- if (result.bodyParameter &&
115
- ((_a = operation.bodyParam) === null || _a === void 0 ? void 0 : _a.type.kind) === "model" &&
116
- (((_b = operation.bodyParam) === null || _b === void 0 ? void 0 : _b.type.usage) & UsageFlags.Spread) > 0) {
113
+ if (result.bodyParameter && isSpreadBody(operation.bodyParam)) {
117
114
  result.bodyParameter["propertyToParameterName"] = {};
118
115
  result.bodyParameter["defaultToUnsetSentinel"] = true;
116
+ // if body type is not only used for this spread body, but also used in other input/output, we should clone it, then change the type base to json
117
+ if ((result.bodyParameter.type.usage & UsageFlags.Input) > 0 ||
118
+ (result.bodyParameter.type.usage & UsageFlags.Output) > 0) {
119
+ result.bodyParameter.type = { ...result.bodyParameter.type, name: `${method.name}Request` };
120
+ }
119
121
  result.bodyParameter.type.base = "json";
120
122
  for (const property of result.bodyParameter.type.properties) {
121
123
  result.bodyParameter["propertyToParameterName"][property["wireName"]] = property["clientName"];
@@ -124,6 +126,9 @@ function emitHttpOperation(context, rootClient, operationGroupName, operation, m
124
126
  }
125
127
  return result;
126
128
  }
129
+ function isSpreadBody(bodyParam) {
130
+ return bodyParam?.type.kind === "model" && bodyParam.type !== bodyParam.correspondingMethodParams[0]?.type;
131
+ }
127
132
  function emitFlattenedParameter(bodyParameter, property) {
128
133
  return {
129
134
  checkClientInput: false,
@@ -153,12 +158,12 @@ function emitHttpPathParameter(context, parameter) {
153
158
  location: parameter.kind,
154
159
  implementation: getImplementation(context, parameter),
155
160
  clientDefaultValue: parameter.clientDefaultValue,
156
- skipUrlEncoding: parameter.urlEncode === false,
161
+ skipUrlEncoding: parameter.allowReserved,
157
162
  };
158
163
  }
159
164
  function emitHttpHeaderParameter(context, parameter) {
160
165
  const base = emitParamBase(context, parameter);
161
- const [delimiter, explode] = getDelimeterAndExplode(parameter);
166
+ const [delimiter, explode] = getDelimiterAndExplode(parameter);
162
167
  let clientDefaultValue = parameter.clientDefaultValue;
163
168
  if (isContentTypeParameter(parameter)) {
164
169
  // we switch to string type for content-type header
@@ -179,7 +184,7 @@ function emitHttpHeaderParameter(context, parameter) {
179
184
  }
180
185
  function emitHttpQueryParameter(context, parameter) {
181
186
  const base = emitParamBase(context, parameter);
182
- const [delimiter, explode] = getDelimeterAndExplode(parameter);
187
+ const [delimiter, explode] = getDelimiterAndExplode(parameter);
183
188
  return {
184
189
  ...base,
185
190
  wireName: parameter.serializedName,
@@ -211,7 +216,7 @@ function emitHttpBodyParameter(context, bodyParam) {
211
216
  if (bodyParam === undefined)
212
217
  return undefined;
213
218
  return {
214
- ...emitParamBase(context, bodyParam, true),
219
+ ...emitParamBase(context, bodyParam),
215
220
  contentTypes: bodyParam.contentTypes,
216
221
  location: bodyParam.kind,
217
222
  clientName: bodyParam.isGeneratedName ? "body" : camelToSnakeCase(bodyParam.name),
@@ -221,16 +226,22 @@ function emitHttpBodyParameter(context, bodyParam) {
221
226
  defaultContentType: bodyParam.defaultContentType,
222
227
  };
223
228
  }
224
- function emitHttpResponse(context, statusCodes, response, method) {
225
- var _a;
229
+ function emitHttpResponse(context, statusCodes, response, method, isException = false) {
226
230
  if (!response)
227
231
  return undefined;
228
232
  let type = undefined;
229
- if (response.type && !isAzureCoreModel(response.type)) {
230
- type = getType(context, response.type);
233
+ if (isException) {
234
+ if (response.type && !isAzureCoreErrorResponse(response.type)) {
235
+ type = getType(context, response.type);
236
+ }
237
+ }
238
+ else if (method && !method.kind.includes("basic")) {
239
+ if (method.response.type) {
240
+ type = getType(context, method.response.type);
241
+ }
231
242
  }
232
- else if (method && method.response.type && !isAzureCoreModel(method.response.type)) {
233
- type = getType(context, method.response.type);
243
+ else if (response.type) {
244
+ type = getType(context, response.type);
234
245
  }
235
246
  return {
236
247
  headers: response.headers.map((x) => emitHttpResponseHeader(context, x)),
@@ -242,8 +253,8 @@ function emitHttpResponse(context, statusCodes, response, method) {
242
253
  discriminator: "basic",
243
254
  type,
244
255
  contentTypes: response.contentTypes,
245
- defaultContentType: (_a = response.defaultContentType) !== null && _a !== void 0 ? _a : "application/json",
246
- resultProperty: method === null || method === void 0 ? void 0 : method.response.resultPath,
256
+ defaultContentType: response.defaultContentType ?? "application/json",
257
+ resultProperty: method?.response.resultPath,
247
258
  };
248
259
  }
249
260
  function emitHttpResponseHeader(context, header) {