clear-router 2.5.4 → 2.5.6

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.
Files changed (56) hide show
  1. package/README.md +5 -0
  2. package/dist/bindings-CV1e5jho.d.mts +20 -0
  3. package/dist/bindings-DIanvIVd.mjs +211 -0
  4. package/dist/bindings-DvV2DXWi.cjs +253 -0
  5. package/dist/bindings-NV0CdqGl.d.cts +20 -0
  6. package/dist/core/index.cjs +12 -2
  7. package/dist/core/index.d.cts +2 -2
  8. package/dist/core/index.d.mts +2 -2
  9. package/dist/core/index.mjs +9 -2
  10. package/dist/decorators/index.cjs +5 -0
  11. package/dist/decorators/index.d.cts +2 -0
  12. package/dist/decorators/index.d.mts +2 -0
  13. package/dist/decorators/index.mjs +3 -0
  14. package/dist/decorators/setup.cjs +15 -0
  15. package/dist/decorators/setup.d.cts +2 -0
  16. package/dist/decorators/setup.d.mts +2 -0
  17. package/dist/decorators/setup.mjs +13 -0
  18. package/dist/express/index.cjs +26 -9
  19. package/dist/express/index.d.cts +1 -1
  20. package/dist/express/index.d.mts +1 -1
  21. package/dist/express/index.mjs +26 -9
  22. package/dist/fastify/index.cjs +24 -8
  23. package/dist/fastify/index.d.cts +4 -2
  24. package/dist/fastify/index.d.mts +4 -2
  25. package/dist/fastify/index.mjs +24 -8
  26. package/dist/h3/index.cjs +26 -9
  27. package/dist/h3/index.d.cts +1 -1
  28. package/dist/h3/index.d.mts +1 -1
  29. package/dist/h3/index.mjs +26 -9
  30. package/dist/hono/index.cjs +28 -11
  31. package/dist/hono/index.d.cts +4 -2
  32. package/dist/hono/index.d.mts +4 -2
  33. package/dist/hono/index.mjs +28 -11
  34. package/dist/index.cjs +308 -28
  35. package/dist/index.d.cts +112 -18
  36. package/dist/index.d.mts +112 -18
  37. package/dist/index.mjs +305 -28
  38. package/dist/koa/index.cjs +24 -8
  39. package/dist/koa/index.d.cts +4 -2
  40. package/dist/koa/index.d.mts +4 -2
  41. package/dist/koa/index.mjs +24 -8
  42. package/dist/{responses-B-UirWFf.cjs → responses-JzXstGU5.cjs} +18 -1
  43. package/dist/{responses-CJaD0ugv.mjs → responses-_II3dOJ5.mjs} +19 -1
  44. package/dist/{router-BReOXz-F.mjs → router-B3QjblRX.mjs} +159 -48
  45. package/dist/{router-CS_2XQ7I.d.cts → router-BYZmNzrZ.d.cts} +97 -12
  46. package/dist/{router-CHg0pZUO.cjs → router-CU4V1kX0.cjs} +159 -48
  47. package/dist/{router-_w2VzMQF.d.mts → router-DCMtQ_Xi.d.mts} +96 -11
  48. package/dist/types/basic.d.mts +7 -0
  49. package/dist/types/core/Request.d.mts +25 -0
  50. package/dist/types/core/Response.d.mts +21 -0
  51. package/dist/types/express.d.mts +5 -2
  52. package/dist/types/fastify.d.mts +5 -2
  53. package/dist/types/h3.d.mts +5 -2
  54. package/dist/types/hono.d.mts +5 -2
  55. package/dist/types/koa.d.mts +5 -2
  56. package/package.json +16 -2
@@ -1,6 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_router = require('../router-CHg0pZUO.cjs');
3
- const require_responses = require('../responses-B-UirWFf.cjs');
2
+ require('../bindings-DvV2DXWi.cjs');
3
+ const require_router = require('../router-CU4V1kX0.cjs');
4
+ const require_responses = require('../responses-JzXstGU5.cjs');
4
5
 
5
6
  //#region src/express/router.ts
