http-proxy-middleware 0.17.1 → 0.17.4

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 (51) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +22 -8
  3. package/lib/handlers.js +13 -1
  4. package/lib/index.js +17 -6
  5. package/lib/logger.js +2 -2
  6. package/package.json +13 -9
  7. package/.editorconfig +0 -18
  8. package/.jscsrc +0 -8
  9. package/.npmignore +0 -2
  10. package/.travis.yml +0 -16
  11. package/CONTRIBUTING.md +0 -61
  12. package/ISSUE_TEMPLATE.md +0 -21
  13. package/coverage/coverage.json +0 -1
  14. package/coverage/lcov-report/base.css +0 -213
  15. package/coverage/lcov-report/http-proxy-middleware/index.html +0 -93
  16. package/coverage/lcov-report/http-proxy-middleware/index.js.html +0 -80
  17. package/coverage/lcov-report/http-proxy-middleware/lib/config-factory.js.html +0 -443
  18. package/coverage/lcov-report/http-proxy-middleware/lib/context-matcher.js.html +0 -347
  19. package/coverage/lcov-report/http-proxy-middleware/lib/handlers.js.html +0 -251
  20. package/coverage/lcov-report/http-proxy-middleware/lib/index.html +0 -171
  21. package/coverage/lcov-report/http-proxy-middleware/lib/index.js.html +0 -437
  22. package/coverage/lcov-report/http-proxy-middleware/lib/logger.js.html +0 -539
  23. package/coverage/lcov-report/http-proxy-middleware/lib/path-rewriter.js.html +0 -281
  24. package/coverage/lcov-report/http-proxy-middleware/lib/router.js.html +0 -224
  25. package/coverage/lcov-report/index.html +0 -106
  26. package/coverage/lcov-report/prettify.css +0 -1
  27. package/coverage/lcov-report/prettify.js +0 -1
  28. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  29. package/coverage/lcov-report/sorter.js +0 -158
  30. package/coverage/lcov.info +0 -647
  31. package/examples/README.md +0 -33
  32. package/examples/browser-sync/index.js +0 -29
  33. package/examples/connect/index.js +0 -29
  34. package/examples/express/index.js +0 -28
  35. package/examples/websocket/index.html +0 -96
  36. package/examples/websocket/index.js +0 -41
  37. package/recipes/README.md +0 -110
  38. package/recipes/basic.md +0 -32
  39. package/recipes/context-matching.md +0 -99
  40. package/recipes/corporate-proxy.md +0 -21
  41. package/recipes/delay.md +0 -37
  42. package/recipes/logLevel.md +0 -40
  43. package/recipes/logProvider.md +0 -77
  44. package/recipes/modify-post.md +0 -74
  45. package/recipes/pathRewrite.md +0 -93
  46. package/recipes/proxy-events.md +0 -74
  47. package/recipes/router.md +0 -83
  48. package/recipes/servers.md +0 -252
  49. package/recipes/shorthand.md +0 -63
  50. package/recipes/virtual-hosts.md +0 -18
  51. package/recipes/websocket.md +0 -41
