openapi-ts-request 1.8.0 → 1.8.2

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.
@@ -55,6 +55,7 @@ export default class ServiceGenerator {
55
55
  private resolveEnumObject;
56
56
  private resolveAllOfObject;
57
57
  private getProps;
58
+ private resolveParameterRef;
58
59
  private resolveRefObject;
59
60
  log(message: string): void;
60
61
  private generateInfoLog;
@@ -280,26 +280,35 @@ class ServiceGenerator {
280
280
  }
281
281
  // 筛选出 pathItem 包含的 $ref 对应的schema
282
282
  (0, util_2.markAllowedSchema)(JSON.stringify(pathItem), this.openAPIData);
283
- operationObject.parameters = (_b = operationObject.parameters) === null || _b === void 0 ? void 0 : _b.filter((item) => (item === null || item === void 0 ? void 0 : item.in) !== `${config_2.parametersInsEnum.header}`);
283
+ operationObject.parameters = (_b = operationObject.parameters) === null || _b === void 0 ? void 0 : _b.filter((item) => {
284
+ const parameter = this.resolveParameterRef(item);
285
+ return (parameter === null || parameter === void 0 ? void 0 : parameter.in) !== `${config_2.parametersInsEnum.header}`;
286
+ });
284
287
  const props = [];
285
- (_c = operationObject.parameters) === null || _c === void 0 ? void 0 : _c.forEach((parameter) => {
288
+ (_c = operationObject.parameters) === null || _c === void 0 ? void 0 : _c.forEach((param) => {
286
289
  var _a;
287
- props.push({
288
- name: parameter.name,
289
- desc: ((_a = parameter.description) !== null && _a !== void 0 ? _a : '').replace(config_2.lineBreakReg, ''),
290
- required: parameter.required || false,
291
- type: this.getType(parameter.schema),
292
- });
290
+ const parameter = this.resolveParameterRef(param);
291
+ if (parameter) {
292
+ props.push({
293
+ name: parameter.name,
294
+ desc: ((_a = parameter.description) !== null && _a !== void 0 ? _a : '').replace(config_2.lineBreakReg, ''),
295
+ required: parameter.required || false,
296
+ type: this.getType(parameter.schema),
297
+ });
298
+ }
293
299
  });
294
300
  // parameters may be in path
295
- (_d = pathItem.parameters) === null || _d === void 0 ? void 0 : _d.forEach((parameter) => {
301
+ (_d = pathItem.parameters) === null || _d === void 0 ? void 0 : _d.forEach((param) => {
296
302
  var _a;
297
- props.push({
298
- name: parameter.name,
299
- desc: ((_a = parameter.description) !== null && _a !== void 0 ? _a : '').replace(config_2.lineBreakReg, ''),
300
- required: parameter.required,
301
- type: this.getType(parameter.schema),
302
- });
303
+ const parameter = this.resolveParameterRef(param);
304
+ if (parameter) {
305
+ props.push({
306
+ name: parameter.name,
307
+ desc: ((_a = parameter.description) !== null && _a !== void 0 ? _a : '').replace(config_2.lineBreakReg, ''),
308
+ required: parameter.required,
309
+ type: this.getType(parameter.schema),
310
+ });
311
+ }
303
312
  });
304
313
  const typeName = this.getFunctionParamsTypeName(Object.assign(Object.assign({}, operationObject), { method, path: pathKey }));
305
314
  if (props.length > 0 && typeName) {
@@ -997,6 +1006,16 @@ class ServiceGenerator {
997
1006
  : false });
998
1007
  });
999
1008
  }
1009
+ resolveParameterRef(param) {
1010
+ var _a, _b;
1011
+ if (!(0, util_2.isReferenceObject)(param)) {
1012
+ return param;
1013
+ }
1014
+ // 解析 $ref 引用,从 components.parameters 中获取实际定义
1015
+ const refName = (0, util_2.getLastRefName)(param.$ref);
1016
+ const parameter = (_b = (_a = this.openAPIData.components) === null || _a === void 0 ? void 0 : _a.parameters) === null || _b === void 0 ? void 0 : _b[refName];
1017
+ return parameter || null;
1018
+ }
1000
1019
  resolveRefObject(refObject) {
1001
1020
  if (!(0, util_2.isReferenceObject)(refObject)) {
1002
1021
  return refObject;
package/dist/util.js CHANGED
@@ -21,7 +21,7 @@ const getImportStatement = (requestLibPath) => {
21
21
  }
22
22
  return `import request from '${requestLibPath}';`;
23
23
  }
24
- return `import { request } from 'axios';`;
24
+ return `import request from 'axios';`;
25
25
  };
26
26
  exports.getImportStatement = getImportStatement;
27
27
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openapi-ts-request",
3
- "version": "1.8.0",
3
+ "version": "1.8.2",
4
4
  "description": "Swagger2/OpenAPI3/Apifox to TypeScript/JavaScript, request client(support any client), request mock service, enum and enum translation, react-query/vue-query, type field label, JSON Schemas",
5
5
  "engines": {
6
6
  "node": ">=18.0.0",