@wooksjs/event-http 0.4.36 → 0.4.37
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.
- package/dist/index.cjs +16 -9
- package/dist/index.mjs +16 -9
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -579,7 +579,7 @@ class HttpErrorRenderer extends BaseHttpResponseRenderer {
|
|
|
579
579
|
`<head><title>${data.statusCode} ${httpStatusCodes[data.statusCode]}</title></head>` +
|
|
580
580
|
`<body><center><h1>${data.statusCode} ${httpStatusCodes[data.statusCode]}</h1></center>` +
|
|
581
581
|
`<center><h4>${data.message}</h1></center><hr color="#666">` +
|
|
582
|
-
`<center style="color: #666;"> Wooks v${"0.4.
|
|
582
|
+
`<center style="color: #666;"> Wooks v${"0.4.37"} </center>` +
|
|
583
583
|
`${keys.length > 0
|
|
584
584
|
? `<pre style="${preStyles}">${JSON.stringify({
|
|
585
585
|
...data,
|
|
@@ -769,6 +769,7 @@ class BaseHttpResponse {
|
|
|
769
769
|
throw error;
|
|
770
770
|
}
|
|
771
771
|
async respond() {
|
|
772
|
+
const { endEvent } = useHttpContext();
|
|
772
773
|
const { rawResponse, hasResponded } = useResponse();
|
|
773
774
|
const { method, rawRequest } = useRequest();
|
|
774
775
|
const logger = eventCore.useEventLogger('http-response') || console;
|
|
@@ -787,17 +788,20 @@ class BaseHttpResponse {
|
|
|
787
788
|
stream.destroy();
|
|
788
789
|
});
|
|
789
790
|
if (method === 'HEAD') {
|
|
791
|
+
endEvent();
|
|
790
792
|
stream.destroy();
|
|
791
793
|
res.end();
|
|
792
794
|
}
|
|
793
795
|
else {
|
|
794
796
|
return new Promise((resolve, reject) => {
|
|
795
797
|
stream.on('error', e => {
|
|
798
|
+
endEvent();
|
|
796
799
|
stream.destroy();
|
|
797
800
|
res.end();
|
|
798
801
|
reject(e);
|
|
799
802
|
});
|
|
800
803
|
stream.on('close', () => {
|
|
804
|
+
endEvent();
|
|
801
805
|
stream.destroy();
|
|
802
806
|
resolve(undefined);
|
|
803
807
|
});
|
|
@@ -808,6 +812,7 @@ class BaseHttpResponse {
|
|
|
808
812
|
else if (globalThis.Response && this.body instanceof Response) {
|
|
809
813
|
this.mergeFetchStatus(this.body.status);
|
|
810
814
|
if (method === 'HEAD') {
|
|
815
|
+
endEvent();
|
|
811
816
|
res.end();
|
|
812
817
|
}
|
|
813
818
|
else {
|
|
@@ -818,6 +823,7 @@ class BaseHttpResponse {
|
|
|
818
823
|
if (this.body.headers.get('content-type')) {
|
|
819
824
|
additionalHeaders['content-type'] = this.body.headers.get('content-type');
|
|
820
825
|
}
|
|
826
|
+
endEvent();
|
|
821
827
|
res.writeHead(this.status, {
|
|
822
828
|
...additionalHeaders,
|
|
823
829
|
...this._headers,
|
|
@@ -828,6 +834,7 @@ class BaseHttpResponse {
|
|
|
828
834
|
else {
|
|
829
835
|
const renderedBody = this.renderer.render(this);
|
|
830
836
|
this.mergeStatus(renderedBody);
|
|
837
|
+
endEvent();
|
|
831
838
|
res
|
|
832
839
|
.writeHead(this.status, {
|
|
833
840
|
'content-length': Buffer.byteLength(renderedBody),
|
|
@@ -944,13 +951,17 @@ class WooksHttp extends wooks.WooksAdapterBase {
|
|
|
944
951
|
this.server = server;
|
|
945
952
|
}
|
|
946
953
|
respond(data) {
|
|
947
|
-
|
|
954
|
+
const { endEvent } = useHttpContext();
|
|
955
|
+
void this.responder
|
|
956
|
+
.respond(data)
|
|
957
|
+
?.catch(e => {
|
|
948
958
|
this.logger.error('Uncought response exception', e);
|
|
949
|
-
})
|
|
959
|
+
})
|
|
960
|
+
.finally(() => endEvent());
|
|
950
961
|
}
|
|
951
962
|
getServerCb() {
|
|
952
963
|
return async (req, res) => {
|
|
953
|
-
const { restoreCtx
|
|
964
|
+
const { restoreCtx } = createHttpContext({ req, res }, this.mergeEventOptions(this.opts?.eventOptions));
|
|
954
965
|
const { handlers } = this.wooks.lookup(req.method, req.url);
|
|
955
966
|
if (handlers || this.opts?.onNotFound) {
|
|
956
967
|
try {
|
|
@@ -960,18 +971,16 @@ class WooksHttp extends wooks.WooksAdapterBase {
|
|
|
960
971
|
this.logger.error('Internal error, please report', error);
|
|
961
972
|
restoreCtx();
|
|
962
973
|
this.respond(error);
|
|
963
|
-
endEvent(error.message);
|
|
964
974
|
}
|
|
965
975
|
}
|
|
966
976
|
else {
|
|
967
977
|
this.logger.debug(`404 Not found (${req.method})${req.url}`);
|
|
968
978
|
this.respond(new HttpError(404));
|
|
969
|
-
endEvent('Request handler not registered');
|
|
970
979
|
}
|
|
971
980
|
};
|
|
972
981
|
}
|
|
973
982
|
async processHandlers(handlers) {
|
|
974
|
-
const { restoreCtx,
|
|
983
|
+
const { restoreCtx, clearCtx, store } = useHttpContext();
|
|
975
984
|
for (const [i, handler] of handlers.entries()) {
|
|
976
985
|
const isLastHandler = handlers.length === i + 1;
|
|
977
986
|
try {
|
|
@@ -981,7 +990,6 @@ class WooksHttp extends wooks.WooksAdapterBase {
|
|
|
981
990
|
const result = await promise;
|
|
982
991
|
restoreCtx();
|
|
983
992
|
this.respond(result);
|
|
984
|
-
endEvent();
|
|
985
993
|
break;
|
|
986
994
|
}
|
|
987
995
|
catch (error) {
|
|
@@ -994,7 +1002,6 @@ class WooksHttp extends wooks.WooksAdapterBase {
|
|
|
994
1002
|
if (isLastHandler) {
|
|
995
1003
|
restoreCtx();
|
|
996
1004
|
this.respond(error);
|
|
997
|
-
endEvent(error.message);
|
|
998
1005
|
}
|
|
999
1006
|
}
|
|
1000
1007
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -577,7 +577,7 @@ class HttpErrorRenderer extends BaseHttpResponseRenderer {
|
|
|
577
577
|
`<head><title>${data.statusCode} ${httpStatusCodes[data.statusCode]}</title></head>` +
|
|
578
578
|
`<body><center><h1>${data.statusCode} ${httpStatusCodes[data.statusCode]}</h1></center>` +
|
|
579
579
|
`<center><h4>${data.message}</h1></center><hr color="#666">` +
|
|
580
|
-
`<center style="color: #666;"> Wooks v${"0.4.
|
|
580
|
+
`<center style="color: #666;"> Wooks v${"0.4.37"} </center>` +
|
|
581
581
|
`${keys.length > 0
|
|
582
582
|
? `<pre style="${preStyles}">${JSON.stringify({
|
|
583
583
|
...data,
|
|
@@ -767,6 +767,7 @@ class BaseHttpResponse {
|
|
|
767
767
|
throw error;
|
|
768
768
|
}
|
|
769
769
|
async respond() {
|
|
770
|
+
const { endEvent } = useHttpContext();
|
|
770
771
|
const { rawResponse, hasResponded } = useResponse();
|
|
771
772
|
const { method, rawRequest } = useRequest();
|
|
772
773
|
const logger = useEventLogger('http-response') || console;
|
|
@@ -785,17 +786,20 @@ class BaseHttpResponse {
|
|
|
785
786
|
stream.destroy();
|
|
786
787
|
});
|
|
787
788
|
if (method === 'HEAD') {
|
|
789
|
+
endEvent();
|
|
788
790
|
stream.destroy();
|
|
789
791
|
res.end();
|
|
790
792
|
}
|
|
791
793
|
else {
|
|
792
794
|
return new Promise((resolve, reject) => {
|
|
793
795
|
stream.on('error', e => {
|
|
796
|
+
endEvent();
|
|
794
797
|
stream.destroy();
|
|
795
798
|
res.end();
|
|
796
799
|
reject(e);
|
|
797
800
|
});
|
|
798
801
|
stream.on('close', () => {
|
|
802
|
+
endEvent();
|
|
799
803
|
stream.destroy();
|
|
800
804
|
resolve(undefined);
|
|
801
805
|
});
|
|
@@ -806,6 +810,7 @@ class BaseHttpResponse {
|
|
|
806
810
|
else if (globalThis.Response && this.body instanceof Response) {
|
|
807
811
|
this.mergeFetchStatus(this.body.status);
|
|
808
812
|
if (method === 'HEAD') {
|
|
813
|
+
endEvent();
|
|
809
814
|
res.end();
|
|
810
815
|
}
|
|
811
816
|
else {
|
|
@@ -816,6 +821,7 @@ class BaseHttpResponse {
|
|
|
816
821
|
if (this.body.headers.get('content-type')) {
|
|
817
822
|
additionalHeaders['content-type'] = this.body.headers.get('content-type');
|
|
818
823
|
}
|
|
824
|
+
endEvent();
|
|
819
825
|
res.writeHead(this.status, {
|
|
820
826
|
...additionalHeaders,
|
|
821
827
|
...this._headers,
|
|
@@ -826,6 +832,7 @@ class BaseHttpResponse {
|
|
|
826
832
|
else {
|
|
827
833
|
const renderedBody = this.renderer.render(this);
|
|
828
834
|
this.mergeStatus(renderedBody);
|
|
835
|
+
endEvent();
|
|
829
836
|
res
|
|
830
837
|
.writeHead(this.status, {
|
|
831
838
|
'content-length': Buffer.byteLength(renderedBody),
|
|
@@ -942,13 +949,17 @@ class WooksHttp extends WooksAdapterBase {
|
|
|
942
949
|
this.server = server;
|
|
943
950
|
}
|
|
944
951
|
respond(data) {
|
|
945
|
-
|
|
952
|
+
const { endEvent } = useHttpContext();
|
|
953
|
+
void this.responder
|
|
954
|
+
.respond(data)
|
|
955
|
+
?.catch(e => {
|
|
946
956
|
this.logger.error('Uncought response exception', e);
|
|
947
|
-
})
|
|
957
|
+
})
|
|
958
|
+
.finally(() => endEvent());
|
|
948
959
|
}
|
|
949
960
|
getServerCb() {
|
|
950
961
|
return async (req, res) => {
|
|
951
|
-
const { restoreCtx
|
|
962
|
+
const { restoreCtx } = createHttpContext({ req, res }, this.mergeEventOptions(this.opts?.eventOptions));
|
|
952
963
|
const { handlers } = this.wooks.lookup(req.method, req.url);
|
|
953
964
|
if (handlers || this.opts?.onNotFound) {
|
|
954
965
|
try {
|
|
@@ -958,18 +969,16 @@ class WooksHttp extends WooksAdapterBase {
|
|
|
958
969
|
this.logger.error('Internal error, please report', error);
|
|
959
970
|
restoreCtx();
|
|
960
971
|
this.respond(error);
|
|
961
|
-
endEvent(error.message);
|
|
962
972
|
}
|
|
963
973
|
}
|
|
964
974
|
else {
|
|
965
975
|
this.logger.debug(`404 Not found (${req.method})${req.url}`);
|
|
966
976
|
this.respond(new HttpError(404));
|
|
967
|
-
endEvent('Request handler not registered');
|
|
968
977
|
}
|
|
969
978
|
};
|
|
970
979
|
}
|
|
971
980
|
async processHandlers(handlers) {
|
|
972
|
-
const { restoreCtx,
|
|
981
|
+
const { restoreCtx, clearCtx, store } = useHttpContext();
|
|
973
982
|
for (const [i, handler] of handlers.entries()) {
|
|
974
983
|
const isLastHandler = handlers.length === i + 1;
|
|
975
984
|
try {
|
|
@@ -979,7 +988,6 @@ class WooksHttp extends WooksAdapterBase {
|
|
|
979
988
|
const result = await promise;
|
|
980
989
|
restoreCtx();
|
|
981
990
|
this.respond(result);
|
|
982
|
-
endEvent();
|
|
983
991
|
break;
|
|
984
992
|
}
|
|
985
993
|
catch (error) {
|
|
@@ -992,7 +1000,6 @@ class WooksHttp extends WooksAdapterBase {
|
|
|
992
1000
|
if (isLastHandler) {
|
|
993
1001
|
restoreCtx();
|
|
994
1002
|
this.respond(error);
|
|
995
|
-
endEvent(error.message);
|
|
996
1003
|
}
|
|
997
1004
|
}
|
|
998
1005
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wooksjs/event-http",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.37",
|
|
4
4
|
"description": "@wooksjs/event-http",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"url": "https://github.com/wooksjs/wooksjs/issues"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"wooks": "0.4.
|
|
42
|
+
"wooks": "0.4.37",
|
|
43
43
|
"@prostojs/router": "^0.2.1",
|
|
44
|
-
"@wooksjs/event-core": "0.4.
|
|
44
|
+
"@wooksjs/event-core": "0.4.37"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@prostojs/logger": "^0.4.0"
|