@wooksjs/event-http 0.2.7 → 0.2.9
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 +21 -14
- package/dist/index.d.ts +87 -18
- package/dist/index.mjs +18 -12
- package/package.json +4 -3
package/dist/index.cjs
CHANGED
|
@@ -464,7 +464,7 @@ function __asyncValues(o) {
|
|
|
464
464
|
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
-
class
|
|
467
|
+
class BaseHttpResponseRenderer {
|
|
468
468
|
render(response) {
|
|
469
469
|
if (typeof response.body === 'string' || typeof response.body === 'boolean' || typeof response.body === 'number') {
|
|
470
470
|
if (!response.getContentType())
|
|
@@ -625,8 +625,8 @@ const defaultStatus = {
|
|
|
625
625
|
PATCH: exports.EHttpStatusCode.Accepted,
|
|
626
626
|
DELETE: exports.EHttpStatusCode.Accepted,
|
|
627
627
|
};
|
|
628
|
-
const baseRenderer = new
|
|
629
|
-
class
|
|
628
|
+
const baseRenderer = new BaseHttpResponseRenderer();
|
|
629
|
+
class BaseHttpResponse {
|
|
630
630
|
constructor(renderer = baseRenderer) {
|
|
631
631
|
this.renderer = renderer;
|
|
632
632
|
this._status = 0;
|
|
@@ -803,7 +803,7 @@ const preStyles = 'font-family: monospace;'
|
|
|
803
803
|
+ 'border-radius: 8px;'
|
|
804
804
|
+ 'background-color: #494949;'
|
|
805
805
|
+ 'box-shadow: 0px 0px 3px 2px rgb(255 255 255 / 20%);';
|
|
806
|
-
class
|
|
806
|
+
class HttpErrorRenderer extends BaseHttpResponseRenderer {
|
|
807
807
|
renderHtml(response) {
|
|
808
808
|
const data = response.body || {};
|
|
809
809
|
response.setContentType('text/html');
|
|
@@ -812,7 +812,7 @@ class WooksErrorRenderer extends BaseWooksResponseRenderer {
|
|
|
812
812
|
`<head><title>${data.statusCode} ${httpStatusCodes[data.statusCode]}</title></head>` +
|
|
813
813
|
`<body><center><h1>${data.statusCode} ${httpStatusCodes[data.statusCode]}</h1></center>` +
|
|
814
814
|
`<center><h4>${data.message}</h1></center><hr color="#666">` +
|
|
815
|
-
`<center style="color: #666;"> Wooks v${"0.2.
|
|
815
|
+
`<center style="color: #666;"> Wooks v${"0.2.9"} </center>` +
|
|
816
816
|
`${keys.length ? `<pre style="${preStyles}">${JSON.stringify(Object.assign(Object.assign({}, data), { statusCode: undefined, message: undefined, error: undefined }), null, ' ')}</pre>` : ''}` +
|
|
817
817
|
'</body></html>';
|
|
818
818
|
}
|
|
@@ -877,15 +877,15 @@ class HttpError extends Error {
|
|
|
877
877
|
|
|
878
878
|
function createWooksResponder(
|
|
879
879
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
880
|
-
renderer = new
|
|
880
|
+
renderer = new BaseHttpResponseRenderer(),
|
|
881
881
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
882
|
-
errorRenderer = new
|
|
882
|
+
errorRenderer = new HttpErrorRenderer()) {
|
|
883
883
|
function createResponse(data) {
|
|
884
884
|
const { hasResponded } = useResponse();
|
|
885
885
|
if (hasResponded())
|
|
886
886
|
return null;
|
|
887
887
|
if (data instanceof Error) {
|
|
888
|
-
const r = new
|
|
888
|
+
const r = new BaseHttpResponse(errorRenderer);
|
|
889
889
|
let httpError;
|
|
890
890
|
if (data instanceof HttpError) {
|
|
891
891
|
httpError = data;
|
|
@@ -896,11 +896,11 @@ errorRenderer = new WooksErrorRenderer()) {
|
|
|
896
896
|
r.setBody(httpError.body);
|
|
897
897
|
return r;
|
|
898
898
|
}
|
|
899
|
-
else if (data instanceof
|
|
899
|
+
else if (data instanceof BaseHttpResponse) {
|
|
900
900
|
return data;
|
|
901
901
|
}
|
|
902
902
|
else {
|
|
903
|
-
return new
|
|
903
|
+
return new BaseHttpResponse(renderer).setBody(data);
|
|
904
904
|
}
|
|
905
905
|
}
|
|
906
906
|
return {
|
|
@@ -950,7 +950,7 @@ class WooksHttp extends wooks.WooksAdapterBase {
|
|
|
950
950
|
});
|
|
951
951
|
}
|
|
952
952
|
close(server) {
|
|
953
|
-
|
|
953
|
+
const srv = server || this.server;
|
|
954
954
|
return new Promise((resolve, reject) => {
|
|
955
955
|
srv === null || srv === void 0 ? void 0 : srv.close((err) => {
|
|
956
956
|
if (err)
|
|
@@ -959,6 +959,12 @@ class WooksHttp extends wooks.WooksAdapterBase {
|
|
|
959
959
|
});
|
|
960
960
|
});
|
|
961
961
|
}
|
|
962
|
+
getServer() {
|
|
963
|
+
return this.server;
|
|
964
|
+
}
|
|
965
|
+
attachServer(server) {
|
|
966
|
+
this.server = server;
|
|
967
|
+
}
|
|
962
968
|
respond(data) {
|
|
963
969
|
var _a;
|
|
964
970
|
void ((_a = this.responder.respond(data)) === null || _a === void 0 ? void 0 : _a.catch((e) => {
|
|
@@ -1020,15 +1026,16 @@ function createHttpApp(opts, wooks) {
|
|
|
1020
1026
|
return new WooksHttp(opts, wooks);
|
|
1021
1027
|
}
|
|
1022
1028
|
|
|
1023
|
-
exports.
|
|
1024
|
-
exports.
|
|
1029
|
+
exports.BaseHttpResponse = BaseHttpResponse;
|
|
1030
|
+
exports.BaseHttpResponseRenderer = BaseHttpResponseRenderer;
|
|
1025
1031
|
exports.HttpError = HttpError;
|
|
1026
|
-
exports.
|
|
1032
|
+
exports.HttpErrorRenderer = HttpErrorRenderer;
|
|
1027
1033
|
exports.WooksHttp = WooksHttp;
|
|
1028
1034
|
exports.WooksURLSearchParams = WooksURLSearchParams;
|
|
1029
1035
|
exports.createHttpApp = createHttpApp;
|
|
1030
1036
|
exports.createHttpContext = createHttpContext;
|
|
1031
1037
|
exports.createWooksResponder = createWooksResponder;
|
|
1038
|
+
exports.httpStatusCodes = httpStatusCodes;
|
|
1032
1039
|
exports.renderCacheControl = renderCacheControl;
|
|
1033
1040
|
exports.useAccept = useAccept;
|
|
1034
1041
|
exports.useAuthorization = useAuthorization;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
|
|
3
|
+
import http from 'http';
|
|
3
4
|
import { IncomingHttpHeaders } from 'http';
|
|
4
5
|
import { IncomingMessage } from 'http';
|
|
5
6
|
import { Server } from 'http';
|
|
@@ -12,9 +13,9 @@ import { URLSearchParams as URLSearchParams_2 } from 'url';
|
|
|
12
13
|
import { Wooks } from 'wooks';
|
|
13
14
|
import { WooksAdapterBase } from 'wooks';
|
|
14
15
|
|
|
15
|
-
export declare class
|
|
16
|
-
protected renderer:
|
|
17
|
-
constructor(renderer?:
|
|
16
|
+
export declare class BaseHttpResponse<BodyType = unknown> {
|
|
17
|
+
protected renderer: BaseHttpResponseRenderer;
|
|
18
|
+
constructor(renderer?: BaseHttpResponseRenderer);
|
|
18
19
|
protected _status: EHttpStatusCode;
|
|
19
20
|
protected _body?: BodyType;
|
|
20
21
|
protected _headers: Record<string, string | string[]>;
|
|
@@ -38,8 +39,8 @@ export declare class BaseWooksResponse<BodyType = unknown> {
|
|
|
38
39
|
respond(): Promise<unknown>;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
export declare class
|
|
42
|
-
render(response:
|
|
42
|
+
export declare class BaseHttpResponseRenderer<T = unknown> implements TWooksResponseRenderer<T> {
|
|
43
|
+
render(response: BaseHttpResponse<T>): string | Uint8Array;
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
export declare function createHttpApp(opts?: TWooksHttpOptions, wooks?: Wooks | WooksAdapterBase): WooksHttp;
|
|
@@ -67,7 +68,7 @@ export declare function createHttpContext(data: THttpEventData): {
|
|
|
67
68
|
};
|
|
68
69
|
|
|
69
70
|
export declare function createWooksResponder(renderer?: TWooksResponseRenderer<any>, errorRenderer?: TWooksResponseRenderer<any>): {
|
|
70
|
-
createResponse: <T = unknown>(data: T) =>
|
|
71
|
+
createResponse: <T = unknown>(data: T) => BaseHttpResponse<TWooksErrorBodyExt | T> | null;
|
|
71
72
|
respond: (data: unknown) => Promise<unknown> | undefined;
|
|
72
73
|
};
|
|
73
74
|
|
|
@@ -142,11 +143,84 @@ export declare class HttpError<T extends TWooksErrorBody = TWooksErrorBody> exte
|
|
|
142
143
|
protected _body: string | T;
|
|
143
144
|
constructor(code?: THttpErrorCodes, _body?: string | T);
|
|
144
145
|
get body(): TWooksErrorBodyExt;
|
|
145
|
-
protected renderer?:
|
|
146
|
-
attachRenderer(renderer:
|
|
147
|
-
getRenderer():
|
|
146
|
+
protected renderer?: HttpErrorRenderer;
|
|
147
|
+
attachRenderer(renderer: HttpErrorRenderer): void;
|
|
148
|
+
getRenderer(): HttpErrorRenderer | undefined;
|
|
148
149
|
}
|
|
149
150
|
|
|
151
|
+
export declare class HttpErrorRenderer extends BaseHttpResponseRenderer<TWooksErrorBodyExt> {
|
|
152
|
+
renderHtml(response: BaseHttpResponse<TWooksErrorBodyExt>): string;
|
|
153
|
+
renderText(response: BaseHttpResponse<TWooksErrorBodyExt>): string;
|
|
154
|
+
renderJson(response: BaseHttpResponse<TWooksErrorBodyExt>): string;
|
|
155
|
+
render(response: BaseHttpResponse<TWooksErrorBodyExt>): string;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export declare const httpStatusCodes: {
|
|
159
|
+
100: string;
|
|
160
|
+
101: string;
|
|
161
|
+
102: string;
|
|
162
|
+
103: string;
|
|
163
|
+
200: string;
|
|
164
|
+
201: string;
|
|
165
|
+
202: string;
|
|
166
|
+
203: string;
|
|
167
|
+
204: string;
|
|
168
|
+
205: string;
|
|
169
|
+
206: string;
|
|
170
|
+
207: string;
|
|
171
|
+
208: string;
|
|
172
|
+
226: string;
|
|
173
|
+
300: string;
|
|
174
|
+
301: string;
|
|
175
|
+
302: string;
|
|
176
|
+
303: string;
|
|
177
|
+
304: string;
|
|
178
|
+
305: string;
|
|
179
|
+
306: string;
|
|
180
|
+
307: string;
|
|
181
|
+
308: string;
|
|
182
|
+
400: string;
|
|
183
|
+
401: string;
|
|
184
|
+
402: string;
|
|
185
|
+
403: string;
|
|
186
|
+
404: string;
|
|
187
|
+
405: string;
|
|
188
|
+
406: string;
|
|
189
|
+
407: string;
|
|
190
|
+
408: string;
|
|
191
|
+
409: string;
|
|
192
|
+
410: string;
|
|
193
|
+
411: string;
|
|
194
|
+
412: string;
|
|
195
|
+
413: string;
|
|
196
|
+
414: string;
|
|
197
|
+
415: string;
|
|
198
|
+
416: string;
|
|
199
|
+
417: string;
|
|
200
|
+
418: string;
|
|
201
|
+
421: string;
|
|
202
|
+
422: string;
|
|
203
|
+
423: string;
|
|
204
|
+
424: string;
|
|
205
|
+
425: string;
|
|
206
|
+
426: string;
|
|
207
|
+
428: string;
|
|
208
|
+
429: string;
|
|
209
|
+
431: string;
|
|
210
|
+
451: string;
|
|
211
|
+
500: string;
|
|
212
|
+
501: string;
|
|
213
|
+
502: string;
|
|
214
|
+
503: string;
|
|
215
|
+
504: string;
|
|
216
|
+
505: string;
|
|
217
|
+
506: string;
|
|
218
|
+
507: string;
|
|
219
|
+
508: string;
|
|
220
|
+
510: string;
|
|
221
|
+
511: string;
|
|
222
|
+
};
|
|
223
|
+
|
|
150
224
|
export declare function renderCacheControl(data: TCacheControl): string;
|
|
151
225
|
|
|
152
226
|
export declare type TAuthCache = {
|
|
@@ -272,7 +346,7 @@ export declare interface TWooksHttpOptions {
|
|
|
272
346
|
}
|
|
273
347
|
|
|
274
348
|
export declare interface TWooksResponseRenderer<T = unknown> {
|
|
275
|
-
render: (response:
|
|
349
|
+
render: (response: BaseHttpResponse<T>) => string | Uint8Array;
|
|
276
350
|
}
|
|
277
351
|
|
|
278
352
|
export declare function useAccept(): {
|
|
@@ -404,13 +478,6 @@ export declare function useStatus(): {
|
|
|
404
478
|
isDefined: boolean;
|
|
405
479
|
};
|
|
406
480
|
|
|
407
|
-
export declare class WooksErrorRenderer extends BaseWooksResponseRenderer<TWooksErrorBodyExt> {
|
|
408
|
-
renderHtml(response: BaseWooksResponse<TWooksErrorBodyExt>): string;
|
|
409
|
-
renderText(response: BaseWooksResponse<TWooksErrorBodyExt>): string;
|
|
410
|
-
renderJson(response: BaseWooksResponse<TWooksErrorBodyExt>): string;
|
|
411
|
-
render(response: BaseWooksResponse<TWooksErrorBodyExt>): string;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
481
|
export declare class WooksHttp extends WooksAdapterBase {
|
|
415
482
|
protected opts?: TWooksHttpOptions | undefined;
|
|
416
483
|
constructor(opts?: TWooksHttpOptions | undefined, wooks?: Wooks | WooksAdapterBase);
|
|
@@ -425,8 +492,10 @@ export declare class WooksHttp extends WooksAdapterBase {
|
|
|
425
492
|
protected server?: Server;
|
|
426
493
|
listen(...args: Parameters<Server['listen']>): Promise<unknown>;
|
|
427
494
|
close(server?: Server): Promise<unknown>;
|
|
495
|
+
getServer(): http.Server<typeof http.IncomingMessage, typeof http.ServerResponse> | undefined;
|
|
496
|
+
attachServer(server?: Server): void;
|
|
428
497
|
protected responder: {
|
|
429
|
-
createResponse: <T = unknown>(data: T) =>
|
|
498
|
+
createResponse: <T = unknown>(data: T) => BaseHttpResponse<T | TWooksErrorBodyExt> | null;
|
|
430
499
|
respond: (data: unknown) => Promise<unknown> | undefined;
|
|
431
500
|
};
|
|
432
501
|
protected respond(data: unknown): void;
|
package/dist/index.mjs
CHANGED
|
@@ -462,7 +462,7 @@ function __asyncValues(o) {
|
|
|
462
462
|
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
463
463
|
}
|
|
464
464
|
|
|
465
|
-
class
|
|
465
|
+
class BaseHttpResponseRenderer {
|
|
466
466
|
render(response) {
|
|
467
467
|
if (typeof response.body === 'string' || typeof response.body === 'boolean' || typeof response.body === 'number') {
|
|
468
468
|
if (!response.getContentType())
|
|
@@ -623,8 +623,8 @@ const defaultStatus = {
|
|
|
623
623
|
PATCH: EHttpStatusCode.Accepted,
|
|
624
624
|
DELETE: EHttpStatusCode.Accepted,
|
|
625
625
|
};
|
|
626
|
-
const baseRenderer = new
|
|
627
|
-
class
|
|
626
|
+
const baseRenderer = new BaseHttpResponseRenderer();
|
|
627
|
+
class BaseHttpResponse {
|
|
628
628
|
constructor(renderer = baseRenderer) {
|
|
629
629
|
this.renderer = renderer;
|
|
630
630
|
this._status = 0;
|
|
@@ -801,7 +801,7 @@ const preStyles = 'font-family: monospace;'
|
|
|
801
801
|
+ 'border-radius: 8px;'
|
|
802
802
|
+ 'background-color: #494949;'
|
|
803
803
|
+ 'box-shadow: 0px 0px 3px 2px rgb(255 255 255 / 20%);';
|
|
804
|
-
class
|
|
804
|
+
class HttpErrorRenderer extends BaseHttpResponseRenderer {
|
|
805
805
|
renderHtml(response) {
|
|
806
806
|
const data = response.body || {};
|
|
807
807
|
response.setContentType('text/html');
|
|
@@ -810,7 +810,7 @@ class WooksErrorRenderer extends BaseWooksResponseRenderer {
|
|
|
810
810
|
`<head><title>${data.statusCode} ${httpStatusCodes[data.statusCode]}</title></head>` +
|
|
811
811
|
`<body><center><h1>${data.statusCode} ${httpStatusCodes[data.statusCode]}</h1></center>` +
|
|
812
812
|
`<center><h4>${data.message}</h1></center><hr color="#666">` +
|
|
813
|
-
`<center style="color: #666;"> Wooks v${"0.2.
|
|
813
|
+
`<center style="color: #666;"> Wooks v${"0.2.9"} </center>` +
|
|
814
814
|
`${keys.length ? `<pre style="${preStyles}">${JSON.stringify(Object.assign(Object.assign({}, data), { statusCode: undefined, message: undefined, error: undefined }), null, ' ')}</pre>` : ''}` +
|
|
815
815
|
'</body></html>';
|
|
816
816
|
}
|
|
@@ -875,15 +875,15 @@ class HttpError extends Error {
|
|
|
875
875
|
|
|
876
876
|
function createWooksResponder(
|
|
877
877
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
878
|
-
renderer = new
|
|
878
|
+
renderer = new BaseHttpResponseRenderer(),
|
|
879
879
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
880
|
-
errorRenderer = new
|
|
880
|
+
errorRenderer = new HttpErrorRenderer()) {
|
|
881
881
|
function createResponse(data) {
|
|
882
882
|
const { hasResponded } = useResponse();
|
|
883
883
|
if (hasResponded())
|
|
884
884
|
return null;
|
|
885
885
|
if (data instanceof Error) {
|
|
886
|
-
const r = new
|
|
886
|
+
const r = new BaseHttpResponse(errorRenderer);
|
|
887
887
|
let httpError;
|
|
888
888
|
if (data instanceof HttpError) {
|
|
889
889
|
httpError = data;
|
|
@@ -894,11 +894,11 @@ errorRenderer = new WooksErrorRenderer()) {
|
|
|
894
894
|
r.setBody(httpError.body);
|
|
895
895
|
return r;
|
|
896
896
|
}
|
|
897
|
-
else if (data instanceof
|
|
897
|
+
else if (data instanceof BaseHttpResponse) {
|
|
898
898
|
return data;
|
|
899
899
|
}
|
|
900
900
|
else {
|
|
901
|
-
return new
|
|
901
|
+
return new BaseHttpResponse(renderer).setBody(data);
|
|
902
902
|
}
|
|
903
903
|
}
|
|
904
904
|
return {
|
|
@@ -948,7 +948,7 @@ class WooksHttp extends WooksAdapterBase {
|
|
|
948
948
|
});
|
|
949
949
|
}
|
|
950
950
|
close(server) {
|
|
951
|
-
|
|
951
|
+
const srv = server || this.server;
|
|
952
952
|
return new Promise((resolve, reject) => {
|
|
953
953
|
srv === null || srv === void 0 ? void 0 : srv.close((err) => {
|
|
954
954
|
if (err)
|
|
@@ -957,6 +957,12 @@ class WooksHttp extends WooksAdapterBase {
|
|
|
957
957
|
});
|
|
958
958
|
});
|
|
959
959
|
}
|
|
960
|
+
getServer() {
|
|
961
|
+
return this.server;
|
|
962
|
+
}
|
|
963
|
+
attachServer(server) {
|
|
964
|
+
this.server = server;
|
|
965
|
+
}
|
|
960
966
|
respond(data) {
|
|
961
967
|
var _a;
|
|
962
968
|
void ((_a = this.responder.respond(data)) === null || _a === void 0 ? void 0 : _a.catch((e) => {
|
|
@@ -1018,4 +1024,4 @@ function createHttpApp(opts, wooks) {
|
|
|
1018
1024
|
return new WooksHttp(opts, wooks);
|
|
1019
1025
|
}
|
|
1020
1026
|
|
|
1021
|
-
export {
|
|
1027
|
+
export { BaseHttpResponse, BaseHttpResponseRenderer, EHttpStatusCode, HttpError, HttpErrorRenderer, WooksHttp, WooksURLSearchParams, createHttpApp, createHttpContext, createWooksResponder, httpStatusCodes, renderCacheControl, useAccept, useAuthorization, useCookies, useHeaders, useHttpContext, useRequest, useResponse, useSearchParams, useSetCacheControl, useSetCookie, useSetCookies, useSetHeader, useSetHeaders, useStatus };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wooksjs/event-http",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.9",
|
|
4
4
|
"description": "@wooksjs/event-http",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -31,8 +31,9 @@
|
|
|
31
31
|
"url": "https://github.com/wooksjs/wooksjs/issues"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"wooks": "0.2.
|
|
35
|
-
"@
|
|
34
|
+
"wooks": "0.2.9",
|
|
35
|
+
"@prostojs/router": "^0.0.16",
|
|
36
|
+
"@wooksjs/event-core": "0.2.9"
|
|
36
37
|
},
|
|
37
38
|
"homepage": "https://github.com/wooksjs/wooksjs/tree/main/packages/event-http#readme"
|
|
38
39
|
}
|