hono 3.10.4 → 3.11.0
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/adapter/aws-lambda/handler.js +7 -9
- package/dist/cjs/adapter/aws-lambda/handler.js +7 -9
- package/dist/cjs/compose.js +2 -5
- package/dist/cjs/context.js +93 -71
- package/dist/cjs/helper/dev/index.js +68 -0
- package/dist/cjs/helper/factory/index.js +14 -1
- package/dist/cjs/helper/html/index.js +2 -2
- package/dist/cjs/helper.js +1 -0
- package/dist/cjs/hono-base.js +43 -30
- package/dist/cjs/jsx/components.js +148 -0
- package/dist/cjs/jsx/index.js +4 -1
- package/dist/cjs/jsx/streaming.js +31 -29
- package/dist/cjs/middleware/basic-auth/index.js +1 -1
- package/dist/cjs/middleware/bearer-auth/index.js +12 -2
- package/dist/cjs/middleware/cache/index.js +5 -5
- package/dist/cjs/middleware/compress/index.js +1 -1
- package/dist/cjs/middleware/cors/index.js +1 -1
- package/dist/cjs/middleware/etag/index.js +7 -7
- package/dist/cjs/middleware/jsx-renderer/index.js +1 -1
- package/dist/cjs/middleware/jwt/index.js +1 -1
- package/dist/cjs/middleware/logger/index.js +1 -1
- package/dist/cjs/middleware/powered-by/index.js +1 -1
- package/dist/cjs/middleware/pretty-json/index.js +1 -1
- package/dist/cjs/middleware/secure-headers/index.js +1 -1
- package/dist/cjs/middleware/timing/index.js +1 -1
- package/dist/cjs/request.js +38 -12
- package/dist/cjs/router/reg-exp-router/router.js +1 -1
- package/dist/cjs/router/smart-router/router.js +1 -1
- package/dist/cjs/router.js +3 -0
- package/dist/cjs/utils/html.js +20 -4
- package/dist/compose.js +2 -5
- package/dist/context.js +94 -71
- package/dist/helper/dev/index.js +44 -0
- package/dist/helper/factory/index.js +12 -1
- package/dist/helper/html/index.js +2 -2
- package/dist/helper.js +1 -0
- package/dist/hono-base.js +43 -29
- package/dist/jsx/components.js +124 -0
- package/dist/jsx/index.js +3 -1
- package/dist/jsx/streaming.js +30 -28
- package/dist/middleware/basic-auth/index.js +1 -1
- package/dist/middleware/bearer-auth/index.js +12 -2
- package/dist/middleware/cache/index.js +5 -5
- package/dist/middleware/compress/index.js +1 -1
- package/dist/middleware/cors/index.js +1 -1
- package/dist/middleware/etag/index.js +7 -7
- package/dist/middleware/jsx-renderer/index.js +1 -1
- package/dist/middleware/jwt/index.js +1 -1
- package/dist/middleware/logger/index.js +1 -1
- package/dist/middleware/powered-by/index.js +1 -1
- package/dist/middleware/pretty-json/index.js +1 -1
- package/dist/middleware/secure-headers/index.js +1 -1
- package/dist/middleware/timing/index.js +1 -1
- package/dist/request.js +39 -12
- package/dist/router/reg-exp-router/router.js +7 -2
- package/dist/router/smart-router/router.js +2 -2
- package/dist/router.js +2 -0
- package/dist/types/adapter/aws-lambda/custom-context.d.ts +10 -1
- package/dist/types/adapter/aws-lambda/handler.d.ts +28 -8
- package/dist/types/adapter/aws-lambda/index.d.ts +2 -2
- package/dist/types/client/types.d.ts +1 -1
- package/dist/types/compose.d.ts +1 -1
- package/dist/types/context.d.ts +11 -24
- package/dist/types/helper/dev/index.d.ts +13 -0
- package/dist/types/helper/factory/index.d.ts +114 -2
- package/dist/types/helper/html/index.d.ts +2 -2
- package/dist/types/helper.d.ts +1 -0
- package/dist/types/hono-base.d.ts +13 -10
- package/dist/types/jsx/components.d.ts +16 -0
- package/dist/types/jsx/index.d.ts +1 -0
- package/dist/types/middleware/bearer-auth/index.d.ts +1 -1
- package/dist/types/request.d.ts +7 -7
- package/dist/types/router.d.ts +1 -0
- package/dist/types/types.d.ts +259 -54
- package/dist/types/utils/html.d.ts +8 -1
- package/dist/utils/html.js +19 -4
- package/package.json +9 -1
|
@@ -20,6 +20,7 @@ var streamHandle = (app) => {
|
|
|
20
20
|
const req = createRequest(event);
|
|
21
21
|
const requestContext = getRequestContext(event);
|
|
22
22
|
const res = await app.fetch(req, {
|
|
23
|
+
event,
|
|
23
24
|
requestContext,
|
|
24
25
|
context
|
|
25
26
|
});
|
|
@@ -47,6 +48,7 @@ var handle = (app) => {
|
|
|
47
48
|
const req = createRequest(event);
|
|
48
49
|
const requestContext = getRequestContext(event);
|
|
49
50
|
const res = await app.fetch(req, {
|
|
51
|
+
event,
|
|
50
52
|
requestContext,
|
|
51
53
|
lambdaContext
|
|
52
54
|
});
|
|
@@ -81,7 +83,9 @@ var createResult = async (event, res) => {
|
|
|
81
83
|
};
|
|
82
84
|
var createRequest = (event) => {
|
|
83
85
|
const queryString = extractQueryString(event);
|
|
84
|
-
const
|
|
86
|
+
const domainName = event.requestContext && "domainName" in event.requestContext ? event.requestContext.domainName : event.headers["host"];
|
|
87
|
+
const path = isProxyEventV2(event) ? event.rawPath : event.path;
|
|
88
|
+
const urlPath = `https://${domainName}${path}`;
|
|
85
89
|
const url = queryString ? `${urlPath}?${queryString}` : urlPath;
|
|
86
90
|
const headers = new Headers();
|
|
87
91
|
getCookies(event, headers);
|
|
@@ -89,7 +93,7 @@ var createRequest = (event) => {
|
|
|
89
93
|
if (v)
|
|
90
94
|
headers.set(k, v);
|
|
91
95
|
}
|
|
92
|
-
const method =
|
|
96
|
+
const method = isProxyEventV2(event) ? event.requestContext.http.method : event.httpMethod;
|
|
93
97
|
const requestInit = {
|
|
94
98
|
headers,
|
|
95
99
|
method
|
|
@@ -100,10 +104,7 @@ var createRequest = (event) => {
|
|
|
100
104
|
return new Request(url, requestInit);
|
|
101
105
|
};
|
|
102
106
|
var extractQueryString = (event) => {
|
|
103
|
-
|
|
104
|
-
return Object.entries(event.queryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value}`).join("&");
|
|
105
|
-
}
|
|
106
|
-
return isProxyEventV2(event) ? event.rawQueryString : event.rawQueryString;
|
|
107
|
+
return isProxyEventV2(event) ? event.rawQueryString : Object.entries(event.queryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value}`).join("&");
|
|
107
108
|
};
|
|
108
109
|
var getCookies = (event, headers) => {
|
|
109
110
|
if (isProxyEventV2(event) && Array.isArray(event.cookies)) {
|
|
@@ -125,9 +126,6 @@ var setCookies = (event, res, result) => {
|
|
|
125
126
|
}
|
|
126
127
|
}
|
|
127
128
|
};
|
|
128
|
-
var isProxyEvent = (event) => {
|
|
129
|
-
return Object.prototype.hasOwnProperty.call(event, "path");
|
|
130
|
-
};
|
|
131
129
|
var isProxyEventV2 = (event) => {
|
|
132
130
|
return Object.prototype.hasOwnProperty.call(event, "rawPath");
|
|
133
131
|
};
|
|
@@ -51,6 +51,7 @@ const streamHandle = (app) => {
|
|
|
51
51
|
const req = createRequest(event);
|
|
52
52
|
const requestContext = getRequestContext(event);
|
|
53
53
|
const res = await app.fetch(req, {
|
|
54
|
+
event,
|
|
54
55
|
requestContext,
|
|
55
56
|
context
|
|
56
57
|
});
|
|
@@ -78,6 +79,7 @@ const handle = (app) => {
|
|
|
78
79
|
const req = createRequest(event);
|
|
79
80
|
const requestContext = getRequestContext(event);
|
|
80
81
|
const res = await app.fetch(req, {
|
|
82
|
+
event,
|
|
81
83
|
requestContext,
|
|
82
84
|
lambdaContext
|
|
83
85
|
});
|
|
@@ -112,7 +114,9 @@ const createResult = async (event, res) => {
|
|
|
112
114
|
};
|
|
113
115
|
const createRequest = (event) => {
|
|
114
116
|
const queryString = extractQueryString(event);
|
|
115
|
-
const
|
|
117
|
+
const domainName = event.requestContext && "domainName" in event.requestContext ? event.requestContext.domainName : event.headers["host"];
|
|
118
|
+
const path = isProxyEventV2(event) ? event.rawPath : event.path;
|
|
119
|
+
const urlPath = `https://${domainName}${path}`;
|
|
116
120
|
const url = queryString ? `${urlPath}?${queryString}` : urlPath;
|
|
117
121
|
const headers = new Headers();
|
|
118
122
|
getCookies(event, headers);
|
|
@@ -120,7 +124,7 @@ const createRequest = (event) => {
|
|
|
120
124
|
if (v)
|
|
121
125
|
headers.set(k, v);
|
|
122
126
|
}
|
|
123
|
-
const method =
|
|
127
|
+
const method = isProxyEventV2(event) ? event.requestContext.http.method : event.httpMethod;
|
|
124
128
|
const requestInit = {
|
|
125
129
|
headers,
|
|
126
130
|
method
|
|
@@ -131,10 +135,7 @@ const createRequest = (event) => {
|
|
|
131
135
|
return new Request(url, requestInit);
|
|
132
136
|
};
|
|
133
137
|
const extractQueryString = (event) => {
|
|
134
|
-
|
|
135
|
-
return Object.entries(event.queryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value}`).join("&");
|
|
136
|
-
}
|
|
137
|
-
return isProxyEventV2(event) ? event.rawQueryString : event.rawQueryString;
|
|
138
|
+
return isProxyEventV2(event) ? event.rawQueryString : Object.entries(event.queryStringParameters || {}).filter(([, value]) => value).map(([key, value]) => `${key}=${value}`).join("&");
|
|
138
139
|
};
|
|
139
140
|
const getCookies = (event, headers) => {
|
|
140
141
|
if (isProxyEventV2(event) && Array.isArray(event.cookies)) {
|
|
@@ -156,9 +157,6 @@ const setCookies = (event, res, result) => {
|
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
159
|
};
|
|
159
|
-
const isProxyEvent = (event) => {
|
|
160
|
-
return Object.prototype.hasOwnProperty.call(event, "path");
|
|
161
|
-
};
|
|
162
160
|
const isProxyEventV2 = (event) => {
|
|
163
161
|
return Object.prototype.hasOwnProperty.call(event, "rawPath");
|
|
164
162
|
};
|
package/dist/cjs/compose.js
CHANGED
|
@@ -35,9 +35,9 @@ const compose = (middleware, onError, onNotFound) => {
|
|
|
35
35
|
let isError = false;
|
|
36
36
|
let handler;
|
|
37
37
|
if (middleware[i]) {
|
|
38
|
-
handler = middleware[i][0];
|
|
38
|
+
handler = middleware[i][0][0];
|
|
39
39
|
if (context instanceof import_context.Context) {
|
|
40
|
-
context.req.
|
|
40
|
+
context.req.routeIndex = i;
|
|
41
41
|
}
|
|
42
42
|
} else {
|
|
43
43
|
handler = i === middleware.length && next || void 0;
|
|
@@ -61,9 +61,6 @@ const compose = (middleware, onError, onNotFound) => {
|
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
if (res !== void 0 && "response" in res) {
|
|
65
|
-
res = res["response"];
|
|
66
|
-
}
|
|
67
64
|
if (res && (context.finalized === false || isError)) {
|
|
68
65
|
context.res = res;
|
|
69
66
|
}
|
package/dist/cjs/context.js
CHANGED
|
@@ -16,13 +16,33 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var __accessCheck = (obj, member, msg) => {
|
|
20
|
+
if (!member.has(obj))
|
|
21
|
+
throw TypeError("Cannot " + msg);
|
|
22
|
+
};
|
|
23
|
+
var __privateGet = (obj, member, getter) => {
|
|
24
|
+
__accessCheck(obj, member, "read from private field");
|
|
25
|
+
return getter ? getter.call(obj) : member.get(obj);
|
|
26
|
+
};
|
|
27
|
+
var __privateAdd = (obj, member, value) => {
|
|
28
|
+
if (member.has(obj))
|
|
29
|
+
throw TypeError("Cannot add the same private member more than once");
|
|
30
|
+
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
31
|
+
};
|
|
32
|
+
var __privateSet = (obj, member, value, setter) => {
|
|
33
|
+
__accessCheck(obj, member, "write to private field");
|
|
34
|
+
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
35
|
+
return value;
|
|
36
|
+
};
|
|
19
37
|
var context_exports = {};
|
|
20
38
|
__export(context_exports, {
|
|
21
39
|
Context: () => Context
|
|
22
40
|
});
|
|
23
41
|
module.exports = __toCommonJS(context_exports);
|
|
24
42
|
var import_cookie = require("./utils/cookie");
|
|
43
|
+
var import_html = require("./utils/html");
|
|
25
44
|
var import_stream = require("./utils/stream");
|
|
45
|
+
var _status, _executionCtx, _headers, _preparedHeaders, _res, _isFresh;
|
|
26
46
|
const TEXT_PLAIN = "text/plain; charset=UTF-8";
|
|
27
47
|
class Context {
|
|
28
48
|
constructor(req, options) {
|
|
@@ -30,22 +50,24 @@ class Context {
|
|
|
30
50
|
this._var = {};
|
|
31
51
|
this.finalized = false;
|
|
32
52
|
this.error = void 0;
|
|
33
|
-
this
|
|
34
|
-
this
|
|
35
|
-
this
|
|
36
|
-
this
|
|
37
|
-
this
|
|
53
|
+
__privateAdd(this, _status, 200);
|
|
54
|
+
__privateAdd(this, _executionCtx, void 0);
|
|
55
|
+
__privateAdd(this, _headers, void 0);
|
|
56
|
+
__privateAdd(this, _preparedHeaders, void 0);
|
|
57
|
+
__privateAdd(this, _res, void 0);
|
|
58
|
+
__privateAdd(this, _isFresh, true);
|
|
59
|
+
this.renderer = (content) => this.html(content);
|
|
38
60
|
this.notFoundHandler = () => new Response();
|
|
39
|
-
this.render = (...args) => this.
|
|
61
|
+
this.render = (...args) => this.renderer(...args);
|
|
40
62
|
this.setRenderer = (renderer) => {
|
|
41
|
-
this.
|
|
63
|
+
this.renderer = renderer;
|
|
42
64
|
};
|
|
43
65
|
this.header = (name, value, options) => {
|
|
44
66
|
if (value === void 0) {
|
|
45
|
-
if (this
|
|
46
|
-
this.
|
|
47
|
-
} else if (this
|
|
48
|
-
delete this
|
|
67
|
+
if (__privateGet(this, _headers)) {
|
|
68
|
+
__privateGet(this, _headers).delete(name);
|
|
69
|
+
} else if (__privateGet(this, _preparedHeaders)) {
|
|
70
|
+
delete __privateGet(this, _preparedHeaders)[name.toLocaleLowerCase()];
|
|
49
71
|
}
|
|
50
72
|
if (this.finalized) {
|
|
51
73
|
this.res.headers.delete(name);
|
|
@@ -53,18 +75,18 @@ class Context {
|
|
|
53
75
|
return;
|
|
54
76
|
}
|
|
55
77
|
if (options?.append) {
|
|
56
|
-
if (!this
|
|
57
|
-
this
|
|
58
|
-
this
|
|
59
|
-
this
|
|
78
|
+
if (!__privateGet(this, _headers)) {
|
|
79
|
+
__privateSet(this, _isFresh, false);
|
|
80
|
+
__privateSet(this, _headers, new Headers(__privateGet(this, _preparedHeaders)));
|
|
81
|
+
__privateSet(this, _preparedHeaders, {});
|
|
60
82
|
}
|
|
61
|
-
this.
|
|
83
|
+
__privateGet(this, _headers).append(name, value);
|
|
62
84
|
} else {
|
|
63
|
-
if (this
|
|
64
|
-
this.
|
|
85
|
+
if (__privateGet(this, _headers)) {
|
|
86
|
+
__privateGet(this, _headers).set(name, value);
|
|
65
87
|
} else {
|
|
66
|
-
this
|
|
67
|
-
this
|
|
88
|
+
__privateGet(this, _preparedHeaders) ?? __privateSet(this, _preparedHeaders, {});
|
|
89
|
+
__privateGet(this, _preparedHeaders)[name.toLowerCase()] = value;
|
|
68
90
|
}
|
|
69
91
|
}
|
|
70
92
|
if (this.finalized) {
|
|
@@ -76,8 +98,8 @@ class Context {
|
|
|
76
98
|
}
|
|
77
99
|
};
|
|
78
100
|
this.status = (status) => {
|
|
79
|
-
this
|
|
80
|
-
this
|
|
101
|
+
__privateSet(this, _isFresh, false);
|
|
102
|
+
__privateSet(this, _status, status);
|
|
81
103
|
};
|
|
82
104
|
this.set = (key, value) => {
|
|
83
105
|
this._var ?? (this._var = {});
|
|
@@ -87,86 +109,80 @@ class Context {
|
|
|
87
109
|
return this._var ? this._var[key] : void 0;
|
|
88
110
|
};
|
|
89
111
|
this.newResponse = (data, arg, headers) => {
|
|
90
|
-
if (this
|
|
112
|
+
if (__privateGet(this, _isFresh) && !headers && !arg && __privateGet(this, _status) === 200) {
|
|
91
113
|
return new Response(data, {
|
|
92
|
-
headers: this
|
|
114
|
+
headers: __privateGet(this, _preparedHeaders)
|
|
93
115
|
});
|
|
94
116
|
}
|
|
95
117
|
if (arg && typeof arg !== "number") {
|
|
96
118
|
const res = new Response(data, arg);
|
|
97
|
-
const contentType = this
|
|
119
|
+
const contentType = __privateGet(this, _preparedHeaders)?.["content-type"];
|
|
98
120
|
if (contentType) {
|
|
99
121
|
res.headers.set("content-type", contentType);
|
|
100
122
|
}
|
|
101
123
|
return res;
|
|
102
124
|
}
|
|
103
|
-
const status = arg ?? this
|
|
104
|
-
this
|
|
105
|
-
this
|
|
106
|
-
for (const [k, v] of Object.entries(this
|
|
107
|
-
this.
|
|
125
|
+
const status = arg ?? __privateGet(this, _status);
|
|
126
|
+
__privateGet(this, _preparedHeaders) ?? __privateSet(this, _preparedHeaders, {});
|
|
127
|
+
__privateGet(this, _headers) ?? __privateSet(this, _headers, new Headers());
|
|
128
|
+
for (const [k, v] of Object.entries(__privateGet(this, _preparedHeaders))) {
|
|
129
|
+
__privateGet(this, _headers).set(k, v);
|
|
108
130
|
}
|
|
109
|
-
if (this
|
|
110
|
-
this
|
|
111
|
-
this
|
|
131
|
+
if (__privateGet(this, _res)) {
|
|
132
|
+
__privateGet(this, _res).headers.forEach((v, k) => {
|
|
133
|
+
__privateGet(this, _headers)?.set(k, v);
|
|
112
134
|
});
|
|
113
|
-
for (const [k, v] of Object.entries(this
|
|
114
|
-
this.
|
|
135
|
+
for (const [k, v] of Object.entries(__privateGet(this, _preparedHeaders))) {
|
|
136
|
+
__privateGet(this, _headers).set(k, v);
|
|
115
137
|
}
|
|
116
138
|
}
|
|
117
139
|
headers ?? (headers = {});
|
|
118
140
|
for (const [k, v] of Object.entries(headers)) {
|
|
119
141
|
if (typeof v === "string") {
|
|
120
|
-
this.
|
|
142
|
+
__privateGet(this, _headers).set(k, v);
|
|
121
143
|
} else {
|
|
122
|
-
this.
|
|
144
|
+
__privateGet(this, _headers).delete(k);
|
|
123
145
|
for (const v2 of v) {
|
|
124
|
-
this.
|
|
146
|
+
__privateGet(this, _headers).append(k, v2);
|
|
125
147
|
}
|
|
126
148
|
}
|
|
127
149
|
}
|
|
128
150
|
return new Response(data, {
|
|
129
151
|
status,
|
|
130
|
-
headers: this
|
|
152
|
+
headers: __privateGet(this, _headers)
|
|
131
153
|
});
|
|
132
154
|
};
|
|
133
155
|
this.body = (data, arg, headers) => {
|
|
134
156
|
return typeof arg === "number" ? this.newResponse(data, arg, headers) : this.newResponse(data, arg);
|
|
135
157
|
};
|
|
136
158
|
this.text = (text, arg, headers) => {
|
|
137
|
-
if (!this
|
|
138
|
-
if (this
|
|
159
|
+
if (!__privateGet(this, _preparedHeaders)) {
|
|
160
|
+
if (__privateGet(this, _isFresh) && !headers && !arg) {
|
|
139
161
|
return new Response(text);
|
|
140
162
|
}
|
|
141
|
-
this
|
|
163
|
+
__privateSet(this, _preparedHeaders, {});
|
|
142
164
|
}
|
|
143
|
-
this
|
|
165
|
+
__privateGet(this, _preparedHeaders)["content-type"] = TEXT_PLAIN;
|
|
144
166
|
return typeof arg === "number" ? this.newResponse(text, arg, headers) : this.newResponse(text, arg);
|
|
145
167
|
};
|
|
146
168
|
this.json = (object, arg, headers) => {
|
|
147
169
|
const body = JSON.stringify(object);
|
|
148
|
-
this
|
|
149
|
-
this
|
|
170
|
+
__privateGet(this, _preparedHeaders) ?? __privateSet(this, _preparedHeaders, {});
|
|
171
|
+
__privateGet(this, _preparedHeaders)["content-type"] = "application/json; charset=UTF-8";
|
|
150
172
|
return typeof arg === "number" ? this.newResponse(body, arg, headers) : this.newResponse(body, arg);
|
|
151
173
|
};
|
|
152
174
|
this.jsonT = (object, arg, headers) => {
|
|
153
|
-
|
|
154
|
-
return {
|
|
155
|
-
response,
|
|
156
|
-
data: object,
|
|
157
|
-
format: "json",
|
|
158
|
-
status: response.status
|
|
159
|
-
};
|
|
175
|
+
return this.json(object, arg, headers);
|
|
160
176
|
};
|
|
161
177
|
this.html = (html, arg, headers) => {
|
|
162
|
-
this
|
|
163
|
-
this
|
|
178
|
+
__privateGet(this, _preparedHeaders) ?? __privateSet(this, _preparedHeaders, {});
|
|
179
|
+
__privateGet(this, _preparedHeaders)["content-type"] = "text/html; charset=UTF-8";
|
|
164
180
|
if (typeof html === "object") {
|
|
165
181
|
if (!(html instanceof Promise)) {
|
|
166
182
|
html = html.toString();
|
|
167
183
|
}
|
|
168
184
|
if (html instanceof Promise) {
|
|
169
|
-
return html.then((html2) => {
|
|
185
|
+
return html.then((html2) => (0, import_html.resolveStream)(html2)).then((html2) => {
|
|
170
186
|
return typeof arg === "number" ? this.newResponse(html2, arg, headers) : this.newResponse(html2, arg);
|
|
171
187
|
});
|
|
172
188
|
}
|
|
@@ -174,8 +190,8 @@ class Context {
|
|
|
174
190
|
return typeof arg === "number" ? this.newResponse(html, arg, headers) : this.newResponse(html, arg);
|
|
175
191
|
};
|
|
176
192
|
this.redirect = (location, status = 302) => {
|
|
177
|
-
this
|
|
178
|
-
this.
|
|
193
|
+
__privateGet(this, _headers) ?? __privateSet(this, _headers, new Headers());
|
|
194
|
+
__privateGet(this, _headers).set("Location", location);
|
|
179
195
|
return this.newResponse(null, status);
|
|
180
196
|
};
|
|
181
197
|
this.streamText = (cb, arg, headers) => {
|
|
@@ -200,7 +216,7 @@ class Context {
|
|
|
200
216
|
};
|
|
201
217
|
this.req = req;
|
|
202
218
|
if (options) {
|
|
203
|
-
this
|
|
219
|
+
__privateSet(this, _executionCtx, options.executionCtx);
|
|
204
220
|
this.env = options.env;
|
|
205
221
|
if (options.notFoundHandler) {
|
|
206
222
|
this.notFoundHandler = options.notFoundHandler;
|
|
@@ -208,32 +224,32 @@ class Context {
|
|
|
208
224
|
}
|
|
209
225
|
}
|
|
210
226
|
get event() {
|
|
211
|
-
if (this
|
|
212
|
-
return this
|
|
227
|
+
if (__privateGet(this, _executionCtx) && "respondWith" in __privateGet(this, _executionCtx)) {
|
|
228
|
+
return __privateGet(this, _executionCtx);
|
|
213
229
|
} else {
|
|
214
230
|
throw Error("This context has no FetchEvent");
|
|
215
231
|
}
|
|
216
232
|
}
|
|
217
233
|
get executionCtx() {
|
|
218
|
-
if (this
|
|
219
|
-
return this
|
|
234
|
+
if (__privateGet(this, _executionCtx)) {
|
|
235
|
+
return __privateGet(this, _executionCtx);
|
|
220
236
|
} else {
|
|
221
237
|
throw Error("This context has no ExecutionContext");
|
|
222
238
|
}
|
|
223
239
|
}
|
|
224
240
|
get res() {
|
|
225
|
-
this
|
|
226
|
-
return this
|
|
241
|
+
__privateSet(this, _isFresh, false);
|
|
242
|
+
return __privateGet(this, _res) || __privateSet(this, _res, new Response("404 Not Found", { status: 404 }));
|
|
227
243
|
}
|
|
228
|
-
set res(
|
|
229
|
-
this
|
|
230
|
-
if (this
|
|
231
|
-
this
|
|
232
|
-
this
|
|
233
|
-
|
|
244
|
+
set res(_res2) {
|
|
245
|
+
__privateSet(this, _isFresh, false);
|
|
246
|
+
if (__privateGet(this, _res) && _res2) {
|
|
247
|
+
__privateGet(this, _res).headers.delete("content-type");
|
|
248
|
+
__privateGet(this, _res).headers.forEach((v, k) => {
|
|
249
|
+
_res2.headers.set(k, v);
|
|
234
250
|
});
|
|
235
251
|
}
|
|
236
|
-
this
|
|
252
|
+
__privateSet(this, _res, _res2);
|
|
237
253
|
this.finalized = true;
|
|
238
254
|
}
|
|
239
255
|
get var() {
|
|
@@ -265,6 +281,12 @@ class Context {
|
|
|
265
281
|
return "other";
|
|
266
282
|
}
|
|
267
283
|
}
|
|
284
|
+
_status = new WeakMap();
|
|
285
|
+
_executionCtx = new WeakMap();
|
|
286
|
+
_headers = new WeakMap();
|
|
287
|
+
_preparedHeaders = new WeakMap();
|
|
288
|
+
_res = new WeakMap();
|
|
289
|
+
_isFresh = new WeakMap();
|
|
268
290
|
// Annotate the CommonJS export names for ESM import in node:
|
|
269
291
|
0 && (module.exports = {
|
|
270
292
|
Context
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var dev_exports = {};
|
|
20
|
+
__export(dev_exports, {
|
|
21
|
+
inspectRoutes: () => inspectRoutes,
|
|
22
|
+
showRoutes: () => showRoutes
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(dev_exports);
|
|
25
|
+
const isMiddleware = (handler) => handler.length > 1;
|
|
26
|
+
const handlerName = (handler) => {
|
|
27
|
+
return handler.name || (isMiddleware(handler) ? "[middleware]" : "[handler]");
|
|
28
|
+
};
|
|
29
|
+
const inspectRoutes = (hono) => {
|
|
30
|
+
return hono.routes.map(({ path, method, handler }) => ({
|
|
31
|
+
path,
|
|
32
|
+
method,
|
|
33
|
+
name: handlerName(handler),
|
|
34
|
+
isMiddleware: isMiddleware(handler)
|
|
35
|
+
}));
|
|
36
|
+
};
|
|
37
|
+
const showRoutes = (hono, opts) => {
|
|
38
|
+
const routeData = {};
|
|
39
|
+
let maxMethodLength = 0;
|
|
40
|
+
let maxPathLength = 0;
|
|
41
|
+
inspectRoutes(hono).filter(({ isMiddleware: isMiddleware2 }) => opts?.verbose || !isMiddleware2).map((route) => {
|
|
42
|
+
const key = `${route.method}-${route.path}`;
|
|
43
|
+
(routeData[key] || (routeData[key] = [])).push(route);
|
|
44
|
+
if (routeData[key].length > 1) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
maxMethodLength = Math.max(maxMethodLength, route.method.length);
|
|
48
|
+
maxPathLength = Math.max(maxPathLength, route.path.length);
|
|
49
|
+
return { method: route.method, path: route.path, routes: routeData[key] };
|
|
50
|
+
}).forEach((data) => {
|
|
51
|
+
if (!data) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
const { method, path, routes } = data;
|
|
55
|
+
console.log(`\x1B[32m${method}\x1B[0m ${" ".repeat(maxMethodLength - method.length)} ${path}`);
|
|
56
|
+
if (!opts?.verbose) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
routes.forEach(({ name }) => {
|
|
60
|
+
console.log(`${" ".repeat(maxMethodLength + 3)} ${name}`);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
65
|
+
0 && (module.exports = {
|
|
66
|
+
inspectRoutes,
|
|
67
|
+
showRoutes
|
|
68
|
+
});
|
|
@@ -18,11 +18,24 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var factory_exports = {};
|
|
20
20
|
__export(factory_exports, {
|
|
21
|
+
Factory: () => Factory,
|
|
22
|
+
createFactory: () => createFactory,
|
|
21
23
|
createMiddleware: () => createMiddleware
|
|
22
24
|
});
|
|
23
25
|
module.exports = __toCommonJS(factory_exports);
|
|
24
|
-
|
|
26
|
+
class Factory {
|
|
27
|
+
constructor() {
|
|
28
|
+
this.createMiddleware = (middleware) => middleware;
|
|
29
|
+
}
|
|
30
|
+
createHandlers(...handlers) {
|
|
31
|
+
return handlers.filter((handler) => handler !== void 0);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const createFactory = () => new Factory();
|
|
35
|
+
const createMiddleware = (middleware) => createFactory().createMiddleware(middleware);
|
|
25
36
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
37
|
0 && (module.exports = {
|
|
38
|
+
Factory,
|
|
39
|
+
createFactory,
|
|
27
40
|
createMiddleware
|
|
28
41
|
});
|
|
@@ -23,10 +23,10 @@ __export(html_exports, {
|
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(html_exports);
|
|
25
25
|
var import_html = require("../../utils/html");
|
|
26
|
-
const raw = (value,
|
|
26
|
+
const raw = (value, callbacks) => {
|
|
27
27
|
const escapedString = new String(value);
|
|
28
28
|
escapedString.isEscaped = true;
|
|
29
|
-
escapedString.
|
|
29
|
+
escapedString.callbacks = callbacks;
|
|
30
30
|
return escapedString;
|
|
31
31
|
};
|
|
32
32
|
const html = (strings, ...values) => {
|
package/dist/cjs/helper.js
CHANGED
|
@@ -21,3 +21,4 @@ __reExport(helper_exports, require("./helper/factory"), module.exports);
|
|
|
21
21
|
__reExport(helper_exports, require("./helper/html"), module.exports);
|
|
22
22
|
__reExport(helper_exports, require("./helper/streaming"), module.exports);
|
|
23
23
|
__reExport(helper_exports, require("./helper/testing"), module.exports);
|
|
24
|
+
__reExport(helper_exports, require("./helper/dev"), module.exports);
|