@@ -2,6 +2,8 @@ import * as url from 'url';
2
2
import { Filter , Options } from '..' ;
3
3
import { LegacyOptions } from './types' ;
4
4
import { Debug } from '../debug' ;
5
+ import { getLogger } from '../logger' ;
6
+ import { Logger } from '../types' ;
5
7
6
8
const debug = Debug . extend ( 'legacy-options-adapter' ) ;
7
9
@@ -23,6 +25,7 @@ export function legacyOptionsAdapter(
23
25
legacyOptions : LegacyOptions
24
26
) : Options {
25
27
let options : LegacyOptions ;
28
+ let logger : Logger ;
26
29
27
30
// https://github.com/chimurai/http-proxy-middleware/pull/716
28
31
if ( typeof legacyContext === 'string' && ! ! url . parse ( legacyContext ) . host ) {
@@ -37,8 +40,21 @@ export function legacyOptionsAdapter(
37
40
if ( legacyContext && legacyOptions ) {
38
41
debug ( 'map legacy context/filter to options.pathFilter' ) ;
39
42
options = { ...legacyOptions , pathFilter : legacyContext as Filter } ;
43
+ logger = getLegacyLogger ( options ) ;
44
+
45
+ logger . warn (
46
+ `[http-proxy-middleware] Legacy "context" argument is deprecated. Migrate your "context" to "options.pathFilter":
47
+
48
+ const options = {
49
+ pathFilter: '${ legacyContext } ',
50
+ }
51
+
52
+ More details: https://github.com/chimurai/http-proxy-middleware/blob/master/MIGRATION.md
53
+ `
54
+ ) ;
40
55
} else if ( legacyContext && ! legacyOptions ) {
41
56
options = { ...( legacyContext as Options ) } ;
57
+ logger = getLegacyLogger ( options ) ;
42
58
}
43
59
44
60
// map old event names to new event names
@@ -48,6 +64,19 @@ export function legacyOptionsAdapter(
48
64
options . on = { ...options . on } ;
49
65
options . on [ proxyEventName ] = options [ legacyEventName ] ;
50
66
debug ( 'map legacy event "%s" to "on.%s"' , legacyEventName , proxyEventName ) ;
67
+
68
+ logger . warn (
69
+ `[http-proxy-middleware] Legacy "${ legacyEventName } " is deprecated. Migrate to "options.on.${ proxyEventName } ":
70
+
71
+ const options = {
72
+ on: {
73
+ ${ proxyEventName } : () => {},
74
+ },
75
+ }
76
+
77
+ More details: https://github.com/chimurai/http-proxy-middleware/blob/master/MIGRATION.md
78
+ `
79
+ ) ;
51
80
}
52
81
} ) ;
53
82
@@ -59,9 +88,27 @@ export function legacyOptionsAdapter(
59
88
debug ( 'legacy logProvider: %O' , logProvider ) ;
60
89
61
90
if ( typeof logLevel === 'string' && logLevel !== 'silent' ) {
62
- options . logger = logProvider ;
63
91
debug ( 'map "logProvider" to "logger"' ) ;
92
+
93
+ logger . warn (
94
+ `[http-proxy-middleware] Legacy "logLevel" and "logProvider" are deprecated. Migrate to "options.logger":
95
+
96
+ const options = {
97
+ logger: console,
98
+ }
99
+
100
+ More details: https://github.com/chimurai/http-proxy-middleware/blob/master/MIGRATION.md
101
+ `
102
+ ) ;
64
103
}
65
104
66
105
return options ;
67
106
}
107
+
108
+ function getLegacyLogger ( options ) : Logger {
109
+ const legacyLogger = options . logProvider && options . logProvider ( ) ;
110
+ if ( legacyLogger ) {
111
+ options . logger = legacyLogger ;
112
+ }
113
+ return getLogger ( options ) ;
114
+ }
0 commit comments