@@ -100,9 +100,11 @@ const {
100
100
overrideStackTrace,
101
101
} = require ( 'internal/errors' ) ;
102
102
const { sendInspectorCommand } = require ( 'internal/util/inspector' ) ;
103
- const experimentalREPLAwait = require ( 'internal/options' ) . getOptionValue (
103
+ const { getOptionValue } = require ( 'internal/options' ) ;
104
+ const experimentalREPLAwait = getOptionValue (
104
105
'--experimental-repl-await'
105
106
) ;
107
+ const pendingDeprecation = getOptionValue ( '--pending-deprecation' ) ;
106
108
const {
107
109
REPL_MODE_SLOPPY ,
108
110
REPL_MODE_STRICT ,
@@ -220,8 +222,39 @@ function REPLServer(prompt,
220
222
const preview = options . terminal &&
221
223
( options . preview !== undefined ? ! ! options . preview : ! eval_ ) ;
222
224
223
- this . inputStream = options . input ;
224
- this . outputStream = options . output ;
225
+ ObjectDefineProperty ( this , 'inputStream' , {
226
+ get : pendingDeprecation ?
227
+ deprecate ( ( ) => this . input ,
228
+ 'repl.inputStream and repl.outputStream is deprecated. ' +
229
+ 'Use repl.input and repl.output instead' ,
230
+ 'DEP0XXX' ) :
231
+ ( ) => this . input ,
232
+ set : pendingDeprecation ?
233
+ deprecate ( ( val ) => this . input = val ,
234
+ 'repl.inputStream and repl.outputStream is deprecated. ' +
235
+ 'Use repl.input and repl.output instead' ,
236
+ 'DEP0XXX' ) :
237
+ ( val ) => this . input = val ,
238
+ enumerable : false ,
239
+ configurable : true
240
+ } ) ;
241
+ ObjectDefineProperty ( this , 'outputStream' , {
242
+ get : pendingDeprecation ?
243
+ deprecate ( ( ) => this . output ,
244
+ 'repl.inputStream and repl.outputStream is deprecated. ' +
245
+ 'Use repl.input and repl.output instead' ,
246
+ 'DEP0XXX' ) :
247
+ ( ) => this . output ,
248
+ set : pendingDeprecation ?
249
+ deprecate ( ( val ) => this . output = val ,
250
+ 'repl.inputStream and repl.outputStream is deprecated. ' +
251
+ 'Use repl.input and repl.output instead' ,
252
+ 'DEP0XXX' ) :
253
+ ( val ) => this . output = val ,
254
+ enumerable : false ,
255
+ configurable : true
256
+ } ) ;
257
+
225
258
this . useColors = ! ! options . useColors ;
226
259
this . _domain = options . domain || domain . create ( ) ;
227
260
this . useGlobal = ! ! useGlobal ;
@@ -596,16 +629,13 @@ function REPLServer(prompt,
596
629
}
597
630
// Normalize line endings.
598
631
errStack += errStack . endsWith ( '\n' ) ? '' : '\n' ;
599
- self . outputStream . write ( errStack ) ;
632
+ self . output . write ( errStack ) ;
600
633
self . clearBufferedCommand ( ) ;
601
634
self . lines . level = [ ] ;
602
635
self . displayPrompt ( ) ;
603
636
}
604
637
} ) ;
605
638
606
- self . resetContext ( ) ;
607
- self . lines . level = [ ] ;
608
-
609
639
self . clearBufferedCommand ( ) ;
610
640
ObjectDefineProperty ( this , 'bufferedCommand' , {
611
641
get : deprecate ( ( ) => self [ kBufferedCommandSymbol ] ,
@@ -627,14 +657,16 @@ function REPLServer(prompt,
627
657
}
628
658
629
659
Interface . call ( this , {
630
- input : self . inputStream ,
631
- output : self . outputStream ,
660
+ input : options . input ,
661
+ output : options . output ,
632
662
completer : self . completer ,
633
663
terminal : options . terminal ,
634
664
historySize : options . historySize ,
635
665
prompt
636
666
} ) ;
637
667
668
+ self . resetContext ( ) ;
669
+
638
670
this . commands = ObjectCreate ( null ) ;
639
671
defineDefaultCommands ( this ) ;
640
672
@@ -752,7 +784,7 @@ function REPLServer(prompt,
752
784
return ;
753
785
}
754
786
if ( ! self [ kBufferedCommandSymbol ] ) {
755
- self . outputStream . write ( 'Invalid REPL keyword\n' ) ;
787
+ self . output . write ( 'Invalid REPL keyword\n' ) ;
756
788
finish ( null ) ;
757
789
return ;
758
790
}
@@ -769,7 +801,7 @@ function REPLServer(prompt,
769
801
_memory . call ( self , cmd ) ;
770
802
771
803
if ( e && ! self [ kBufferedCommandSymbol ] && cmd . trim ( ) . startsWith ( 'npm ' ) ) {
772
- self . outputStream . write ( 'npm should be run outside of the ' +
804
+ self . output . write ( 'npm should be run outside of the ' +
773
805
'node repl, in your normal shell.\n' +
774
806
'(Press Control-D to exit.)\n' ) ;
775
807
self . displayPrompt ( ) ;
@@ -804,7 +836,7 @@ function REPLServer(prompt,
804
836
if ( ! self . underscoreAssigned ) {
805
837
self . last = ret ;
806
838
}
807
- self . outputStream . write ( self . writer ( ret ) + '\n' ) ;
839
+ self . output . write ( self . writer ( ret ) + '\n' ) ;
808
840
}
809
841
810
842
// Display prompt again
@@ -814,10 +846,10 @@ function REPLServer(prompt,
814
846
815
847
self . on ( 'SIGCONT' , function onSigCont ( ) {
816
848
if ( self . editorMode ) {
817
- self . outputStream . write ( `${ self . _initialPrompt } .editor\n` ) ;
818
- self . outputStream . write (
849
+ self . output . write ( `${ self . _initialPrompt } .editor\n` ) ;
850
+ self . output . write (
819
851
'// Entering editor mode (^D to finish, ^C to cancel)\n' ) ;
820
- self . outputStream . write ( `${ self [ kBufferedCommandSymbol ] } \n` ) ;
852
+ self . output . write ( `${ self [ kBufferedCommandSymbol ] } \n` ) ;
821
853
self . prompt ( true ) ;
822
854
} else {
823
855
self . displayPrompt ( true ) ;
@@ -957,7 +989,7 @@ REPLServer.prototype.createContext = function() {
957
989
}
958
990
}
959
991
context . global = context ;
960
- const _console = new Console ( this . outputStream ) ;
992
+ const _console = new Console ( this . output ) ;
961
993
ObjectDefineProperty ( context , 'console' , {
962
994
configurable : true ,
963
995
writable : true ,
@@ -998,7 +1030,7 @@ REPLServer.prototype.resetContext = function() {
998
1030
this . last = value ;
999
1031
if ( ! this . underscoreAssigned ) {
1000
1032
this . underscoreAssigned = true ;
1001
- this . outputStream . write ( 'Expression assignment to _ now disabled.\n' ) ;
1033
+ this . output . write ( 'Expression assignment to _ now disabled.\n' ) ;
1002
1034
}
1003
1035
}
1004
1036
} ) ;
@@ -1010,7 +1042,7 @@ REPLServer.prototype.resetContext = function() {
1010
1042
this . lastError = value ;
1011
1043
if ( ! this . underscoreErrAssigned ) {
1012
1044
this . underscoreErrAssigned = true ;
1013
- this . outputStream . write (
1045
+ this . output . write (
1014
1046
'Expression assignment to _error now disabled.\n' ) ;
1015
1047
}
1016
1048
}
@@ -1495,7 +1527,7 @@ function defineDefaultCommands(repl) {
1495
1527
action : function ( ) {
1496
1528
this . clearBufferedCommand ( ) ;
1497
1529
if ( ! this . useGlobal ) {
1498
- this . outputStream . write ( 'Clearing context...\n' ) ;
1530
+ this . output . write ( 'Clearing context...\n' ) ;
1499
1531
this . resetContext ( ) ;
1500
1532
}
1501
1533
this . displayPrompt ( ) ;
@@ -1522,9 +1554,9 @@ function defineDefaultCommands(repl) {
1522
1554
const cmd = this . commands [ name ] ;
1523
1555
const spaces = ' ' . repeat ( longestNameLength - name . length + 3 ) ;
1524
1556
const line = `.${ name } ${ cmd . help ? spaces + cmd . help : '' } \n` ;
1525
- this . outputStream . write ( line ) ;
1557
+ this . output . write ( line ) ;
1526
1558
}
1527
- this . outputStream . write ( '\nPress ^C to abort current expression, ' +
1559
+ this . output . write ( '\nPress ^C to abort current expression, ' +
1528
1560
'^D to exit the repl\n' ) ;
1529
1561
this . displayPrompt ( ) ;
1530
1562
}
@@ -1535,9 +1567,9 @@ function defineDefaultCommands(repl) {
1535
1567
action : function ( file ) {
1536
1568
try {
1537
1569
fs . writeFileSync ( file , this . lines . join ( '\n' ) ) ;
1538
- this . outputStream . write ( `Session saved to: ${ file } \n` ) ;
1570
+ this . output . write ( `Session saved to: ${ file } \n` ) ;
1539
1571
} catch {
1540
- this . outputStream . write ( `Failed to save: ${ file } \n` ) ;
1572
+ this . output . write ( `Failed to save: ${ file } \n` ) ;
1541
1573
}
1542
1574
this . displayPrompt ( ) ;
1543
1575
}
@@ -1555,12 +1587,12 @@ function defineDefaultCommands(repl) {
1555
1587
_turnOffEditorMode ( this ) ;
1556
1588
this . write ( '\n' ) ;
1557
1589
} else {
1558
- this . outputStream . write (
1590
+ this . output . write (
1559
1591
`Failed to load: ${ file } is not a valid file\n`
1560
1592
) ;
1561
1593
}
1562
1594
} catch {
1563
- this . outputStream . write ( `Failed to load: ${ file } \n` ) ;
1595
+ this . output . write ( `Failed to load: ${ file } \n` ) ;
1564
1596
}
1565
1597
this . displayPrompt ( ) ;
1566
1598
}
@@ -1570,7 +1602,7 @@ function defineDefaultCommands(repl) {
1570
1602
help : 'Enter editor mode' ,
1571
1603
action ( ) {
1572
1604
_turnOnEditorMode ( this ) ;
1573
- this . outputStream . write (
1605
+ this . output . write (
1574
1606
'// Entering editor mode (^D to finish, ^C to cancel)\n' ) ;
1575
1607
}
1576
1608
} ) ;
0 commit comments