owebjs 1.4.6 → 1.4.8

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.
@@ -48,9 +48,30 @@ class HttpResponse extends Writable {
48
48
  removeHeader(name) {
49
49
  delete this.__headers[toLowerCase(name)];
50
50
  }
51
+ _flushHeaders() {
52
+ if (this.headersSent) return;
53
+ this.res.writeStatus(`${this.statusCode} ${this.statusMessage}`);
54
+ const keys = Object.keys(this.__headers);
55
+ for (let i = 0; i < keys.length; i++) {
56
+ const key = keys[i];
57
+ if (key === "content-length" || key === "transfer-encoding") {
58
+ continue;
59
+ }
60
+ const value = this.__headers[key];
61
+ if (Array.isArray(value)) {
62
+ for (let j = 0; j < value.length; j++) {
63
+ this.res.writeHeader(key, String(value[j]));
64
+ }
65
+ } else {
66
+ this.res.writeHeader(key, String(value));
67
+ }
68
+ }
69
+ this.headersSent = true;
70
+ }
51
71
  //@ts-ignore
52
72
  write(data) {
53
73
  if (this.finished) return;
74
+ this._flushHeaders();
54
75
  this.res.write(data);
55
76
  }
56
77
  writeHead(statusCode) {
@@ -72,17 +93,17 @@ class HttpResponse extends Writable {
72
93
  //@ts-ignore
73
94
  end(data) {
74
95
  if (this.finished) return;
75
- function doWrite(res) {
76
- res.res.writeStatus(`${res.statusCode} ${res.statusMessage}`);
77
- res.finished = true;
78
- res.res.end(data);
96
+ const self = this;
97
+ function doWrite() {
98
+ self._flushHeaders();
99
+ self.finished = true;
100
+ self.res.end(data);
79
101
  }
80
102
  __name(doWrite, "doWrite");
81
103
  if (!data) {
82
104
  data = "";
83
- return doWrite(this);
84
105
  }
85
- return doWrite(this);
106
+ return doWrite();
86
107
  }
87
108
  getRaw() {
88
109
  return this.res;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "owebjs",
3
- "version": "1.4.6",
3
+ "version": "1.4.8",
4
4
  "description": "A flexible and modern web framework built on top of Fastify",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -56,6 +56,7 @@
56
56
  "prettier": "^3.0.3",
57
57
  "tslib": "^2.6.2",
58
58
  "tsup": "^8.5.0",
59
+ "@fastify/cors": "^9.0.1",
59
60
  "typescript": "^5.2.2"
60
61
  },
61
62
  "type": "module",