6
7
  /**
@@ -15,7 +16,8 @@ var Router = class Router extends require_router.CoreRouter {
15
16
  static ensureRequestBodyAccessor(req) {
16
17
  if (typeof req.getBody !== "function") req.getBody = () => req.body ?? {};
17
18
  }
18
- static async sendReturnValue(req, res, value, method, path) {
19
+ static async sendReturnValue(ctx, value, method, path) {
20
+ const { req, res } = ctx;
19
21
  if (require_responses.responseWasSent(res) || value === res || require_responses.responseWasSent(value)) return;
20
22
  const meta = require_responses.resolveResponseMeta(value, {
21
23
  headers: req.headers,
@@ -24,6 +26,9 @@ var Router = class Router extends require_router.CoreRouter {
24
26
  });
25
27
  if (!meta) return;
26
28
  res.status(meta.status);
29
+ meta.headers?.forEach((headerValue, key) => {
30
+ res.setHeader(key, headerValue);
31
+ });
27
32
  if (require_responses.isFetchResponse(meta.body)) {
28
33
  meta.body.headers.forEach((headerValue, key) => {
29
34
  res.setHeader(key, headerValue);
@@ -157,10 +162,18 @@ var Router = class Router extends require_router.CoreRouter {
157
162
  for (const route of this.routes) {
158
163
  let handlerFunction = null;
159
164
  let instance = null;
165
+ let bindingTarget;
166
+ let bindingMethod;
167
+ let bindingHandler;
168
+ let bindingMetadata;
160
169
  try {
161
170
  const resolved = this.resolveHandler(route);
162
171
  handlerFunction = resolved.handlerFunction;
163
172
  instance = resolved.instance;
173
+ bindingTarget = resolved.bindingTarget;
174
+ bindingMethod = resolved.bindingMethod;
175
+ bindingHandler = resolved.bindingHandler;
176
+ bindingMetadata = resolved.bindingMetadata;
164
177
  } catch (error) {
165
178
  console.error(`[ROUTES] Error setting up route ${route.path}:`, error.message);
166
179
  throw error;
@@ -199,11 +212,13 @@ var Router = class Router extends require_router.CoreRouter {
199
212
  Router.bindRequestToInstance(ctx, inst, route, {
200
213
  body: ctx.req.getBody(),
201
214
  query: ctx.req.query,
202
- params: ctx.req.params
215
+ params: ctx.req.params,
216
+ method
203
217
  });
204
- const result = handlerFunction(ctx, inst.clearRequest);
218
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
205
219
  const resolved = await Promise.resolve(result);
206
- await Router.sendReturnValue(req, res, resolved, method, route.path);
220
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
221
+ await Router.sendReturnValue(ctx, outgoing, method, route.path);
207
222
  } catch (error) {
208
223
  next(error);
209
224
  }
@@ -229,11 +244,13 @@ var Router = class Router extends require_router.CoreRouter {
229
244
  Router.bindRequestToInstance(ctx, inst, route, {
230
245
  body: ctx.req.getBody(),
231
246
  query: ctx.req.query,
232
- params: ctx.req.params
247
+ params: ctx.req.params,
248
+ method
233
249
  });
234
- const result = handlerFunction(ctx, inst.clearRequest);
250
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
235
251
  const resolved = await Promise.resolve(result);
236
- await Router.sendReturnValue(req, res, resolved, method, route.path);
252
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
253
+ await Router.sendReturnValue(ctx, outgoing, method, route.path);
237
254
  } catch (error) {
238
255
  next(error);
239
256
  }
@@ -1,4 +1,4 @@
1
- import { c as Handler, d as ApiResourceMiddleware, f as ControllerAction, l as HttpContext, m as HttpMethod, r as Route, t as CoreRouter, u as Middleware } from "../router-CS_2XQ7I.cjs";
1
+ import { _ as ApiResourceMiddleware, b as HttpMethod, g as Middleware, h as HttpContext, l as Route, m as Handler, t as CoreRouter, v as ControllerAction } from "../router-BYZmNzrZ.cjs";
2
2
  import { Router as Router$1 } from "express";
3
3
 
4
4
  //#region src/express/router.d.ts
@@ -1,4 +1,4 @@
1
- import { c as Handler, d as ApiResourceMiddleware, f as ControllerAction, l as HttpContext, m as HttpMethod, r as Route, t as CoreRouter, u as Middleware } from "../router-_w2VzMQF.mjs";
1
+ import { _ as ApiResourceMiddleware, b as HttpMethod, g as Middleware, h as HttpContext, l as Route, m as Handler, t as CoreRouter, v as ControllerAction } from "../router-DCMtQ_Xi.mjs";
2
2
  import { Router as Router$1 } from "express";
3
3
 
4
4
  //#region src/express/router.d.ts
@@ -1,5 +1,6 @@
1
- import { t as CoreRouter } from "../router-BReOXz-F.mjs";
2
- import { n as resolveResponseMeta, r as responseWasSent, t as isFetchResponse } from "../responses-CJaD0ugv.mjs";
1
+ import "../bindings-DIanvIVd.mjs";
2
+ import { t as CoreRouter } from "../router-B3QjblRX.mjs";
3
+ import { n as resolveResponseMeta, r as responseWasSent, t as isFetchResponse } from "../responses-_II3dOJ5.mjs";
3
4
 
4
5
  //#region src/express/router.ts
5
6
  /**
@@ -14,7 +15,8 @@ var Router = class Router extends CoreRouter {
14
15
  static ensureRequestBodyAccessor(req) {
15
16
  if (typeof req.getBody !== "function") req.getBody = () => req.body ?? {};
16
17
  }
17
- static async sendReturnValue(req, res, value, method, path) {
18
+ static async sendReturnValue(ctx, value, method, path) {
19
+ const { req, res } = ctx;
18
20
  if (responseWasSent(res) || value === res || responseWasSent(value)) return;
19
21
  const meta = resolveResponseMeta(value, {
20
22
  headers: req.headers,
@@ -23,6 +25,9 @@ var Router = class Router extends CoreRouter {
23
25
  });
24
26
  if (!meta) return;
25
27
  res.status(meta.status);
28
+ meta.headers?.forEach((headerValue, key) => {
29
+ res.setHeader(key, headerValue);
30
+ });
26
31
  if (isFetchResponse(meta.body)) {
27
32
  meta.body.headers.forEach((headerValue, key) => {
28
33
  res.setHeader(key, headerValue);
@@ -156,10 +161,18 @@ var Router = class Router extends CoreRouter {
156
161
  for (const route of this.routes) {
157
162
  let handlerFunction = null;
158
163
  let instance = null;
164
+ let bindingTarget;
165
+ let bindingMethod;
166
+ let bindingHandler;
167
+ let bindingMetadata;
159
168
  try {
160
169
  const resolved = this.resolveHandler(route);
161
170
  handlerFunction = resolved.handlerFunction;
162
171
  instance = resolved.instance;
172
+ bindingTarget = resolved.bindingTarget;
173
+ bindingMethod = resolved.bindingMethod;
174
+ bindingHandler = resolved.bindingHandler;
175
+ bindingMetadata = resolved.bindingMetadata;
163
176
  } catch (error) {
164
177
  console.error(`[ROUTES] Error setting up route ${route.path}:`, error.message);
165
178
  throw error;
@@ -198,11 +211,13 @@ var Router = class Router extends CoreRouter {
198
211
  Router.bindRequestToInstance(ctx, inst, route, {
199
212
  body: ctx.req.getBody(),
200
213
  query: ctx.req.query,
201
- params: ctx.req.params
214
+ params: ctx.req.params,
215
+ method
202
216
  });
203
- const result = handlerFunction(ctx, inst.clearRequest);
217
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
204
218
  const resolved = await Promise.resolve(result);
205
- await Router.sendReturnValue(req, res, resolved, method, route.path);
219
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
220
+ await Router.sendReturnValue(ctx, outgoing, method, route.path);
206
221
  } catch (error) {
207
222
  next(error);
208
223
  }
@@ -228,11 +243,13 @@ var Router = class Router extends CoreRouter {
228
243
  Router.bindRequestToInstance(ctx, inst, route, {
229
244
  body: ctx.req.getBody(),
230
245
  query: ctx.req.query,
231
- params: ctx.req.params
246
+ params: ctx.req.params,
247
+ method
232
248
  });
233
- const result = handlerFunction(ctx, inst.clearRequest);
249
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
234
250
  const resolved = await Promise.resolve(result);
235
- await Router.sendReturnValue(req, res, resolved, method, route.path);
251
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
252
+ await Router.sendReturnValue(ctx, outgoing, method, route.path);
236
253
  } catch (error) {
237
254
  next(error);
238
255
  }
@@ -1,6 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_router = require('../router-CHg0pZUO.cjs');
3
- const require_responses = require('../responses-B-UirWFf.cjs');
2
+ require('../bindings-DvV2DXWi.cjs');
3
+ const require_router = require('../router-CU4V1kX0.cjs');
4
+ const require_responses = require('../responses-JzXstGU5.cjs');
4
5
 
5
6
  //#region src/fastify/router.ts
6
7
  /**
@@ -23,6 +24,9 @@ var Router = class Router extends require_router.CoreRouter {
23
24
  });
24
25
  if (!meta) return void 0;
25
26
  reply.code(meta.status);
27
+ meta.headers?.forEach((headerValue, key) => {
28
+ reply.header(key, headerValue);
29
+ });
26
30
  if (require_responses.isFetchResponse(meta.body)) {
27
31
  meta.body.headers.forEach((headerValue, key) => {
28
32
  reply.header(key, headerValue);
@@ -157,10 +161,18 @@ var Router = class Router extends require_router.CoreRouter {
157
161
  for (const route of this.routes) {
158
162
  let handlerFunction = null;
159
163
  let instance = null;
164
+ let bindingTarget;
165
+ let bindingMethod;
166
+ let bindingHandler;
167
+ let bindingMetadata;
160
168
  try {
161
169
  const resolved = this.resolveHandler(route);
162
170
  handlerFunction = resolved.handlerFunction;
163
171
  instance = resolved.instance;
172
+ bindingTarget = resolved.bindingTarget;
173
+ bindingMethod = resolved.bindingMethod;
174
+ bindingHandler = resolved.bindingHandler;
175
+ bindingMetadata = resolved.bindingMetadata;
164
176
  } catch (error) {
165
177
  console.error(`[ROUTES] Error setting up route ${route.path}:`, error.message);
166
178
  throw error;
@@ -194,11 +206,13 @@ var Router = class Router extends require_router.CoreRouter {
194
206
  Router.bindRequestToInstance(ctx, inst, route, {
195
207
  body: ctx.req.getBody(),
196
208
  query: ctx.req.query ?? {},
197
- params: ctx.req.params ?? {}
209
+ params: ctx.req.params ?? {},
210
+ method
198
211
  });
199
- const result = handlerFunction(ctx, inst.clearRequest);
212
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
200
213
  const resolved = await Promise.resolve(result);
201
- return Router.sendReturnValue(req, reply, resolved, method, route.path);
214
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
215
+ return Router.sendReturnValue(req, reply, outgoing, method, route.path);
202
216
  }
203
217
  });
204
218
  if ([
@@ -220,11 +234,13 @@ var Router = class Router extends require_router.CoreRouter {
220
234
  Router.bindRequestToInstance(ctx, inst, route, {
221
235
  body: ctx.req.getBody(),
222
236
  query: ctx.req.query ?? {},
223
- params: ctx.req.params ?? {}
237
+ params: ctx.req.params ?? {},
238
+ method
224
239
  });
225
- const result = handlerFunction(ctx, inst.clearRequest);
240
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
226
241
  const resolved = await Promise.resolve(result);
227
- return Router.sendReturnValue(req, reply, resolved, method, route.path);
242
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
243
+ return Router.sendReturnValue(req, reply, outgoing, method, route.path);
228
244
  }
229
245
  });
230
246
  }
@@ -1,4 +1,4 @@
1
- import { d as ApiResourceMiddleware, f as ControllerAction, m as HttpMethod, n as ClearRequest, p as ControllerHandler, r as Route, t as CoreRouter } from "../router-CS_2XQ7I.cjs";
1
+ import { _ as ApiResourceMiddleware, b as HttpMethod, c as Request, l as Route, t as CoreRouter, v as ControllerAction, x as Response, y as ControllerHandler } from "../router-BYZmNzrZ.cjs";
2
2
  import { FastifyInstance, FastifyReply, FastifyRequest } from "fastify";
3
3
 
4
4
  //#region types/fastify.d.ts
@@ -8,8 +8,10 @@ interface RequestWithGetBody extends FastifyRequest {
8
8
  interface HttpContext {
9
9
  req: RequestWithGetBody;
10
10
  reply: FastifyReply;
11
+ clearRequest: Request;
12
+ clearResponse: Response;
11
13
  }
12
- type RouteHandler = (ctx: HttpContext, req: ClearRequest) => any | Promise<any>;
14
+ type RouteHandler = (ctx: HttpContext, req: Request) => any | Promise<any>;
13
15
  type Handler = RouteHandler | ControllerHandler;
14
16
  type NextFunction = (err?: Error) => void;
15
17
  type Middleware = (req: RequestWithGetBody, reply: FastifyReply, next: NextFunction) => any | Promise<any>;
@@ -1,4 +1,4 @@
1
- import { d as ApiResourceMiddleware, f as ControllerAction, m as HttpMethod, n as ClearRequest, p as ControllerHandler, r as Route, t as CoreRouter } from "../router-_w2VzMQF.mjs";
1
+ import { _ as ApiResourceMiddleware, b as HttpMethod, c as Request, l as Route, t as CoreRouter, v as ControllerAction, x as Response, y as ControllerHandler } from "../router-DCMtQ_Xi.mjs";
2
2
  import { FastifyInstance, FastifyReply, FastifyRequest } from "fastify";
3
3
 
4
4
  //#region types/fastify.d.ts
@@ -8,8 +8,10 @@ interface RequestWithGetBody extends FastifyRequest {
8
8
  interface HttpContext {
9
9
  req: RequestWithGetBody;
10
10
  reply: FastifyReply;
11
+ clearRequest: Request;
12
+ clearResponse: Response;
11
13
  }
12
- type RouteHandler = (ctx: HttpContext, req: ClearRequest) => any | Promise<any>;
14
+ type RouteHandler = (ctx: HttpContext, req: Request) => any | Promise<any>;
13
15
  type Handler = RouteHandler | ControllerHandler;
14
16
  type NextFunction = (err?: Error) => void;
15
17
  type Middleware = (req: RequestWithGetBody, reply: FastifyReply, next: NextFunction) => any | Promise<any>;
@@ -1,5 +1,6 @@
1
- import { t as CoreRouter } from "../router-BReOXz-F.mjs";
2
- import { n as resolveResponseMeta, r as responseWasSent, t as isFetchResponse } from "../responses-CJaD0ugv.mjs";
1
+ import "../bindings-DIanvIVd.mjs";
2
+ import { t as CoreRouter } from "../router-B3QjblRX.mjs";
3
+ import { n as resolveResponseMeta, r as responseWasSent, t as isFetchResponse } from "../responses-_II3dOJ5.mjs";
3
4
 
4
5
  //#region src/fastify/router.ts
5
6
  /**
@@ -22,6 +23,9 @@ var Router = class Router extends CoreRouter {
22
23
  });
23
24
  if (!meta) return void 0;
24
25
  reply.code(meta.status);
26
+ meta.headers?.forEach((headerValue, key) => {
27
+ reply.header(key, headerValue);
28
+ });
25
29
  if (isFetchResponse(meta.body)) {
26
30
  meta.body.headers.forEach((headerValue, key) => {
27
31
  reply.header(key, headerValue);
@@ -156,10 +160,18 @@ var Router = class Router extends CoreRouter {
156
160
  for (const route of this.routes) {
157
161
  let handlerFunction = null;
158
162
  let instance = null;
163
+ let bindingTarget;
164
+ let bindingMethod;
165
+ let bindingHandler;
166
+ let bindingMetadata;
159
167
  try {
160
168
  const resolved = this.resolveHandler(route);
161
169
  handlerFunction = resolved.handlerFunction;
162
170
  instance = resolved.instance;
171
+ bindingTarget = resolved.bindingTarget;
172
+ bindingMethod = resolved.bindingMethod;
173
+ bindingHandler = resolved.bindingHandler;
174
+ bindingMetadata = resolved.bindingMetadata;
163
175
  } catch (error) {
164
176
  console.error(`[ROUTES] Error setting up route ${route.path}:`, error.message);
165
177
  throw error;
@@ -193,11 +205,13 @@ var Router = class Router extends CoreRouter {
193
205
  Router.bindRequestToInstance(ctx, inst, route, {
194
206
  body: ctx.req.getBody(),
195
207
  query: ctx.req.query ?? {},
196
- params: ctx.req.params ?? {}
208
+ params: ctx.req.params ?? {},
209
+ method
197
210
  });
198
- const result = handlerFunction(ctx, inst.clearRequest);
211
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
199
212
  const resolved = await Promise.resolve(result);
200
- return Router.sendReturnValue(req, reply, resolved, method, route.path);
213
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
214
+ return Router.sendReturnValue(req, reply, outgoing, method, route.path);
201
215
  }
202
216
  });
203
217
  if ([
@@ -219,11 +233,13 @@ var Router = class Router extends CoreRouter {
219
233
  Router.bindRequestToInstance(ctx, inst, route, {
220
234
  body: ctx.req.getBody(),
221
235
  query: ctx.req.query ?? {},
222
- params: ctx.req.params ?? {}
236
+ params: ctx.req.params ?? {},
237
+ method
223
238
  });
224
- const result = handlerFunction(ctx, inst.clearRequest);
239
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
225
240
  const resolved = await Promise.resolve(result);
226
- return Router.sendReturnValue(req, reply, resolved, method, route.path);
241
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
242
+ return Router.sendReturnValue(req, reply, outgoing, method, route.path);
227
243
  }
228
244
  });
229
245
  }
package/dist/h3/index.cjs CHANGED
@@ -1,6 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_router = require('../router-CHg0pZUO.cjs');
3
- const require_responses = require('../responses-B-UirWFf.cjs');
2
+ require('../bindings-DvV2DXWi.cjs');
3
+ const require_router = require('../router-CU4V1kX0.cjs');
4
+ const require_responses = require('../responses-JzXstGU5.cjs');
4
5
  let h3 = require("h3");
5
6
 
6
7
  //#region src/h3/router.ts
@@ -22,9 +23,13 @@ var Router = class Router extends require_router.CoreRouter {
22
23
  });
23
24
  if (!meta) return void 0;
24
25
  if (meta.isNativeResponse) return meta.body;
26
+ const headers = meta.headers ? {} : meta.contentType ? { "Content-Type": meta.contentType } : void 0;
27
+ meta.headers?.forEach((headerValue, key) => {
28
+ if (headers) headers[key] = headerValue;
29
+ });
25
30
  return new h3.HTTPResponse(meta.contentType?.startsWith("application/json") ? JSON.stringify(meta.body) : meta.isEmpty ? null : meta.body, {
26
31
  status: meta.status,
27
- headers: meta.contentType ? { "Content-Type": meta.contentType } : void 0
32
+ headers
28
33
  });
29
34
  }
30
35
  static async readBodyCached(ctx) {
@@ -166,10 +171,18 @@ var Router = class Router extends require_router.CoreRouter {
166
171
  for (const route of this.routes) {
167
172
  let handlerFunction = null;
168
173
  let instance = null;
174
+ let bindingTarget;
175
+ let bindingMethod;
176
+ let bindingHandler;
177
+ let bindingMetadata;
169
178
  try {
170
179
  const resolved = this.resolveHandler(route);
171
180
  handlerFunction = resolved.handlerFunction;
172
181
  instance = resolved.instance;
182
+ bindingTarget = resolved.bindingTarget;
183
+ bindingMethod = resolved.bindingMethod;
184
+ bindingHandler = resolved.bindingHandler;
185
+ bindingMetadata = resolved.bindingMetadata;
173
186
  } catch (error) {
174
187
  console.error(`[ROUTES] Error setting up route ${route.path}:`, error.message);
175
188
  throw error;
@@ -201,11 +214,13 @@ var Router = class Router extends require_router.CoreRouter {
201
214
  Router.bindRequestToInstance(ctx, inst, route, {
202
215
  body: reqBody,
203
216
  query: (0, h3.getQuery)(ctx),
204
- params: (0, h3.getRouterParams)(ctx, { decode: true })
217
+ params: (0, h3.getRouterParams)(ctx, { decode: true }),
218
+ method
205
219
  });
206
- const result = handlerFunction(ctx, inst.clearRequest);
220
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
207
221
  const resolved = await Promise.resolve(result);
208
- return Router.toResponse(ctx, resolved, method, route.path);
222
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
223
+ return Router.toResponse(ctx, outgoing, method, route.path);
209
224
  } catch (error) {
210
225
  return error;
211
226
  }
@@ -223,11 +238,13 @@ var Router = class Router extends require_router.CoreRouter {
223
238
  Router.bindRequestToInstance(ctx, inst, route, {
224
239
  body: reqBody,
225
240
  query: (0, h3.getQuery)(ctx),
226
- params: (0, h3.getRouterParams)(ctx, { decode: true })
241
+ params: (0, h3.getRouterParams)(ctx, { decode: true }),
242
+ method
227
243
  });
228
- const result = handlerFunction(ctx, inst.clearRequest);
244
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
229
245
  const resolved = await Promise.resolve(result);
230
- return Router.toResponse(ctx, resolved, method, route.path);
246
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
247
+ return Router.toResponse(ctx, outgoing, method, route.path);
231
248
  } catch (error) {
232
249
  return error;
233
250
  }
@@ -1,4 +1,4 @@
1
- import { a as Handler, d as ApiResourceMiddleware, f as ControllerAction, i as H3App, m as HttpMethod, o as HttpContext, r as Route, s as Middleware, t as CoreRouter } from "../router-CS_2XQ7I.cjs";
1
+ import { _ as ApiResourceMiddleware, b as HttpMethod, d as Handler, f as HttpContext, l as Route, p as Middleware, t as CoreRouter, u as H3App, v as ControllerAction } from "../router-BYZmNzrZ.cjs";
2
2
  import { H3 } from "h3";
3
3
 
4
4
  //#region src/h3/router.d.ts
@@ -1,4 +1,4 @@
1
- import { a as Handler, d as ApiResourceMiddleware, f as ControllerAction, i as H3App, m as HttpMethod, o as HttpContext, r as Route, s as Middleware, t as CoreRouter } from "../router-_w2VzMQF.mjs";
1
+ import { _ as ApiResourceMiddleware, b as HttpMethod, d as Handler, f as HttpContext, l as Route, p as Middleware, t as CoreRouter, u as H3App, v as ControllerAction } from "../router-DCMtQ_Xi.mjs";
2
2
  import { H3 } from "h3";
3
3
 
4
4
  //#region src/h3/router.d.ts
package/dist/h3/index.mjs CHANGED
@@ -1,5 +1,6 @@
1
- import { t as CoreRouter } from "../router-BReOXz-F.mjs";
2
- import { n as resolveResponseMeta } from "../responses-CJaD0ugv.mjs";
1
+ import "../bindings-DIanvIVd.mjs";
2
+ import { t as CoreRouter } from "../router-B3QjblRX.mjs";
3
+ import { n as resolveResponseMeta } from "../responses-_II3dOJ5.mjs";
3
4
  import { HTTPResponse, getQuery, getRouterParams, readBody } from "h3";
4
5
 
5
6
  //#region src/h3/router.ts
@@ -21,9 +22,13 @@ var Router = class Router extends CoreRouter {
21
22
  });
22
23
  if (!meta) return void 0;
23
24
  if (meta.isNativeResponse) return meta.body;
25
+ const headers = meta.headers ? {} : meta.contentType ? { "Content-Type": meta.contentType } : void 0;
26
+ meta.headers?.forEach((headerValue, key) => {
27
+ if (headers) headers[key] = headerValue;
28
+ });
24
29
  return new HTTPResponse(meta.contentType?.startsWith("application/json") ? JSON.stringify(meta.body) : meta.isEmpty ? null : meta.body, {
25
30
  status: meta.status,
26
- headers: meta.contentType ? { "Content-Type": meta.contentType } : void 0
31
+ headers
27
32
  });
28
33
  }
29
34
  static async readBodyCached(ctx) {
@@ -165,10 +170,18 @@ var Router = class Router extends CoreRouter {
165
170
  for (const route of this.routes) {
166
171
  let handlerFunction = null;
167
172
  let instance = null;
173
+ let bindingTarget;
174
+ let bindingMethod;
175
+ let bindingHandler;
176
+ let bindingMetadata;
168
177
  try {
169
178
  const resolved = this.resolveHandler(route);
170
179
  handlerFunction = resolved.handlerFunction;
171
180
  instance = resolved.instance;
181
+ bindingTarget = resolved.bindingTarget;
182
+ bindingMethod = resolved.bindingMethod;
183
+ bindingHandler = resolved.bindingHandler;
184
+ bindingMetadata = resolved.bindingMetadata;
172
185
  } catch (error) {
173
186
  console.error(`[ROUTES] Error setting up route ${route.path}:`, error.message);
174
187
  throw error;
@@ -200,11 +213,13 @@ var Router = class Router extends CoreRouter {
200
213
  Router.bindRequestToInstance(ctx, inst, route, {
201
214
  body: reqBody,
202
215
  query: getQuery(ctx),
203
- params: getRouterParams(ctx, { decode: true })
216
+ params: getRouterParams(ctx, { decode: true }),
217
+ method
204
218
  });
205
- const result = handlerFunction(ctx, inst.clearRequest);
219
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
206
220
  const resolved = await Promise.resolve(result);
207
- return Router.toResponse(ctx, resolved, method, route.path);
221
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
222
+ return Router.toResponse(ctx, outgoing, method, route.path);
208
223
  } catch (error) {
209
224
  return error;
210
225
  }
@@ -222,11 +237,13 @@ var Router = class Router extends CoreRouter {
222
237
  Router.bindRequestToInstance(ctx, inst, route, {
223
238
  body: reqBody,
224
239
  query: getQuery(ctx),
225
- params: getRouterParams(ctx, { decode: true })
240
+ params: getRouterParams(ctx, { decode: true }),
241
+ method
226
242
  });
227
- const result = handlerFunction(ctx, inst.clearRequest);
243
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
228
244
  const resolved = await Promise.resolve(result);
229
- return Router.toResponse(ctx, resolved, method, route.path);
245
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
246
+ return Router.toResponse(ctx, outgoing, method, route.path);
230
247
  } catch (error) {
231
248
  return error;
232
249
  }
@@ -1,6 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_router = require('../router-CHg0pZUO.cjs');
3
- const require_responses = require('../responses-B-UirWFf.cjs');
2
+ require('../bindings-DvV2DXWi.cjs');
3
+ const require_router = require('../router-CU4V1kX0.cjs');
4
+ const require_responses = require('../responses-JzXstGU5.cjs');
4
5
 
5
6
  //#region src/hono/router.ts
6
7
  /**
@@ -20,9 +21,13 @@ var Router = class Router extends require_router.CoreRouter {
20
21
  });
21
22
  if (!meta) return void 0;
22
23
  if (meta.isNativeResponse) return meta.body;
23
- if (meta.isEmpty) return ctx.body(null, meta.status);
24
- if (meta.contentType?.startsWith("application/json")) return ctx.json(meta.body, meta.status);
25
- return ctx.body(meta.body, meta.status, meta.contentType ? { "Content-Type": meta.contentType } : void 0);
24
+ const headers = meta.headers ? {} : meta.contentType ? { "Content-Type": meta.contentType } : void 0;
25
+ meta.headers?.forEach((headerValue, key) => {
26
+ if (headers) headers[key] = headerValue;
27
+ });
28
+ if (meta.isEmpty) return ctx.body(null, meta.status, headers);
29
+ if (meta.contentType?.startsWith("application/json")) return ctx.body(JSON.stringify(meta.body), meta.status, headers);
30
+ return ctx.body(meta.body, meta.status, headers);
26
31
  }
27
32
  static getParams(ctx) {
28
33
  try {
@@ -169,10 +174,18 @@ var Router = class Router extends require_router.CoreRouter {
169
174
  for (const route of this.routes) {
170
175
  let handlerFunction = null;
171
176
  let instance = null;
177
+ let bindingTarget;
178
+ let bindingMethod;
179
+ let bindingHandler;
180
+ let bindingMetadata;
172
181
  try {
173
182
  const resolved = this.resolveHandler(route);
174
183
  handlerFunction = resolved.handlerFunction;
175
184
  instance = resolved.instance;
185
+ bindingTarget = resolved.bindingTarget;
186
+ bindingMethod = resolved.bindingMethod;
187
+ bindingHandler = resolved.bindingHandler;
188
+ bindingMetadata = resolved.bindingMetadata;
176
189
  } catch (error) {
177
190
  console.error(`[ROUTES] Error setting up route ${route.path}:`, error.message);
178
191
  throw error;
@@ -199,11 +212,13 @@ var Router = class Router extends require_router.CoreRouter {
199
212
  Router.bindRequestToInstance(ctx, inst, route, {
200
213
  body: reqBody,
201
214
  query: ctx.req.query(),
202
- params: Router.getParams(ctx)
215
+ params: Router.getParams(ctx),
216
+ method
203
217
  });
204
- const result = handlerFunction(ctx, inst.clearRequest);
218
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
205
219
  const resolved = await Promise.resolve(result);
206
- return Router.toResponse(ctx, resolved, method, route.path);
220
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
221
+ return Router.toResponse(ctx, outgoing, method, route.path);
207
222
  });
208
223
  if ([
209
224
  "put",
@@ -217,11 +232,13 @@ var Router = class Router extends require_router.CoreRouter {
217
232
  Router.bindRequestToInstance(ctx, inst, route, {
218
233
  body: reqBody,
219
234
  query: ctx.req.query(),
220
- params: Router.getParams(ctx)
235
+ params: Router.getParams(ctx),
236
+ method
221
237
  });
222
- const result = handlerFunction(ctx, inst.clearRequest);
238
+ const result = await Router.callHandler(handlerFunction, ctx, bindingTarget, bindingMethod, bindingHandler, bindingMetadata);
223
239
  const resolved = await Promise.resolve(result);
224
- return Router.toResponse(ctx, resolved, method, route.path);
240
+ const outgoing = typeof resolved === "undefined" && ctx.clearResponse?.sent ? ctx.clearResponse : resolved;
241
+ return Router.toResponse(ctx, outgoing, method, route.path);
225
242
  });
226
243
  }
227
244
  }
@@ -1,4 +1,4 @@
1
- import { d as ApiResourceMiddleware, f as ControllerAction, m as HttpMethod, n as ClearRequest, p as ControllerHandler, r as Route, t as CoreRouter } from "../router-CS_2XQ7I.cjs";
1
+ import { _ as ApiResourceMiddleware, b as HttpMethod, c as Request, l as Route, t as CoreRouter, v as ControllerAction, x as Response, y as ControllerHandler } from "../router-BYZmNzrZ.cjs";
2
2
  import { Context, HonoRequest, MiddlewareHandler } from "hono";
3
3
 
4
4
  //#region types/hono.d.ts
@@ -7,8 +7,10 @@ type RequestWithGetBody = HonoRequest & {
7
7
  };
8
8
  type HttpContext = Context & {
9
9
  req: RequestWithGetBody;
10
+ clearRequest: Request;
11
+ clearResponse: Response;
10
12
  };
11
- type RouteHandler = (ctx: HttpContext, req: ClearRequest) => any | Promise<any>;
13
+ type RouteHandler = (ctx: HttpContext, req: Request) => any | Promise<any>;
12
14
  type Handler = RouteHandler | ControllerHandler;
13
15
  type Middleware = MiddlewareHandler;
14
16
  type HonoApp = { [K in 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options' | 'head']: (path: string, ...handlers: Middleware[]) => any };
@@ -1,4 +1,4 @@
1
- import { d as ApiResourceMiddleware, f as ControllerAction, m as HttpMethod, n as ClearRequest, p as ControllerHandler, r as Route, t as CoreRouter } from "../router-_w2VzMQF.mjs";
1
+ import { _ as ApiResourceMiddleware, b as HttpMethod, c as Request, l as Route, t as CoreRouter, v as ControllerAction, x as Response, y as ControllerHandler } from "../router-DCMtQ_Xi.mjs";
2
2
  import { Context, HonoRequest, MiddlewareHandler } from "hono";
3
3
 
4
4
  //#region types/hono.d.ts
@@ -7,8 +7,10 @@ type RequestWithGetBody = HonoRequest & {
7
7
  };
8
8
  type HttpContext = Context & {
9
9
  req: RequestWithGetBody;
10
+ clearRequest: Request;
11
+ clearResponse: Response;
10
12
  };
11
- type RouteHandler = (ctx: HttpContext, req: ClearRequest) => any | Promise<any>;
13
+ type RouteHandler = (ctx: HttpContext, req: Request) => any | Promise<any>;
12
14
  type Handler = RouteHandler | ControllerHandler;
13
15
  type Middleware = MiddlewareHandler;
14
16
  type HonoApp = { [K in 'get' | 'post' | 'put' | 'delete' | 'patch' | 'options' | 'head']: (path: string, ...handlers: Middleware[]) => any };