@@ -1,443 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <title>Code coverage report for http-proxy-middleware\lib\config-factory.js</title>
5
- <meta charset="utf-8" />
6
- <link rel="stylesheet" href="../../prettify.css" />
7
- <link rel="stylesheet" href="../../base.css" />
8
- <meta name="viewport" content="width=device-width, initial-scale=1">
9
- <style type='text/css'>
10
- .coverage-summary .sorter {
11
- background-image: url(../../sort-arrow-sprite.png);
12
- }
13
- </style>
14
- </head>
15
- <body>
16
- <div class='wrapper'>
17
- <div class='pad1'>
18
- <h1>
19
- <a href="../../index.html">all files</a> / <a href="index.html">http-proxy-middleware/lib/</a> config-factory.js
20
- </h1>
21
- <div class='clearfix'>
22
- <div class='fl pad1y space-right2'>
23
- <span class="strong">100% </span>
24
- <span class="quiet">Statements</span>
25
- <span class='fraction'>54/54</span>
26
- </div>
27
- <div class='fl pad1y space-right2'>
28
- <span class="strong">100% </span>
29
- <span class="quiet">Branches</span>
30
- <span class='fraction'>28/28</span>
31
- </div>
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Functions</span>
35
- <span class='fraction'>6/6</span>
36
- </div>
37
- <div class='fl pad1y space-right2'>
38
- <span class="strong">100% </span>
39
- <span class="quiet">Lines</span>
40
- <span class='fraction'>54/54</span>
41
- </div>
42
- </div>
43
- </div>
44
- <div class='status-line high'></div>
45
- <pre><table class="coverage">
46
- <tr><td class="line-count quiet">1
47
- 2
48
- 3
49
- 4
50
- 5
51
- 6
52
- 7
53
- 8
54
- 9
55
- 10
56
- 11
57
- 12
58
- 13
59
- 14
60
- 15
61
- 16
62
- 17
63
- 18
64
- 19
65
- 20
66
- 21
67
- 22
68
- 23
69
- 24
70
- 25
71
- 26
72
- 27
73
- 28
74
- 29
75
- 30
76
- 31
77
- 32
78
- 33
79
- 34
80
- 35
81
- 36
82
- 37
83
- 38
84
- 39
85
- 40
86
- 41
87
- 42
88
- 43
89
- 44
90
- 45
91
- 46
92
- 47
93
- 48
94
- 49
95
- 50
96
- 51
97
- 52
98
- 53
99
- 54
100
- 55
101
- 56
102
- 57
103
- 58
104
- 59
105
- 60
106
- 61
107
- 62
108
- 63
109
- 64
110
- 65
111
- 66
112
- 67
113
- 68
114
- 69
115
- 70
116
- 71
117
- 72
118
- 73
119
- 74
120
- 75
121
- 76
122
- 77
123
- 78
124
- 79
125
- 80
126
- 81
127
- 82
128
- 83
129
- 84
130
- 85
131
- 86
132
- 87
133
- 88
134
- 89
135
- 90
136
- 91
137
- 92
138
- 93
139
- 94
140
- 95
141
- 96
142
- 97
143
- 98
144
- 99
145
- 100
146
- 101
147
- 102
148
- 103
149
- 104
150
- 105
151
- 106
152
- 107
153
- 108
154
- 109
155
- 110
156
- 111
157
- 112
158
- 113
159
- 114
160
- 115
161
- 116
162
- 117
163
- 118
164
- 119
165
- 120
166
- 121
167
- 122
168
- 123
169
- 124
170
- 125
171
- 126
172
- 127</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1×</span>
173
- <span class="cline-any cline-yes">1×</span>
174
- <span class="cline-any cline-yes">1×</span>
175
- <span class="cline-any cline-neutral">&nbsp;</span>
176
- <span class="cline-any cline-yes">1×</span>
177
- <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-neutral">&nbsp;</span>
179
- <span class="cline-any cline-neutral">&nbsp;</span>
180
- <span class="cline-any cline-yes">1×</span>
181
- <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-yes">59×</span>
183
- <span class="cline-any cline-neutral">&nbsp;</span>
184
- <span class="cline-any cline-neutral">&nbsp;</span>
185
- <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-neutral">&nbsp;</span>
188
- <span class="cline-any cline-yes">59×</span>
189
- <span class="cline-any cline-yes">7×</span>
190
- <span class="cline-any cline-yes">7×</span>
191
- <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-neutral">&nbsp;</span>
193
- <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-yes">52×</span>
195
- <span class="cline-any cline-yes">17×</span>
196
- <span class="cline-any cline-yes">17×</span>
197
- <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-yes">17×</span>
199
- <span class="cline-any cline-yes">17×</span>
200
- <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-yes">17×</span>
202
- <span class="cline-any cline-yes">6×</span>
203
- <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-neutral">&nbsp;</span>
206
- <span class="cline-any cline-yes">35×</span>
207
- <span class="cline-any cline-yes">35×</span>
208
- <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-yes">59×</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-yes">59×</span>
213
- <span class="cline-any cline-yes">1×</span>
214
- <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-neutral">&nbsp;</span>
216
- <span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-yes">58×</span>
218
- <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-neutral">&nbsp;</span>
220
- <span class="cline-any cline-yes">58×</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-yes">58×</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-yes">1×</span>
237
- <span class="cline-any cline-yes">52×</span>
238
- <span class="cline-any cline-yes">44×</span>
239
- <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-neutral">&nbsp;</span>
241
- <span class="cline-any cline-neutral">&nbsp;</span>
242
- <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-neutral">&nbsp;</span>
244
- <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-neutral">&nbsp;</span>
249
- <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-neutral">&nbsp;</span>
251
- <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-yes">1×</span>
254
- <span class="cline-any cline-yes">59×</span>
255
- <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-yes">1×</span>
258
- <span class="cline-any cline-neutral">&nbsp;</span>
259
- <span class="cline-any cline-yes">58×</span>
260
- <span class="cline-any cline-yes">1×</span>
261
- <span class="cline-any cline-yes">1×</span>
262
- <span class="cline-any cline-yes">1×</span>
263
- <span class="cline-any cline-yes">1×</span>
264
- <span class="cline-any cline-yes">1×</span>
265
- <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-yes">1×</span>
267
- <span class="cline-any cline-yes">1×</span>
268
- <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-yes">58×</span>
271
- <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-neutral">&nbsp;</span>
273
- <span class="cline-any cline-neutral">&nbsp;</span>
274
- <span class="cline-any cline-yes">1×</span>
275
- <span class="cline-any cline-yes">58×</span>
276
- <span class="cline-any cline-yes">1×</span>
277
- <span class="cline-any cline-yes">1×</span>
278
- <span class="cline-any cline-yes">1×</span>
279
- <span class="cline-any cline-yes">1×</span>
280
- <span class="cline-any cline-yes">1×</span>
281
- <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-yes">1×</span>
283
- <span class="cline-any cline-yes">1×</span>
284
- <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-neutral">&nbsp;</span>
286
- <span class="cline-any cline-yes">58×</span>
287
- <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-yes">1×</span>
290
- <span class="cline-any cline-yes">59×</span>
291
- <span class="cline-any cline-yes">1×</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">59×</span>
295
- <span class="cline-any cline-yes">1×</span>
296
- <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">var _ = require('lodash');
299
- var url = require('url');
300
- var logger = require('./logger').getInstance();
301
- &nbsp;
302
- module.exports = {
303
- createConfig: createConfig
304
- };
305
- &nbsp;
306
- function createConfig(context, opts) {
307
- // structure of config object to be returned
308
- var config = {
309
- context: undefined,
310
- options: {}
311
- };
312
- &nbsp;
313
- // app.use('/api', proxy({target:'http://localhost:9000'}));
314
- if (isContextless(context, opts)) {
315
- config.context = '/';
316
- config.options = _.assign(config.options, context);
317
- }
318
- // app.use('/api', proxy('http://localhost:9000'));
319
- // app.use(proxy('http://localhost:9000/api'));
320
- else if (isStringShortHand(context)) {
321
- var oUrl = url.parse(context);
322
- var target = [oUrl.protocol, '//', oUrl.host].join('');
323
- &nbsp;
324
- config.context = oUrl.pathname || '/';
325
- config.options = _.assign(config.options, {target: target}, opts);
326
- &nbsp;
327
- if (oUrl.protocol === 'ws:' || oUrl.protocol === 'wss:') {
328
- config.options.ws = true;
329
- }
330
- // app.use('/api', proxy({target:'http://localhost:9000'}));
331
- } else {
332
- config.context = context;
333
- config.options = _.assign(config.options, opts);
334
- }
335
- &nbsp;
336
- configureLogger(config.options);
337
- &nbsp;
338
- if (!config.options.target) {
339
- throw new Error('[HPM] Missing "target" option. Example: {target: "http://www.example.org"}');
340
- }
341
- &nbsp;
342
- // Legacy option.proxyHost
343
- config.options = mapLegacyProxyHostOption(config.options);
344
- &nbsp;
345
- // Legacy option.proxyTable &gt; option.router
346
- config.options = mapLegacyProxyTableOption(config.options);
347
- &nbsp;
348
- return config;
349
- }
350
- &nbsp;
351
- /**
352
- * Checks if a String only target/config is provided.
353
- * This can be just the host or with the optional path.
354
- *
355
- * @example
356
- * app.use('/api', proxy('http://localhost:9000'));
357
- app.use(proxy('http://localhost:9000/api'));
358
- *
359
- * @param {String} context [description]
360
- * @return {Boolean} [description]
361
- */
362
- function isStringShortHand(context) {
363
- if (_.isString(context)) {
364
- return (url.parse(context).host) ? true : false;
365
- }
366
- }
367
- &nbsp;
368
- /**
369
- * Checks if a Object only config is provided, without a context.
370
- * In this case the all paths will be proxied.
371
- *
372
- * @example
373
- * app.use('/api', proxy({target:'http://localhost:9000'}));
374
- *
375
- * @param {Object} context [description]
376
- * @param {*} opts [description]
377
- * @return {Boolean} [description]
378
- */
379
- function isContextless(context, opts) {
380
- return (_.isPlainObject(context) &amp;&amp; _.isEmpty(opts));
381
- }
382
- &nbsp;
383
- function mapLegacyProxyHostOption(options) {
384
- // set options.headers.host when option.proxyHost is provided
385
- if (options.proxyHost) {
386
- logger.warn('*************************************');
387
- logger.warn('[HPM] Deprecated "option.proxyHost"');
388
- logger.warn(' Use "option.changeOrigin" or "option.headers.host" instead');
389
- logger.warn(' "option.proxyHost" will be removed in future release.');
390
- logger.warn('*************************************');
391
- &nbsp;
392
- options.headers = options.headers || {};
393
- options.headers.host = options.proxyHost;
394
- }
395
- &nbsp;
396
- return options;
397
- }
398
- &nbsp;
399
- // Warn deprecated proxyTable api usage
400
- function mapLegacyProxyTableOption(options) {
401
- if (options.proxyTable) {
402
- logger.warn('*************************************');
403
- logger.warn('[HPM] Deprecated "option.proxyTable"');
404
- logger.warn(' Use "option.router" instead');
405
- logger.warn(' "option.proxyTable" will be removed in future release.');
406
- logger.warn('*************************************');
407
- &nbsp;
408
- options.router = _.clone(options.proxyTable);
409
- _.omit(options, 'proxyTable');
410
- }
411
- &nbsp;
412
- return options;
413
- }
414
- &nbsp;
415
- function configureLogger(options) {
416
- if (options.logLevel) {
417
- logger.setLevel(options.logLevel);
418
- }
419
- &nbsp;
420
- if (options.logProvider) {
421
- logger.setProvider(options.logProvider);
422
- }
423
- }
424
- &nbsp;</pre></td></tr>
425
- </table></pre>
426
- <div class='push'></div><!-- for sticky footer -->
427
- </div><!-- /wrapper -->
428
- <div class='footer quiet pad2 space-top1 center small'>
429
- Code coverage
430
- generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed Jun 29 2016 02:08:37 GMT+0200 (W. Europe Daylight Time)
431
- </div>
432
- </div>
433
- <script src="../../prettify.js"></script>
434
- <script>
435
- window.onload = function () {
436
- if (typeof prettyPrint === 'function') {
437
- prettyPrint();
438
- }
439
- };
440
- </script>
441
- <script src="../../sorter.js"></script>
442
- </body>
443
- </html>