@@ -386,11 +386,6 @@ class Http2ServerResponse extends Stream {
386
386
headers [ name ] = String ( value ) ;
387
387
}
388
388
389
- flushHeaders ( ) {
390
- if ( this [ kStream ] . headersSent === false )
391
- this [ kBeginSend ] ( ) ;
392
- }
393
-
394
389
get statusMessage ( ) {
395
390
if ( statusMessageWarned === false ) {
396
391
process . emitWarning (
@@ -403,6 +398,11 @@ class Http2ServerResponse extends Stream {
403
398
return '' ;
404
399
}
405
400
401
+ flushHeaders ( ) {
402
+ if ( this [ kStream ] . headersSent === false )
403
+ this [ kBeginSend ] ( ) ;
404
+ }
405
+
406
406
writeHead ( statusCode , statusMessage , headers ) {
407
407
if ( typeof statusMessage === 'string' && statusMessageWarned === false ) {
408
408
process . emitWarning (
@@ -414,6 +414,12 @@ class Http2ServerResponse extends Stream {
414
414
if ( headers === undefined && typeof statusMessage === 'object' ) {
415
415
headers = statusMessage ;
416
416
}
417
+
418
+ const stream = this [ kStream ] ;
419
+ if ( stream . headersSent === true ) {
420
+ throw new errors . Error ( 'ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND' ) ;
421
+ }
422
+
417
423
if ( headers ) {
418
424
const keys = Object . keys ( headers ) ;
419
425
let key = '' ;
@@ -422,8 +428,9 @@ class Http2ServerResponse extends Stream {
422
428
this . setHeader ( key , headers [ key ] ) ;
423
429
}
424
430
}
431
+
425
432
this . statusCode = statusCode ;
426
- // TODO mcollina this should probably call sendInfo
433
+ this [ kBeginSend ] ( ) ;
427
434
}
428
435
429
436
write ( chunk , encoding , cb ) {
@@ -487,26 +494,6 @@ class Http2ServerResponse extends Stream {
487
494
stream . setTimeout ( msecs , callback ) ;
488
495
}
489
496
490
- sendContinue ( headers ) {
491
- this . sendInfo ( 100 , headers ) ;
492
- }
493
-
494
- sendInfo ( code , headers ) {
495
- const stream = this [ kStream ] ;
496
- if ( stream . headersSent === true ) {
497
- throw new errors . Error ( 'ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND' ) ;
498
- }
499
- if ( headers && typeof headers !== 'object' )
500
- throw new errors . TypeError ( 'ERR_HTTP2_HEADERS_OBJECT' ) ;
501
- if ( stream === undefined ) return ;
502
- code |= 0 ;
503
- if ( code < 100 || code >= 200 )
504
- throw new errors . RangeError ( 'ERR_HTTP2_INVALID_INFO_STATUS' , code ) ;
505
-
506
- headers [ constants . HTTP2_HEADER_STATUS ] = code ;
507
- stream . respond ( headers ) ;
508
- }
509
-
510
497
createPushResponse ( headers , callback ) {
511
498
const stream = this [ kStream ] ;
512
499
if ( stream === undefined ) {
@@ -544,9 +531,9 @@ class Http2ServerResponse extends Stream {
544
531
this . emit ( 'finish' ) ;
545
532
}
546
533
547
- // added for parity with HTTP/1
548
534
writeContinue ( ) {
549
- // TODO mcollina this should probably be sendContinue
535
+ // TODO mcollina check what is the continue flow
536
+ throw new Error ( 'not implemented yet' ) ;
550
537
}
551
538
}
552
539
0 commit comments