hono 3.6.0 → 3.6.2
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/cjs/helper/adapter/index.js +22 -27
- package/dist/cjs/hono-base.js +3 -3
- package/dist/helper/adapter/index.js +22 -27
- package/dist/hono-base.js +3 -3
- package/dist/types/adapter/cloudflare-workers/server-static-module.d.ts +1 -1
- package/dist/types/client/types.d.ts +2 -1
- package/dist/types/helper/factory/index.d.ts +1 -1
- package/dist/types/hono-base.d.ts +2 -2
- package/dist/types/types.d.ts +53 -64
- package/dist/types/utils/types.d.ts +2 -0
- package/package.json +1 -1
|
@@ -24,43 +24,38 @@ __export(adapter_exports, {
|
|
|
24
24
|
module.exports = __toCommonJS(adapter_exports);
|
|
25
25
|
const env = (c) => {
|
|
26
26
|
const global = globalThis;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
27
|
+
const globalEnv = global?.process?.env;
|
|
28
|
+
const runtime = getRuntimeKey();
|
|
29
|
+
const runtimeEnvHandlers = {
|
|
30
|
+
bun: () => globalEnv,
|
|
31
|
+
node: () => globalEnv,
|
|
32
|
+
"edge-light": () => globalEnv,
|
|
33
|
+
lagon: () => globalEnv,
|
|
34
|
+
deno: () => {
|
|
35
|
+
return Deno.env.toObject();
|
|
36
|
+
},
|
|
37
|
+
workerd: () => c.env,
|
|
38
|
+
fastly: () => ({}),
|
|
39
|
+
other: () => ({})
|
|
40
|
+
};
|
|
41
|
+
return runtimeEnvHandlers[runtime]();
|
|
40
42
|
};
|
|
41
43
|
const getRuntimeKey = () => {
|
|
42
44
|
const global = globalThis;
|
|
43
|
-
if (global?.Deno !== void 0)
|
|
45
|
+
if (global?.Deno !== void 0)
|
|
44
46
|
return "deno";
|
|
45
|
-
|
|
46
|
-
if (global?.Bun !== void 0) {
|
|
47
|
+
if (global?.Bun !== void 0)
|
|
47
48
|
return "bun";
|
|
48
|
-
|
|
49
|
-
if (typeof global?.WebSocketPair === "function") {
|
|
49
|
+
if (typeof global?.WebSocketPair === "function")
|
|
50
50
|
return "workerd";
|
|
51
|
-
|
|
52
|
-
if (typeof global?.EdgeRuntime === "string") {
|
|
51
|
+
if (typeof global?.EdgeRuntime === "string")
|
|
53
52
|
return "edge-light";
|
|
54
|
-
|
|
55
|
-
if (global?.fastly !== void 0) {
|
|
53
|
+
if (global?.fastly !== void 0)
|
|
56
54
|
return "fastly";
|
|
57
|
-
|
|
58
|
-
if (global?.__lagon__ !== void 0) {
|
|
55
|
+
if (global?.__lagon__ !== void 0)
|
|
59
56
|
return "lagon";
|
|
60
|
-
|
|
61
|
-
if (global?.process?.release?.name === "node") {
|
|
57
|
+
if (global?.process?.release?.name === "node")
|
|
62
58
|
return "node";
|
|
63
|
-
}
|
|
64
59
|
return "other";
|
|
65
60
|
};
|
|
66
61
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/cjs/hono-base.js
CHANGED
|
@@ -60,17 +60,17 @@ class Hono extends defineDynamicClass() {
|
|
|
60
60
|
this.fetch = (request, Env, executionCtx) => {
|
|
61
61
|
return this.dispatch(request, executionCtx, Env, request.method);
|
|
62
62
|
};
|
|
63
|
-
this.request = (input, requestInit) => {
|
|
63
|
+
this.request = (input, requestInit, Env, executionCtx) => {
|
|
64
64
|
if (input instanceof Request) {
|
|
65
65
|
if (requestInit !== void 0) {
|
|
66
66
|
input = new Request(input, requestInit);
|
|
67
67
|
}
|
|
68
|
-
return this.fetch(input);
|
|
68
|
+
return this.fetch(input, Env, executionCtx);
|
|
69
69
|
}
|
|
70
70
|
input = input.toString();
|
|
71
71
|
const path = /^https?:\/\//.test(input) ? input : `http://localhost${(0, import_url.mergePath)("/", input)}`;
|
|
72
72
|
const req = new Request(path, requestInit);
|
|
73
|
-
return this.fetch(req);
|
|
73
|
+
return this.fetch(req, Env, executionCtx);
|
|
74
74
|
};
|
|
75
75
|
this.fire = () => {
|
|
76
76
|
addEventListener("fetch", (event) => {
|
|
@@ -1,43 +1,38 @@
|
|
|
1
1
|
// src/helper/adapter/index.ts
|
|
2
2
|
var env = (c) => {
|
|
3
3
|
const global = globalThis;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
const globalEnv = global?.process?.env;
|
|
5
|
+
const runtime = getRuntimeKey();
|
|
6
|
+
const runtimeEnvHandlers = {
|
|
7
|
+
bun: () => globalEnv,
|
|
8
|
+
node: () => globalEnv,
|
|
9
|
+
"edge-light": () => globalEnv,
|
|
10
|
+
lagon: () => globalEnv,
|
|
11
|
+
deno: () => {
|
|
12
|
+
return Deno.env.toObject();
|
|
13
|
+
},
|
|
14
|
+
workerd: () => c.env,
|
|
15
|
+
fastly: () => ({}),
|
|
16
|
+
other: () => ({})
|
|
17
|
+
};
|
|
18
|
+
return runtimeEnvHandlers[runtime]();
|
|
17
19
|
};
|
|
18
20
|
var getRuntimeKey = () => {
|
|
19
21
|
const global = globalThis;
|
|
20
|
-
if (global?.Deno !== void 0)
|
|
22
|
+
if (global?.Deno !== void 0)
|
|
21
23
|
return "deno";
|
|
22
|
-
|
|
23
|
-
if (global?.Bun !== void 0) {
|
|
24
|
+
if (global?.Bun !== void 0)
|
|
24
25
|
return "bun";
|
|
25
|
-
|
|
26
|
-
if (typeof global?.WebSocketPair === "function") {
|
|
26
|
+
if (typeof global?.WebSocketPair === "function")
|
|
27
27
|
return "workerd";
|
|
28
|
-
|
|
29
|
-
if (typeof global?.EdgeRuntime === "string") {
|
|
28
|
+
if (typeof global?.EdgeRuntime === "string")
|
|
30
29
|
return "edge-light";
|
|
31
|
-
|
|
32
|
-
if (global?.fastly !== void 0) {
|
|
30
|
+
if (global?.fastly !== void 0)
|
|
33
31
|
return "fastly";
|
|
34
|
-
|
|
35
|
-
if (global?.__lagon__ !== void 0) {
|
|
32
|
+
if (global?.__lagon__ !== void 0)
|
|
36
33
|
return "lagon";
|
|
37
|
-
|
|
38
|
-
if (global?.process?.release?.name === "node") {
|
|
34
|
+
if (global?.process?.release?.name === "node")
|
|
39
35
|
return "node";
|
|
40
|
-
}
|
|
41
36
|
return "other";
|
|
42
37
|
};
|
|
43
38
|
export {
|
package/dist/hono-base.js
CHANGED
|
@@ -38,17 +38,17 @@ var Hono = class extends defineDynamicClass() {
|
|
|
38
38
|
this.fetch = (request, Env, executionCtx) => {
|
|
39
39
|
return this.dispatch(request, executionCtx, Env, request.method);
|
|
40
40
|
};
|
|
41
|
-
this.request = (input, requestInit) => {
|
|
41
|
+
this.request = (input, requestInit, Env, executionCtx) => {
|
|
42
42
|
if (input instanceof Request) {
|
|
43
43
|
if (requestInit !== void 0) {
|
|
44
44
|
input = new Request(input, requestInit);
|
|
45
45
|
}
|
|
46
|
-
return this.fetch(input);
|
|
46
|
+
return this.fetch(input, Env, executionCtx);
|
|
47
47
|
}
|
|
48
48
|
input = input.toString();
|
|
49
49
|
const path = /^https?:\/\//.test(input) ? input : `http://localhost${mergePath("/", input)}`;
|
|
50
50
|
const req = new Request(path, requestInit);
|
|
51
|
-
return this.fetch(req);
|
|
51
|
+
return this.fetch(req, Env, executionCtx);
|
|
52
52
|
};
|
|
53
53
|
this.fire = () => {
|
|
54
54
|
addEventListener("fetch", (event) => {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { ServeStaticOptions } from './serve-static';
|
|
2
|
-
declare const module: (options?: ServeStaticOptions) => import("../..").MiddlewareHandler<any,
|
|
2
|
+
declare const module: (options?: ServeStaticOptions) => import("../..").MiddlewareHandler<any, string, {}>;
|
|
3
3
|
export { module as serveStatic };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Hono } from '../hono';
|
|
2
2
|
import type { Schema } from '../types';
|
|
3
3
|
import type { RemoveBlankRecord } from '../utils/types';
|
|
4
|
+
declare type HonoRequest = typeof Hono.prototype['request'];
|
|
4
5
|
export declare type ClientRequestOptions = {
|
|
5
6
|
headers?: Record<string, string>;
|
|
6
|
-
fetch?: typeof fetch;
|
|
7
|
+
fetch?: typeof fetch | HonoRequest;
|
|
7
8
|
};
|
|
8
9
|
declare type ClientRequest<S extends Schema> = {
|
|
9
10
|
[M in keyof S]: S[M] extends {
|
|
@@ -4,4 +4,4 @@ import type { Env, Input, MiddlewareHandler } from '../../types';
|
|
|
4
4
|
* `middleware()` is an experimental feature.
|
|
5
5
|
* The API might be changed.
|
|
6
6
|
*/
|
|
7
|
-
export declare const middleware: <E extends Env =
|
|
7
|
+
export declare const middleware: <E extends Env = any, P extends string = any, I extends Input = {}>(middleware: MiddlewareHandler<E, P, I>) => MiddlewareHandler<E, P, I>;
|
|
@@ -64,13 +64,13 @@ declare class Hono<E extends Env = Env, S extends Schema = {}, BasePath extends
|
|
|
64
64
|
private handleError;
|
|
65
65
|
private dispatch;
|
|
66
66
|
/**
|
|
67
|
-
* @
|
|
67
|
+
* @deprecated
|
|
68
68
|
* `app.handleEvent()` will be removed in v4.
|
|
69
69
|
* Use `app.fetch()` instead of `app.handleEvent()`.
|
|
70
70
|
*/
|
|
71
71
|
handleEvent: (event: FetchEventLike) => Response | Promise<Response>;
|
|
72
72
|
fetch: (request: Request, Env?: E['Bindings'] | {}, executionCtx?: ExecutionContext) => Response | Promise<Response>;
|
|
73
|
-
request: (input:
|
|
73
|
+
request: (input: RequestInfo | URL, requestInit?: RequestInit, Env?: E['Bindings'] | {}, executionCtx?: ExecutionContext) => Response | Promise<Response>;
|
|
74
74
|
fire: () => void;
|
|
75
75
|
}
|
|
76
76
|
export { Hono as HonoBase };
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Context } from './context';
|
|
2
2
|
import type { Hono } from './hono';
|
|
3
3
|
import type { StatusCode } from './utils/http-status';
|
|
4
|
-
import type { UnionToIntersection } from './utils/types';
|
|
4
|
+
import type { IntersectNonAnyTypes, UnionToIntersection } from './utils/types';
|
|
5
5
|
export declare type Bindings = Record<string, unknown>;
|
|
6
6
|
export declare type Variables = Record<string, unknown>;
|
|
7
7
|
export declare type Env = {
|
|
@@ -17,83 +17,72 @@ export declare type Input = {
|
|
|
17
17
|
};
|
|
18
18
|
declare type HandlerResponse<O> = Response | TypedResponse<O> | Promise<Response | TypedResponse<O>>;
|
|
19
19
|
export declare type Handler<E extends Env = any, P extends string = any, I extends Input = Input, R extends HandlerResponse<any> = any> = (c: Context<E, P, I>, next: Next) => R;
|
|
20
|
-
export declare type MiddlewareHandler<E extends Env = any, P extends string =
|
|
21
|
-
export declare type H<E extends Env = any, P extends string = any, I extends Input = {},
|
|
20
|
+
export declare type MiddlewareHandler<E extends Env = any, P extends string = string, I extends Input = {}> = (c: Context<E, P, I>, next: Next) => Promise<Response | void>;
|
|
21
|
+
export declare type H<E extends Env = any, P extends string = any, I extends Input = {}, R extends HandlerResponse<any> = any> = Handler<E, P, I, R> | MiddlewareHandler<E, P, I>;
|
|
22
22
|
export declare type NotFoundHandler<E extends Env = any> = (c: Context<E>) => Response | Promise<Response>;
|
|
23
23
|
export declare type ErrorHandler<E extends Env = any> = (err: Error, c: Context<E>) => Response | Promise<Response>;
|
|
24
|
-
export interface HandlerInterface<E extends Env = Env, M extends string =
|
|
25
|
-
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, I extends Input = {}, R extends HandlerResponse<any> = any,
|
|
26
|
-
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, I extends Input = {}, R extends HandlerResponse<any> = any, E2 extends Env = E, E3 extends Env = E,
|
|
27
|
-
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E,
|
|
28
|
-
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E,
|
|
29
|
-
|
|
30
|
-
H<
|
|
31
|
-
H<
|
|
32
|
-
H<
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
H<E2, P, I, E2, R>,
|
|
36
|
-
H<E3, P, I2, E3, R>,
|
|
37
|
-
H<E4, P, I3, E4, R>,
|
|
38
|
-
H<E5, P, I3, E5, R>,
|
|
39
|
-
H<E6, P, I3, Temp, R>
|
|
24
|
+
export interface HandlerInterface<E extends Env = Env, M extends string = string, S extends Schema = {}, BasePath extends string = '/'> {
|
|
25
|
+
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, I extends Input = {}, R extends HandlerResponse<any> = any, E2 extends Env = E>(handler: H<E2, P, I, R>): Hono<E, S & ToSchema<M, P, I['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
26
|
+
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, I extends Input = {}, R extends HandlerResponse<any> = any, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>>(...handlers: [H<E2, P, I, R>, H<E3, P, I, R>]): Hono<E, S & ToSchema<M, P, I['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
27
|
+
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = E, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(...handlers: [H<E2, P, I, R>, H<E3, P, I2, R>, H<E4, P, I3, R>]): Hono<E, S & ToSchema<M, P, I3['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
28
|
+
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(...handlers: [H<E2, P, I, R>, H<E3, P, I2, R>, H<E4, P, I3, R>, H<E5, P, I3, R>]): Hono<E, S & ToSchema<M, P, I4['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
29
|
+
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(...handlers: [
|
|
30
|
+
H<E2, P, I, R>,
|
|
31
|
+
H<E3, P, I2, R>,
|
|
32
|
+
H<E4, P, I3, R>,
|
|
33
|
+
H<E5, P, I3, R>,
|
|
34
|
+
H<E6, P, I3, R>
|
|
40
35
|
]): Hono<E, S & ToSchema<M, P, I5['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
41
|
-
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, I extends Input = {}, R extends HandlerResponse<any> = any>(...handlers: H<E, P, I,
|
|
36
|
+
<P extends string = ExtractKey<S> extends never ? BasePath : ExtractKey<S>, I extends Input = {}, R extends HandlerResponse<any> = any>(...handlers: H<E, P, I, R>[]): Hono<E, S & ToSchema<M, P, I['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
42
37
|
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}>(path: P): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
43
|
-
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {},
|
|
44
|
-
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, E2 extends Env = E, E3 extends Env = E,
|
|
45
|
-
|
|
46
|
-
H<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
H<E2, MergePath<BasePath, P>, I, E2, R>,
|
|
50
|
-
H<E3, MergePath<BasePath, P>, I2, E3, R>,
|
|
51
|
-
H<E4, MergePath<BasePath, P>, I3, Temp, R>
|
|
38
|
+
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, E2 extends Env = E>(path: P, handler: H<E2, MergePath<BasePath, P>, I, R>): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
39
|
+
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>>(path: P, ...handlers: [H<E2, MergePath<BasePath, P>, I, R>, H<E3, MergePath<BasePath, P>, I, R>]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
40
|
+
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = E, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(path: P, ...handlers: [
|
|
41
|
+
H<E2, MergePath<BasePath, P>, I, R>,
|
|
42
|
+
H<E3, MergePath<BasePath, P>, I2, R>,
|
|
43
|
+
H<E4, MergePath<BasePath, P>, I3, R>
|
|
52
44
|
]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I3['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
53
|
-
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E,
|
|
54
|
-
H<E2, MergePath<BasePath, P>, I,
|
|
55
|
-
H<E3, MergePath<BasePath, P>, I2,
|
|
56
|
-
H<E4, MergePath<BasePath, P>, I3,
|
|
57
|
-
H<E5, MergePath<BasePath, P>, I4,
|
|
45
|
+
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(path: P, ...handlers: [
|
|
46
|
+
H<E2, MergePath<BasePath, P>, I, R>,
|
|
47
|
+
H<E3, MergePath<BasePath, P>, I2, R>,
|
|
48
|
+
H<E4, MergePath<BasePath, P>, I3, R>,
|
|
49
|
+
H<E5, MergePath<BasePath, P>, I4, R>
|
|
58
50
|
]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I4['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
59
|
-
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E,
|
|
60
|
-
H<E2, MergePath<BasePath, P>, I,
|
|
61
|
-
H<E3, MergePath<BasePath, P>, I2,
|
|
62
|
-
H<E4, MergePath<BasePath, P>, I3,
|
|
63
|
-
H<E5, MergePath<BasePath, P>, I4,
|
|
64
|
-
H<E6, MergePath<BasePath, P>, I5,
|
|
51
|
+
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(path: P, ...handlers: [
|
|
52
|
+
H<E2, MergePath<BasePath, P>, I, R>,
|
|
53
|
+
H<E3, MergePath<BasePath, P>, I2, R>,
|
|
54
|
+
H<E4, MergePath<BasePath, P>, I3, R>,
|
|
55
|
+
H<E5, MergePath<BasePath, P>, I4, R>,
|
|
56
|
+
H<E6, MergePath<BasePath, P>, I5, R>
|
|
65
57
|
]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I5['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
66
|
-
<P extends string, I extends Input = {}, R extends HandlerResponse<any> = any>(path: P, ...handlers: H<E, MergePath<BasePath, P>, I,
|
|
58
|
+
<P extends string, I extends Input = {}, R extends HandlerResponse<any> = any>(path: P, ...handlers: H<E, MergePath<BasePath, P>, I, R>[]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
67
59
|
}
|
|
68
60
|
export interface MiddlewareHandlerInterface<E extends Env = Env, S extends Schema = {}, BasePath extends string = '/'> {
|
|
69
|
-
(...handlers: MiddlewareHandler<
|
|
70
|
-
<P extends string>(path: P, ...handlers: MiddlewareHandler<
|
|
61
|
+
<E2 extends Env = E>(...handlers: MiddlewareHandler<E2, MergePath<BasePath, ExtractKey<S>>>[]): Hono<E, S, BasePath>;
|
|
62
|
+
<P extends string, E2 extends Env = E>(path: P, ...handlers: MiddlewareHandler<E2, MergePath<BasePath, P>>[]): Hono<E, S, BasePath>;
|
|
71
63
|
}
|
|
72
64
|
export interface OnHandlerInterface<E extends Env = Env, S extends Schema = {}, BasePath extends string = '/'> {
|
|
73
|
-
<M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, E2 extends Env = E, E3 extends Env = E
|
|
74
|
-
|
|
75
|
-
H<
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
H<E2, MergePath<BasePath, P>, I, E2, R>,
|
|
79
|
-
H<E3, MergePath<BasePath, P>, I2, E3, R>,
|
|
80
|
-
H<E4, MergePath<BasePath, P>, I3, E & E2 & E3, R>
|
|
65
|
+
<M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, E2 extends Env = E, E3 extends Env = IntersectNonAnyTypes<[E, E2]>>(method: M, path: P, ...handlers: [H<E2, MergePath<BasePath, P>, I, R>, H<E3, MergePath<BasePath, P>, I, R>]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
66
|
+
<M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, E2 extends Env = E, E3 extends Env = E, E4 extends Env = IntersectNonAnyTypes<[E, E2, E3]>>(method: M, path: P, ...handlers: [
|
|
67
|
+
H<E2, MergePath<BasePath, P>, I, R>,
|
|
68
|
+
H<E3, MergePath<BasePath, P>, I2, R>,
|
|
69
|
+
H<E4, MergePath<BasePath, P>, I3, R>
|
|
81
70
|
]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I3['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
82
|
-
<M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E
|
|
83
|
-
H<E2, MergePath<BasePath, P>, I,
|
|
84
|
-
H<E3, MergePath<BasePath, P>, I2,
|
|
85
|
-
H<E4, MergePath<BasePath, P>, I3,
|
|
86
|
-
H<E5, MergePath<BasePath, P>, I4,
|
|
71
|
+
<M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4]>>(method: M, path: P, ...handlers: [
|
|
72
|
+
H<E2, MergePath<BasePath, P>, I, R>,
|
|
73
|
+
H<E3, MergePath<BasePath, P>, I2, R>,
|
|
74
|
+
H<E4, MergePath<BasePath, P>, I3, R>,
|
|
75
|
+
H<E5, MergePath<BasePath, P>, I4, R>
|
|
87
76
|
]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I4['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
88
|
-
<M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = E
|
|
89
|
-
H<E2, MergePath<BasePath, P>, I,
|
|
90
|
-
H<E3, MergePath<BasePath, P>, I2,
|
|
91
|
-
H<E4, MergePath<BasePath, P>, I3,
|
|
92
|
-
H<E5, MergePath<BasePath, P>, I4,
|
|
93
|
-
H<E6, MergePath<BasePath, P>, I5,
|
|
77
|
+
<M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = {}, I2 extends Input = I, I3 extends Input = I & I2, I4 extends Input = I & I2 & I3, I5 extends Input = I & I2 & I3 & I4, E2 extends Env = E, E3 extends Env = E, E4 extends Env = E, E5 extends Env = E, E6 extends Env = IntersectNonAnyTypes<[E, E2, E3, E4, E5]>>(method: M, path: P, ...handlers: [
|
|
78
|
+
H<E2, MergePath<BasePath, P>, I, R>,
|
|
79
|
+
H<E3, MergePath<BasePath, P>, I2, R>,
|
|
80
|
+
H<E4, MergePath<BasePath, P>, I3, R>,
|
|
81
|
+
H<E5, MergePath<BasePath, P>, I4, R>,
|
|
82
|
+
H<E6, MergePath<BasePath, P>, I5, R>
|
|
94
83
|
]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I5['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
95
|
-
<M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = {}>(method: M, path: P, ...handlers: H<E, MergePath<BasePath, P>, I,
|
|
96
|
-
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}>(methods: string[], path: P, ...handlers: H<E, MergePath<BasePath, P>, I,
|
|
84
|
+
<M extends string, P extends string, R extends HandlerResponse<any> = any, I extends Input = {}>(method: M, path: P, ...handlers: H<E, MergePath<BasePath, P>, I, R>[]): Hono<E, S & ToSchema<M, MergePath<BasePath, P>, I['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
85
|
+
<P extends string, R extends HandlerResponse<any> = any, I extends Input = {}>(methods: string[], path: P, ...handlers: H<E, MergePath<BasePath, P>, I, R>[]): Hono<E, S & ToSchema<string, MergePath<BasePath, P>, I['in'], MergeTypedResponseData<R>>, BasePath>;
|
|
97
86
|
}
|
|
98
87
|
declare type ExtractKey<S> = S extends Record<infer Key, unknown> ? Key extends string ? Key : never : string;
|
|
99
88
|
export declare type ToSchema<M extends string, P extends string, I extends Input['in'], O> = {
|
|
@@ -3,6 +3,8 @@ export declare type Equal<X, Y> = (<T>() => T extends X ? 1 : 2) extends <T>() =
|
|
|
3
3
|
export declare type NotEqual<X, Y> = true extends Equal<X, Y> ? false : true;
|
|
4
4
|
export declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
5
5
|
export declare type RemoveBlankRecord<T> = T extends Record<infer K, unknown> ? K extends string ? T : never : never;
|
|
6
|
+
export declare type IfAnyThenEmptyObject<T> = 0 extends 1 & T ? {} : T;
|
|
7
|
+
export declare type IntersectNonAnyTypes<T extends any[]> = T extends [infer Head, ...infer Rest] ? IfAnyThenEmptyObject<Head> & IntersectNonAnyTypes<Rest> : {};
|
|
6
8
|
export declare type JSONPrimitive = string | boolean | number | null | undefined;
|
|
7
9
|
export declare type JSONArray = (JSONPrimitive | JSONObject | JSONArray)[];
|
|
8
10
|
export declare type JSONObject = {
|