owebjs 1.4.6 → 1.4.7

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,27 @@ 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
+ const value = this.__headers[key];
58
+ if (Array.isArray(value)) {
59
+ for (let j = 0; j < value.length; j++) {
60
+ this.res.writeHeader(key, String(value[j]));
61
+ }
62
+ } else {
63
+ this.res.writeHeader(key, String(value));
64
+ }
65
+ }
66
+ this.headersSent = true;
67
+ }
51
68
  //@ts-ignore
52
69
  write(data) {
53
70
  if (this.finished) return;
71
+ this._flushHeaders();
54
72
  this.res.write(data);
55
73
  }
56
74
  writeHead(statusCode) {
@@ -72,17 +90,17 @@ class HttpResponse extends Writable {
72
90
  //@ts-ignore
73
91
  end(data) {
74
92
  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);
93
+ const self = this;
94
+ function doWrite() {
95
+ self._flushHeaders();
96
+ self.finished = true;
97
+ self.res.end(data);
79
98
  }
80
99
  __name(doWrite, "doWrite");
81
100
  if (!data) {
82
101
  data = "";
83
- return doWrite(this);
84
102
  }
85
- return doWrite(this);
103
+ return doWrite();
86
104
  }
87
105
  getRaw() {
88
106
  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.7",
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",