@dooboostore/simple-boot-http-server 1.0.33 → 1.0.35

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.
@@ -10,6 +10,14 @@ export declare class SimpleBootHttpServer extends SimpleApplication {
10
10
  private sessionManager;
11
11
  private webSocketClients;
12
12
  constructor(option?: HttpServerOption);
13
+ /**
14
+ * Final response flush that can never escape as an unhandled rejection.
15
+ * When the response is already gone (sent, closed, or destroyed mid-write),
16
+ * there is nobody left to send to, so gone-response write errors
17
+ * (ERR_HTTP_HEADERS_SENT, ERR_STREAM_ALREADY_FINISHED,
18
+ * ERR_STREAM_DESTROYED, ECONNRESET) are swallowed; anything else still throws.
19
+ */
20
+ private safeResEnd;
13
21
  run(otherInstanceSim?: Map<ConstructorType<any> | Function | SimConfig | symbol, any>): this;
14
22
  private startServer;
15
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleBootHttpServer.d.ts","sourceRoot":"","sources":["../../src/SimpleBootHttpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAkB,MAAM,IAAI,UAAU,EAAiB,MAAM,MAAM,CAAA;AAC1E,OAAO,EAAC,MAAM,IAAI,WAAW,EAAC,MAAM,OAAO,CAAC;AA4B5C,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAInD,qBAAa,oBAAqB,SAAQ,iBAAiB;IAKtC,MAAM,EAAE,gBAAgB;IAJpC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAsD;gBAE3D,MAAM,GAAE,gBAAyC;IAM7D,GAAG,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,CAAC;IAW5F,OAAO,CAAC,WAAW;CAmYpB"}
1
+ {"version":3,"file":"SimpleBootHttpServer.d.ts","sourceRoot":"","sources":["../../src/SimpleBootHttpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAkB,MAAM,IAAI,UAAU,EAAiB,MAAM,MAAM,CAAA;AAC1E,OAAO,EAAC,MAAM,IAAI,WAAW,EAAC,MAAM,OAAO,CAAC;AA4B5C,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAInD,qBAAa,oBAAqB,SAAQ,iBAAiB;IAKtC,MAAM,EAAE,gBAAgB;IAJpC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAsD;gBAE3D,MAAM,GAAE,gBAAyC;IAKpE;;;;;;OAMG;YACW,UAAU;IAejB,GAAG,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,CAAC;IAW5F,OAAO,CAAC,WAAW;CA4YpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"RequestResponse.d.ts","sourceRoot":"","sources":["../../../src/models/RequestResponse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RequestResponse.d.ts","sourceRoot":"","sources":["../../../src/models/RequestResponse.ts"],"names":[],"mappings":"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"}
@@ -28715,6 +28715,7 @@ Content-Length: ${body.length}\r
28715
28715
  var import_node_gzip = __toESM(require_dist(), 1);
28716
28716
  var import_zlib = __require("zlib");
28717
28717
  var import_node_buffer2 = __require("node:buffer");
28718
+ var resEndingSet = /* @__PURE__ */ new WeakSet();
28718
28719
  var RequestResponse = class _RequestResponse {
28719
28720
  constructor(req, res, config) {
28720
28721
  // [아키텍트님의 정석] RequestResponse 객체 고유의 속성 저장소 (트랜잭션 생명주기)
@@ -29091,6 +29092,9 @@ Content-Length: ${body.length}\r
29091
29092
  return this.createRequestResponseChain(this.res.statusCode);
29092
29093
  }
29093
29094
  resWrite(chunk, encoding = "utf8") {
29095
+ if (chunk === void 0) {
29096
+ return this.createRequestResponseChain(this.resWriteChunk);
29097
+ }
29094
29098
  this.resWriteChunk = chunk;
29095
29099
  return this.createRequestResponseChain(this.resWriteChunk);
29096
29100
  }
@@ -29125,31 +29129,42 @@ Content-Length: ${body.length}\r
29125
29129
  this.res.end(data);
29126
29130
  }
29127
29131
  async resEnd(chunk) {
29128
- if (chunk instanceof Response) {
29129
- chunk.headers.forEach((value, key) => {
29130
- this.res.setHeader(`ORIGIN-${key}`, value);
29131
- });
29132
- if (!this.resHeader(HttpHeaders.ContentType)) {
29133
- const contentType = chunk.headers.get(HttpHeaders.ContentType);
29134
- if (contentType) this.res.setHeader(HttpHeaders.ContentType, contentType);
29135
- }
29136
- this.res.statusCode = chunk.status;
29137
- this.resWriteChunk = import_buffer.Buffer.from(await chunk.arrayBuffer());
29138
- } else if (chunk instanceof import_node_buffer2.Blob) {
29139
- this.resWriteChunk = import_buffer.Buffer.from(await chunk.arrayBuffer());
29140
- if (!this.resHeader(HttpHeaders.ContentType)) {
29141
- this.res.setHeader(HttpHeaders.ContentType, chunk.type);
29142
- }
29143
- } else if (chunk instanceof ArrayBuffer) {
29144
- this.resWriteChunk = import_buffer.Buffer.from(chunk);
29145
- } else {
29146
- this.resWriteChunk = chunk ?? this.resWriteChunk;
29132
+ if (resEndingSet.has(this.res) || this.resIsDone()) {
29133
+ return;
29147
29134
  }
29148
- if (this.req.readable) {
29149
- await this.reqBodyData();
29150
- await this.resEndChunk();
29151
- } else {
29152
- await this.resEndChunk();
29135
+ resEndingSet.add(this.res);
29136
+ try {
29137
+ if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView(chunk) && !import_buffer.Buffer.isBuffer(chunk)) {
29138
+ const view = chunk;
29139
+ this.resWriteChunk = import_buffer.Buffer.from(view.buffer, view.byteOffset, view.byteLength);
29140
+ } else if (chunk instanceof Response) {
29141
+ chunk.headers.forEach((value, key) => {
29142
+ this.res.setHeader(`ORIGIN-${key}`, value);
29143
+ });
29144
+ if (!this.resHeader(HttpHeaders.ContentType)) {
29145
+ const contentType = chunk.headers.get(HttpHeaders.ContentType);
29146
+ if (contentType) this.res.setHeader(HttpHeaders.ContentType, contentType);
29147
+ }
29148
+ this.res.statusCode = chunk.status;
29149
+ this.resWriteChunk = import_buffer.Buffer.from(await chunk.arrayBuffer());
29150
+ } else if (chunk instanceof import_node_buffer2.Blob) {
29151
+ this.resWriteChunk = import_buffer.Buffer.from(await chunk.arrayBuffer());
29152
+ if (!this.resHeader(HttpHeaders.ContentType)) {
29153
+ this.res.setHeader(HttpHeaders.ContentType, chunk.type);
29154
+ }
29155
+ } else if (chunk instanceof ArrayBuffer) {
29156
+ this.resWriteChunk = import_buffer.Buffer.from(chunk);
29157
+ } else {
29158
+ this.resWriteChunk = chunk ?? this.resWriteChunk;
29159
+ }
29160
+ if (this.req.readable) {
29161
+ await this.reqBodyData();
29162
+ await this.resEndChunk();
29163
+ } else {
29164
+ await this.resEndChunk();
29165
+ }
29166
+ } finally {
29167
+ resEndingSet.delete(this.res);
29153
29168
  }
29154
29169
  }
29155
29170
  resRedirect(statusCode, location) {
@@ -29482,6 +29497,26 @@ Content-Length: ${body.length}\r
29482
29497
  this.webSocketClients = /* @__PURE__ */ new Map();
29483
29498
  this.sessionManager = new SessionManager(this.option);
29484
29499
  }
29500
+ /**
29501
+ * Final response flush that can never escape as an unhandled rejection.
29502
+ * When the response is already gone (sent, closed, or destroyed mid-write),
29503
+ * there is nobody left to send to, so gone-response write errors
29504
+ * (ERR_HTTP_HEADERS_SENT, ERR_STREAM_ALREADY_FINISHED,
29505
+ * ERR_STREAM_DESTROYED, ECONNRESET) are swallowed; anything else still throws.
29506
+ */
29507
+ async safeResEnd(rr) {
29508
+ if (rr.resIsDone()) {
29509
+ return;
29510
+ }
29511
+ try {
29512
+ await rr.resEnd();
29513
+ } catch (e) {
29514
+ const code = e && (e.code || "");
29515
+ if (code !== "ERR_HTTP_HEADERS_SENT" && code !== "ERR_STREAM_ALREADY_FINISHED" && code !== "ERR_STREAM_DESTROYED" && code !== "ECONNRESET") {
29516
+ throw e;
29517
+ }
29518
+ }
29519
+ }
29485
29520
  run(otherInstanceSim) {
29486
29521
  otherInstanceSim ??= /* @__PURE__ */ new Map();
29487
29522
  otherInstanceSim.set(_SimpleBootHttpServer, this);
@@ -29524,7 +29559,7 @@ Content-Length: ${body.length}\r
29524
29559
  }
29525
29560
  }
29526
29561
  if (!rr.resIsDone()) {
29527
- rr.resEnd();
29562
+ await this.safeResEnd(rr);
29528
29563
  }
29529
29564
  });
29530
29565
  res.on("error", async () => {
@@ -29541,7 +29576,7 @@ Content-Length: ${body.length}\r
29541
29576
  }
29542
29577
  }
29543
29578
  if (!rr.resIsDone()) {
29544
- rr.resEnd();
29579
+ await this.safeResEnd(rr);
29545
29580
  }
29546
29581
  });
