@nxtedition/lib 26.4.2 → 26.4.3

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 (2) hide show
  1. package/http.js +22 -27
  2. package/package.json +1 -1
package/http.js CHANGED
@@ -418,7 +418,8 @@ export class ServerResponse extends http.ServerResponse {
418
418
  #data = -1
419
419
  #end = -1
420
420
 
421
- #headersObj = undefined
421
+ #headersObj = kEmptyObj
422
+ #headersSent = false
422
423
 
423
424
  /**
424
425
  * @returns {{
@@ -457,13 +458,15 @@ export class ServerResponse extends http.ServerResponse {
457
458
  * @param {string} val
458
459
  */
459
460
  setHeader(key, val) {
460
- if (this.#headersObj === null) {
461
+ if (this.#headersSent) {
461
462
  throw new Error('headers already sent')
462
- } else if (this.#headersObj === undefined) {
463
- this.#headersObj = { key: val }
464
- } else {
465
- this.#headersObj[key] = val
466
463
  }
464
+
465
+ if (this.#headersObj === kEmptyObj) {
466
+ this.#headersObj = {}
467
+ }
468
+
469
+ this.#headersObj[key] = val
467
470
  }
468
471
 
469
472
  /**
@@ -471,11 +474,11 @@ export class ServerResponse extends http.ServerResponse {
471
474
  * @param {string} val
472
475
  */
473
476
  removeHeader(key, val) {
474
- if (this.#headersObj === null) {
477
+ if (this.#headersSent) {
475
478
  throw new Error('headers already sent')
476
- } else if (this.#headersObj === undefined) {
477
- // Do nothing...
478
- } else {
479
+ }
480
+
481
+ if (this.#headersObj !== kEmptyObj) {
479
482
  delete this.#headersObj[key]
480
483
  }
481
484
  }
@@ -484,31 +487,25 @@ export class ServerResponse extends http.ServerResponse {
484
487
  * @returns {string[]}
485
488
  */
486
489
  getHeaderNames() {
487
- if (this.#headersObj === null) {
490
+ if (this.#headersSent) {
488
491
  throw new Error('headers already sent')
489
- } else if (this.#headersObj === undefined) {
490
- return kEmptyArr
491
- } else {
492
- return Object.keys(this.#headersObj)
493
492
  }
493
+
494
+ return this.#headersObj === kEmptyObj ? kEmptyArr : Object.keys(this.#headersObj)
494
495
  }
495
496
 
496
497
  /**
497
498
  * @returns {Record<string, string>}
498
499
  */
499
500
  getHeaders() {
500
- if (this.#headersObj === undefined) {
501
- return kEmptyObj
502
- } else {
503
- return this.#headersObj
504
- }
501
+ return this.#headersObj
505
502
  }
506
503
 
507
504
  /**
508
505
  * @returns {boolean}
509
506
  */
510
507
  get headersSent() {
511
- return this.#headersObj === null
508
+ return this.#headersSent
512
509
  }
513
510
 
514
511
  /**
@@ -517,11 +514,11 @@ export class ServerResponse extends http.ServerResponse {
517
514
  * @returns
518
515
  */
519
516
  writeHead(statusCode, headers) {
520
- if (this.#headersObj === null) {
517
+ if (this.#headersSent) {
521
518
  throw new Error('headers already sent')
522
- } else if (this.#headersObj === undefined) {
523
- // Do nothing...
524
- } else {
519
+ }
520
+
521
+ if (this.#headersObj !== kEmptyObj) {
525
522
  headers = headers ? Object.assign(this.#headersObj, headers) : this.#headersObj
526
523
  }
527
524
 
@@ -531,8 +528,6 @@ export class ServerResponse extends http.ServerResponse {
531
528
  }
532
529
  }
533
530
 
534
- this.#headersObj = null
535
-
536
531
  return super.writeHead(statusCode, headers)
537
532
  }
538
533
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/lib",
3
- "version": "26.4.2",
3
+ "version": "26.4.3",
4
4
  "license": "MIT",
5
5
  "author": "Robert Nagy <robert.nagy@boffins.se>",
6
6
  "type": "module",