swagger-client 2.1.21 → 2.1.25

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/lib/http.js CHANGED
@@ -38,6 +38,10 @@ SwaggerHttp.prototype.execute = function (obj, opts) {
38
38
  }
39
39
  client.opts = opts || {};
40
40
 
41
+ if (opts && opts.requestAgent) {
42
+ request = opts.requestAgent;
43
+ }
44
+
41
45
  // legacy support
42
46
  var hasJQuery = false;
43
47
  if(typeof window !== 'undefined') {
@@ -207,6 +211,7 @@ JQueryHttpClient.prototype.execute = function (obj) {
207
211
  };
208
212
 
209
213
  SuperagentHttpClient.prototype.execute = function (obj) {
214
+ var connectionAgent = obj.connectionAgent;
210
215
  var method = obj.method.toLowerCase();
211
216
  var timeout = obj.timeout;
212
217
 
@@ -214,6 +219,11 @@ SuperagentHttpClient.prototype.execute = function (obj) {
214
219
  method = 'del';
215
220
  }
216
221
  var headers = obj.headers || {};
222
+
223
+ if (connectionAgent) {
224
+ request = request.agent(connectionAgent);
225
+ }
226
+
217
227
  var r = request[method](obj.url);
218
228
 
219
229
  if (timeout) {
@@ -240,33 +250,7 @@ SuperagentHttpClient.prototype.execute = function (obj) {
240
250
  if (contentType.indexOf('multipart/form-data') === 0) {
241
251
  delete headers['Content-Type'];
242
252
  if({}.toString.apply(obj.body) === '[object FormData]') {
243
- var itr = obj.body.keys();
244
- var p = [];
245
- while(true) {
246
- var v = itr.next();
247
- if(v.done) {
248
- break;
249
- }
250
- var key = v.value;
251
- // only once
252
- if(p.indexOf(key) === -1) {
253
- p.push(key);
254
- var value = obj.body.getAll(key);
255
- if({}.toString.apply(value) === '[object File]') {
256
- r.attach(key, value);
257
- }
258
- else {
259
- if (Array.isArray(value)) {
260
- for (var t in value) {
261
- r.field(key, value[t]);
262
- }
263
- }
264
- else {
265
- r.field(key, value);
266
- }
267
- }
268
- }
269
- }
253
+ r.send(obj.body);
270
254
  }
271
255
  else {
272
256
  var keyname, value, v;
@@ -284,6 +268,7 @@ SuperagentHttpClient.prototype.execute = function (obj) {
284
268
  }
285
269
  }
286
270
  else if (_.isObject(obj.body)) {
271
+ // non multipart/form-data
287
272
  obj.body = JSON.stringify(obj.body);
288
273
  r.send(obj.body);
289
274
  }
@@ -378,5 +363,7 @@ SuperagentHttpClient.prototype. binaryRequest = function (accept) {
378
363
  if(!accept) {
379
364
  return false;
380
365
  }
381
- return (/^image/i).test(accept) || (/^application\/pdf/).test(accept);
366
+ return (/^image/i).test(accept)
367
+ || (/^application\/pdf/).test(accept)
368
+ || (/^application\/octet-stream/).test(accept);
382
369
  };
package/lib/resolver.js CHANGED
@@ -44,7 +44,7 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
44
44
  callback = arg1;
45
45
  scope = arg2;
46
46
  }
47
- var _root = root;
47
+ var _root = root, modelName;
48
48
  this.scope = (scope || this);
49
49
  this.iteration = this.iteration || 0;
50
50
 
@@ -56,7 +56,7 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
56
56
  opts.responseInterceptor = this.scope.options.responseInterceptor;
57
57
  }
58
58
 
59
- var name, path, property, propertyName;
59
+ var name, path, property, propertyName, parameter, done, counter;
60
60
  var processedCalls = 0, resolvedRefs = {}, unresolvedRefs = {};
61
61
  var resolutionTable = []; // store objects for dereferencing
62
62
 
@@ -64,7 +64,7 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
64
64
  // definitions
65
65
  for (name in spec.definitions) {
66
66
  var definition = spec.definitions[name];
67
- if(definition['$ref']) {
67
+ if(definition.$ref) {
68
68
  this.resolveInline(root, spec, definition, resolutionTable, unresolvedRefs, definition);
69
69
  }
70
70
  else {
@@ -87,25 +87,25 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
87
87
  // shared parameters
88
88
  spec.parameters = spec.parameters || {};
89
89
  for(name in spec.parameters) {
90
- var parameter = spec.parameters[name];
90
+ parameter = spec.parameters[name];
91
91
  if (parameter.in === 'body' && parameter.schema) {
92
92
  if(_.isArray(parameter.schema.allOf)) {
93
93
  // move to a definition
94
- var modelName = 'inline_model';
95
- var name = modelName;
96
- var done = false; var counter = 0;
94
+ modelName = 'inline_model';
95
+ var _name = modelName;
96
+ done = false; counter = 0;
97
97
  while(!done) {
98
- if(typeof spec.definitions[name] === 'undefined') {
98
+ if(typeof spec.definitions[_name] === 'undefined') {
99
99
  done = true;
100
100
  break;
101
101
  }
102
- name = modelName + '_' + counter;
102
+ _name = modelName + '_' + counter;
103
103
  counter ++;
104
104
  }
105
- spec.definitions[name] = { allOf: parameter.schema.allOf };
105
+ spec.definitions[_name] = { allOf: parameter.schema.allOf };
106
106
  delete parameter.schema.allOf;
107
- parameter.schema.$ref = '#/definitions/' + name;
108
- this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec);
107
+ parameter.schema.$ref = '#/definitions/' + _name;
108
+ this.processAllOf(root, _name, spec.definitions[_name], resolutionTable, unresolvedRefs, spec);
109
109
  }
110
110
  else {
111
111
  this.resolveTo(root, parameter.schema, resolutionTable, location);
@@ -123,106 +123,110 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
123
123
  var method, operation, responseCode;
124
124
  path = spec.paths[name];
125
125
 
126
- for (method in path) {
127
- // operation reference
128
- if(method === '$ref') {
129
- // location = path[method];
130
- location = '/paths' + name;
131
- this.resolveInline(root, spec, path, resolutionTable, unresolvedRefs, location);
132
- }
133
- else {
134
- operation = path[method];
135
- var sharedParameters = path.parameters || [];
136
- var parameters = operation.parameters || [];
137
-
138
- for (i in sharedParameters) {
139
- var parameter = sharedParameters[i];
140
- parameters.unshift(parameter);
141
- }
142
- if(method !== 'parameters' && _.isObject(operation)) {
143
- operation.parameters = operation.parameters || parameters;
126
+ if(typeof path === 'object') {
127
+ for (method in path) {
128
+ // operation reference
129
+ if (method === '$ref') {
130
+ // location = path[method];
131
+ location = '/paths' + name;
132
+ this.resolveInline(root, spec, path, resolutionTable, unresolvedRefs, location);
144
133
  }
134
+ else {
135
+ operation = path[method];
136
+ var sharedParameters = path.parameters || [];
137
+ var parameters = operation.parameters || [];
145
138
 
146
- for (i in parameters) {
147
- var parameter = parameters[i];
148
- location = '/paths' + name + '/' + method + '/parameters';
149
-
150
- if (parameter.in === 'body' && parameter.schema) {
151
- if(_.isArray(parameter.schema.allOf)) {
152
- // move to a definition
153
- var modelName = 'inline_model';
154
- var name = modelName;
155
- var done = false; var counter = 0;
156
- while(!done) {
157
- if(typeof spec.definitions[name] === 'undefined') {
158
- done = true;
159
- break;
160
- }
161
- name = modelName + '_' + counter;
162
- counter ++;
163
- }
164
- spec.definitions[name] = { allOf: parameter.schema.allOf };
165
- delete parameter.schema.allOf;
166
- parameter.schema.$ref = '#/definitions/' + name;
167
- this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec);
168
- }
169
- else {
170
- this.resolveTo(root, parameter.schema, resolutionTable, location);
171
- }
172
- }
139
+ sharedParameters.forEach(function(parameter) {
140
+ parameters.unshift(parameter);
141
+ });
173
142
 
174
- if (parameter.$ref) {
175
- // parameter reference
176
- this.resolveInline(root, spec, parameter, resolutionTable, unresolvedRefs, parameter.$ref);
143
+ if (method !== 'parameters' && _.isObject(operation)) {
144
+ operation.parameters = operation.parameters || parameters;
177
145
  }
178
- }
179
146
 
180
- for (responseCode in operation.responses) {
181
- var response = operation.responses[responseCode];
182
- location = '/paths' + name + '/' + method + '/responses/' + responseCode;
147
+ for (i in parameters) {
148
+ parameter = parameters[i];
149
+ location = '/paths' + name + '/' + method + '/parameters';
183
150
 
184
- if(_.isObject(response)) {
185
- if(response.$ref) {
186
- // response reference
187
- this.resolveInline(root, spec, response, resolutionTable, unresolvedRefs, location);
188
- }
189
- if (response.schema) {
190
- var responseObj = response;
191
- if(_.isArray(responseObj.schema.allOf)) {
151
+ if (parameter.in === 'body' && parameter.schema) {
152
+ if (_.isArray(parameter.schema.allOf)) {
192
153
  // move to a definition
193
- var modelName = 'inline_model';
194
- var name = modelName;
195
- var done = false; var counter = 0;
196
- while(!done) {
197
- if(typeof spec.definitions[name] === 'undefined') {
154
+ modelName = 'inline_model';
155
+ name = modelName;
156
+ done = false;
157
+ counter = 0;
158
+ while (!done) {
159
+ if (typeof spec.definitions[name] === 'undefined') {
198
160
  done = true;
199
161
  break;
200
162
  }
201
163
  name = modelName + '_' + counter;
202
- counter ++;
164
+ counter++;
203
165
  }
204
- spec.definitions[name] = { allOf: responseObj.schema.allOf };
205
- delete responseObj.schema.allOf;
206
- delete responseObj.schema.type;
207
- responseObj.schema.$ref = '#/definitions/' + name;
166
+ spec.definitions[name] = {allOf: parameter.schema.allOf};
167
+ delete parameter.schema.allOf;
168
+ parameter.schema.$ref = '#/definitions/' + name;
208
169
  this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec);
209
170
  }
210
- else if('array' === responseObj.schema.type) {
211
- if(responseObj.schema.items && responseObj.schema.items.$ref) {
212
- // response reference
213
- this.resolveInline(root, spec, responseObj.schema.items, resolutionTable, unresolvedRefs, location);
214
- }
215
- }
216
171
  else {
217
- this.resolveTo(root, response.schema, resolutionTable, location);
172
+ this.resolveTo(root, parameter.schema, resolutionTable, location);
173
+ }
174
+ }
175
+
176
+ if (parameter.$ref) {
177
+ // parameter reference
178
+ this.resolveInline(root, spec, parameter, resolutionTable, unresolvedRefs, parameter.$ref);
179
+ }
180
+ }
181
+
182
+ for (responseCode in operation.responses) {
183
+ var response = operation.responses[responseCode];
184
+ location = '/paths' + name + '/' + method + '/responses/' + responseCode;
185
+
186
+ if (_.isObject(response)) {
187
+ if (response.$ref) {
188
+ // response reference
189
+ this.resolveInline(root, spec, response, resolutionTable, unresolvedRefs, location);
190
+ }
191
+ if (response.schema) {
192
+ var responseObj = response;
193
+ if (_.isArray(responseObj.schema.allOf)) {
194
+ // move to a definition
195
+ modelName = 'inline_model';
196
+ name = modelName;
197
+ done = false;
198
+ counter = 0;
199
+ while (!done) {
200
+ if (typeof spec.definitions[name] === 'undefined') {
201
+ done = true;
202
+ break;
203
+ }
204
+ name = modelName + '_' + counter;
205
+ counter++;
206
+ }
207
+ spec.definitions[name] = {allOf: responseObj.schema.allOf};
208
+ delete responseObj.schema.allOf;
209
+ delete responseObj.schema.type;
210
+ responseObj.schema.$ref = '#/definitions/' + name;
211
+ this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec);
212
+ }
213
+ else if ('array' === responseObj.schema.type) {
214
+ if (responseObj.schema.items && responseObj.schema.items.$ref) {
215
+ // response reference
216
+ this.resolveInline(root, spec, responseObj.schema.items, resolutionTable, unresolvedRefs, location);
217
+ }
218
+ }
219
+ else {
220
+ this.resolveTo(root, response.schema, resolutionTable, location);
221
+ }
218
222
  }
219
223
  }
220
224
  }
221
225
  }
222
226
  }
227
+ // clear them out to avoid multiple resolutions
228
+ path.parameters = [];
223
229
  }
224
- // clear them out to avoid multiple resolutions
225
- path.parameters = [];
226
230
  }
227
231
 
228
232
  var expectedCalls = 0, toResolve = [];
@@ -385,7 +389,7 @@ Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) {
385
389
  else {
386
390
  var cached = self.resolverCache[obj.url];
387
391
  if (_.isObject(cached)) {
388
- obj.on.response({obj: cached}), 1;
392
+ obj.on.response({obj: cached});
389
393
  }
390
394
  else {
391
395
  lock[obj.url] = true;
@@ -463,7 +467,7 @@ Resolver.prototype.resolveItem = function(spec, root, resolutionTable, resolvedR
463
467
 
464
468
  Resolver.prototype.finish = function (spec, root, resolutionTable, resolvedRefs, unresolvedRefs, callback, localResolve) {
465
469
  // walk resolution table and replace with resolved refs
466
- var ref;
470
+ var ref, abs;
467
471
  for (ref in resolutionTable) {
468
472
  var item = resolutionTable[ref];
469
473
 
@@ -475,7 +479,7 @@ Resolver.prototype.finish = function (spec, root, resolutionTable, resolvedRefs,
475
479
  if (localResolve !== true) {
476
480
  // don't retain root for local definitions
477
481
  for (key in resolvedTo.obj) {
478
- var abs = this.retainRoot(key, resolvedTo.obj[key], item.root);
482
+ abs = this.retainRoot(key, resolvedTo.obj[key], item.root);
479
483
  resolvedTo.obj[key] = abs;
480
484
  }
481
485
  }
@@ -487,7 +491,7 @@ Resolver.prototype.finish = function (spec, root, resolutionTable, resolvedRefs,
487
491
  delete targetObj.$ref;
488
492
 
489
493
  for (key in resolvedTo.obj) {
490
- var abs = resolvedTo.obj[key];
494
+ abs = resolvedTo.obj[key];
491
495
 
492
496
  if (localResolve !== true) {
493
497
  // don't retain root for local definitions
@@ -666,7 +670,7 @@ Resolver.prototype.resolveInline = function (root, spec, property, resolutionTab
666
670
  var key = property.$ref, ref = property.$ref, i, p, p2, rs;
667
671
  var rootTrimmed = false;
668
672
 
669
- root = root || '' // Guard against .split. @fehguy, you'll need to check if this logic fits
673
+ root = root || ''; // Guard against .split. @fehguy, you'll need to check if this logic fits
670
674
  // More imporantly is how do we gracefully handle relative urls, when provided just a 'spec', not a 'url' ?
671
675
 
672
676
  if (ref) {
@@ -806,7 +810,7 @@ Resolver.prototype.resolveTo = function (root, property, resolutionTable, locati
806
810
  }
807
811
  delete property.title;
808
812
  this.spec.definitions[name] = _.cloneDeep(property);
809
- property['$ref'] = '#/definitions/' + name;
813
+ property.$ref = '#/definitions/' + name;
810
814
  delete property.type;
811
815
  delete property.properties;
812
816
  }
@@ -15,17 +15,11 @@ var _ = {
15
15
  forEach: require('lodash-compat/collection/forEach')
16
16
  };
17
17
 
18
- module.exports.optionHtml = optionHtml;
19
- module.exports.typeFromJsonSchema = typeFromJsonSchema;
20
- module.exports.getStringSignature = getStringSignature;
21
- module.exports.schemaToHTML = schemaToHTML;
22
- module.exports.schemaToJSON = schemaToJSON;
23
-
24
- function optionHtml(label, value) {
18
+ var optionHtml = module.exports.optionHtml = function (label, value) {
25
19
  return '<tr><td class="optionName">' + label + ':</td><td>' + value + '</td></tr>';
26
- }
20
+ };
27
21
 
28
- function typeFromJsonSchema(type, format) {
22
+ module.exports.typeFromJsonSchema = function (type, format) {
29
23
  var str;
30
24
 
31
25
  if (type === 'integer' && format === 'int32') {
@@ -51,9 +45,9 @@ function typeFromJsonSchema(type, format) {
51
45
  }
52
46
 
53
47
  return str;
54
- }
48
+ };
55
49
 
56
- function getStringSignature(obj, baseComponent) {
50
+ var getStringSignature = module.exports.getStringSignature = function (obj, baseComponent) {
57
51
  var str = '';
58
52
 
59
53
  if (typeof obj.$ref !== 'undefined') {
@@ -95,9 +89,9 @@ function getStringSignature(obj, baseComponent) {
95
89
  }
96
90
 
97
91
  return str;
98
- }
92
+ };
99
93
 
100
- function schemaToJSON(schema, models, modelsToIgnore, modelPropertyMacro) {
94
+ var schemaToJSON = module.exports.schemaToJSON = function (schema, models, modelsToIgnore, modelPropertyMacro) {
101
95
  // Resolve the schema (Handle nested schemas)
102
96
  schema = Helpers.resolveSchema(schema);
103
97
 
@@ -182,10 +176,9 @@ function schemaToJSON(schema, models, modelsToIgnore, modelPropertyMacro) {
182
176
  }
183
177
 
184
178
  return output;
185
- }
186
-
187
- function schemaToHTML(name, schema, models, modelPropertyMacro) {
179
+ };
188
180
 
181
+ module.exports.schemaToHTML =function (name, schema, models, modelPropertyMacro) {
189
182
  var strongOpen = '<span class="strong">';
190
183
  var strongClose = '</span>';
191
184
 
@@ -530,4 +523,4 @@ function schemaToHTML(name, schema, models, modelPropertyMacro) {
530
523
 
531
524
  return html + strongOpen + (isArray ? ']' : '}') + strongClose;
532
525
  }
533
- }
526
+ };
@@ -557,7 +557,9 @@ SwaggerSpecConverter.prototype.securityDefinitions = function(obj, swagger) {
557
557
  var name;
558
558
  for(name in obj.authorizations) {
559
559
  var isValid = false;
560
- var securityDefinition = {};
560
+ var securityDefinition = {
561
+ vendorExtensions: {}
562
+ };
561
563
  var definition = obj.authorizations[name];
562
564
  if(definition.type === 'apiKey') {
563
565
  securityDefinition.type = 'apiKey';
@@ -21,6 +21,7 @@ var Operation = module.exports = function (parent, scheme, operationId, httpMeth
21
21
  this.client = parent.options.client || null;
22
22
  this.requestInterceptor = parent.options.requestInterceptor || null;
23
23
  this.responseInterceptor = parent.options.responseInterceptor || null;
24
+ this.requestAgent = parent.options.requestAgent;
24
25
  }
25
26
  this.authorizations = args.security;
26
27
  this.basePath = parent.basePath || '/';
@@ -49,6 +50,8 @@ var Operation = module.exports = function (parent, scheme, operationId, httpMeth
49
50
  this.jqueryAjaxCache = parent.jqueryAjaxCache;
50
51
  this.enableCookies = parent.enableCookies;
51
52
 
53
+ var key;
54
+
52
55
  if(!this.host) {
53
56
  if(typeof window !== 'undefined') {
54
57
  this.host = window.location.host;
@@ -87,8 +90,6 @@ var Operation = module.exports = function (parent, scheme, operationId, httpMeth
87
90
 
88
91
  if (definitions) {
89
92
  // add to global models
90
- var key;
91
-
92
93
  for (key in definitions) {
93
94
  model = new Model(key, definitions[key], this.models, parent.modelPropertyMacro);
94
95
 
@@ -102,7 +103,7 @@ var Operation = module.exports = function (parent, scheme, operationId, httpMeth
102
103
  }
103
104
 
104
105
  for (i = 0; i < this.parameters.length; i++) {
105
- var param = this.parameters[i];
106
+ var d, param = this.parameters[i];
106
107
 
107
108
  // Allow macro to set the default value
108
109
  param.default = this.parameterMacro(this, param);
@@ -110,10 +111,6 @@ var Operation = module.exports = function (parent, scheme, operationId, httpMeth
110
111
  if (param.type === 'array') {
111
112
  param.isList = true;
112
113
  param.allowMultiple = true;
113
- // the enum can be defined at the items level
114
- //if (param.items && param.items.enum) {
115
- // param['enum'] = param.items.enum;
116
- //}
117
114
  }
118
115
 
119
116
  var innerType = this.getType(param);
@@ -124,12 +121,15 @@ var Operation = module.exports = function (parent, scheme, operationId, httpMeth
124
121
  param['enum'] = [true, false]; // use actual primitives
125
122
  }
126
123
 
124
+ for(key in param) {
125
+ helpers.extractExtensions(key, param);
126
+ }
127
127
  if(typeof param['x-example'] !== 'undefined') {
128
- var d = param['x-example'];
128
+ d = param['x-example'];
129
129
  param.default = d;
130
130
  }
131
131
  if(param['x-examples']) {
132
- var d = param['x-examples'].default;
132
+ d = param['x-examples'].default;
133
133
  if(typeof d !== 'undefined') {
134
134
  param.default = d;
135
135
  }
@@ -170,7 +170,7 @@ var Operation = module.exports = function (parent, scheme, operationId, httpMeth
170
170
  param.responseClassSignature = param.signature;
171
171
  }
172
172
 
173
- var defaultResponseCode, response, responses = this.responses;
173
+ var keyname, defaultResponseCode, response, responses = this.responses;
174
174
 
175
175
  if (responses['200']) {
176
176
  response = responses['200'];
@@ -198,6 +198,30 @@ var Operation = module.exports = function (parent, scheme, operationId, httpMeth
198
198
  defaultResponseCode = 'default';
199
199
  }
200
200
 
201
+ for(keyname in responses) {
202
+ helpers.extractExtensions(keyname, responses);
203
+ if(typeof keyname === 'string' && keyname.indexOf('x-') === -1) {
204
+ var responseObject = responses[keyname];
205
+ if(typeof responseObject === 'object' && typeof responseObject.headers === 'object') {
206
+ var headers = responseObject.headers;
207
+ for(var headerName in headers) {
208
+ var header = headers[headerName];
209
+ if(typeof header === 'object') {
210
+ for(var headerKey in header) {
211
+ helpers.extractExtensions(headerKey, header);
212
+ }
213
+ }
214
+ }
215
+ }
216
+ }
217
+ }
218
+
219
+ if (response) {
220
+ for(keyname in response) {
221
+ helpers.extractExtensions(keyname, response);
222
+ }
223
+ }
224
+
201
225
  if (response && response.schema) {
202
226
  var resolvedModel = this.resolveModel(response.schema, definitions);
203
227
  var successResponse;
@@ -218,6 +242,7 @@ var Operation = module.exports = function (parent, scheme, operationId, httpMeth
218
242
  }
219
243
 
220
244
  if (successResponse) {
245
+ successResponse.vendorExtensions = response.vendorExtensions;
221
246
  // Attach response properties
222
247
  if (response.description) {
223
248
  successResponse.description = response.description;
@@ -534,12 +559,12 @@ Operation.prototype.getMissingParams = function (args) {
534
559
  return missingParams;
535
560
  };
536
561
 
537
- Operation.prototype.getBody = function (headers, args, opts) {
538
- var formParams = {}, hasFormParams, body, key, value, hasBody = false;
562
+ Operation.prototype.getBody = function (headers, args) {
563
+ var formParams = {}, hasFormParams, param, body, key, value, hasBody = false;
539
564
 
540
565
  // look at each param and put form params in an object
541
566
  for (var i = 0; i < this.parameters.length; i++) {
542
- var param = this.parameters[i];
567
+ param = this.parameters[i];
543
568
  if (typeof args[param.name] !== 'undefined') {
544
569
  if (param.in === 'body') {
545
570
  body = args[param.name];
@@ -576,7 +601,7 @@ Operation.prototype.getBody = function (headers, args, opts) {
576
601
  var encoded = '';
577
602
 
578
603
  for (key in formParams) {
579
- var param = formParams[key].param;
604
+ param = formParams[key].param;
580
605
  value = formParams[key].value;
581
606
 
582
607
  if (typeof value !== 'undefined') {
@@ -605,7 +630,7 @@ Operation.prototype.getBody = function (headers, args, opts) {
605
630
  bodyParam.type = 'formData';
606
631
 
607
632
  for (key in formParams) {
608
- var param = formParams[key].param;
633
+ param = formParams[key].param;
609
634
  value = args[key];
610
635
 
611
636
  if (typeof value !== 'undefined') {
@@ -743,14 +768,16 @@ Operation.prototype.execute = function (arg1, arg2, arg3, arg4, parent) {
743
768
  error = arg4;
744
769
  }
745
770
 
746
- timeout = typeof opts.timeout !== 'undefined'
747
- ? opts.timeout
748
- : this.timeout;
771
+ timeout = typeof opts.timeout !== 'undefined' ? opts.timeout : this.timeout;
749
772
 
750
773
  if(this.client) {
751
774
  opts.client = this.client;
752
775
  }
753
776
 
777
+ if(this.requestAgent) {
778
+ opts.requestAgent = this.requestAgent;
779
+ }
780
+
754
781
  // add the request interceptor from parent, if none sent from client
755
782
  if(!opts.requestInterceptor && this.requestInterceptor ) {
756
783
  opts.requestInterceptor = this.requestInterceptor ;
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  }
9
9
  ],
10
10
  "description": "swagger-client is a javascript client for use with swaggering APIs.",
11
- "version": "2.1.21",
11
+ "version": "2.1.25",
12
12
  "homepage": "http://swagger.io",
13
13
  "repository": {
14
14
  "type": "git",
@@ -55,6 +55,7 @@
55
55
  "gulp-istanbul": "^0.5.0",
56
56
  "gulp-jshint": "^1.9.0",
57
57
  "gulp-mocha": "^2.0.0",
58
+ "gulp-sourcemaps": "^1.0.0",
58
59
  "http-server": "^0.8.0",
59
60
  "jshint-stylish": "^1.0.1",
60
61
  "karma": "^0.13.0",