29547
29582
  const rr = new RequestResponse(req, res, { sessionManager: this.sessionManager, option: this.option });
@@ -29736,14 +29771,15 @@ Content-Length: ${body.length}\r
29736
29771
  headers[HttpHeaders.ContentType] = contentType;
29737
29772
  }
29738
29773
  rr.resSetHeaders(headers);
29739
- rr.resSetStatusCode(resConfig?.status ?? 200 /* Ok */);
29774
+ if (resConfig?.status !== void 0) {
29775
+ rr.resSetStatusCode(resConfig.status);
29776
+ }
29740
29777
  await rr.resStream(data, { compress: stream?.compress });
29741
29778
  } else {
29742
29779
  if (it.config?.resolver) {
29743
29780
  const execute = typeof it.config.resolver === "function" ? this.simstanceManager.getOrNewSim({ target: it.config.resolver }) : it.config.resolver;
29744
29781
  data = await execute?.resolve?.(data, rr, resConfig);
29745
29782
  }
29746
- const status = resConfig?.status ?? 200 /* Ok */;
29747
29783
  const headers = resConfig?.header ?? {};
29748
29784
  if (resConfig?.contentType) {
29749
29785
  headers[HttpHeaders.ContentType] = resConfig.contentType;
@@ -29754,7 +29790,9 @@ Content-Length: ${body.length}\r
29754
29790
  data = JSON.stringify(data);
29755
29791
  }
29756
29792
  rr.resSetHeaders(headers);
29757
- rr.resSetStatusCode(status);
29793
+ if (resConfig?.status !== void 0) {
29794
+ rr.resSetStatusCode(resConfig.status);
29795
+ }
29758
29796
  rr.resWrite(data);
29759
29797
  }
29760
29798
  }
@@ -29796,7 +29834,7 @@ Content-Length: ${body.length}\r
29796
29834
  transactionManager?.finally();
29797
29835
  }
29798
29836
  if (!rr.resIsDone()) {
29799
- rr.resEnd();
29837
+ await this.safeResEnd(rr);
29800
29838
  }
29801
29839
  });
29802
29840
  if (this.option.webSocketEndPoints) {