clear-router 2.8.2 → 2.8.3

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 (69) hide show
  1. package/dist/ClearRequest.d.cts +5 -5
  2. package/dist/ClearRequest.d.mts +1 -1
  3. package/dist/Controller.d.mts +1 -1
  4. package/dist/ResourceRouteSelection.d.cts +3 -3
  5. package/dist/ResourceRoutes.cjs +12 -0
  6. package/dist/ResourceRoutes.d.cts +16 -22
  7. package/dist/ResourceRoutes.d.mts +13 -19
  8. package/dist/ResourceRoutes.mjs +12 -0
  9. package/dist/{Request-Ci0UQ-Vl.d.mts → Route-tq-rge1g.d.mts} +46 -46
  10. package/dist/Route.d.cts +4 -4
  11. package/dist/Route.d.mts +1 -1
  12. package/dist/RouteGroup.cjs +120 -0
  13. package/dist/RouteGroup.d.cts +64 -0
  14. package/dist/RouteGroup.d.mts +64 -0
  15. package/dist/RouteGroup.mjs +120 -0
  16. package/dist/core/{router.cjs → CoreRouter.cjs} +13 -41
  17. package/dist/core/{router.d.cts → CoreRouter.d.cts} +8 -15
  18. package/dist/core/{router.d.mts → CoreRouter.d.mts} +6 -13
  19. package/dist/core/{router.mjs → CoreRouter.mjs} +13 -41
  20. package/dist/core/Request.d.cts +1 -1
  21. package/dist/core/Request.d.mts +2 -2
  22. package/dist/core/bindings.d.cts +1 -6
  23. package/dist/core/helpers.d.mts +1 -0
  24. package/dist/core/index.cjs +3 -2
  25. package/dist/core/index.d.cts +3 -2
  26. package/dist/core/index.d.mts +3 -2
  27. package/dist/core/index.mjs +3 -2
  28. package/dist/core/plugins.d.cts +2 -2
  29. package/dist/core/plugins.d.mts +1 -1
  30. package/dist/decorators/setup.cjs +2 -2
  31. package/dist/decorators/setup.mjs +1 -1
  32. package/dist/express/router.cjs +4 -4
  33. package/dist/express/router.d.cts +4 -3
  34. package/dist/express/router.d.mts +4 -3
  35. package/dist/express/router.mjs +3 -3
  36. package/dist/fastify/router.cjs +4 -4
  37. package/dist/fastify/router.d.cts +4 -3
  38. package/dist/fastify/router.d.mts +4 -3
  39. package/dist/fastify/router.mjs +3 -3
  40. package/dist/h3/router.cjs +4 -4
  41. package/dist/h3/router.d.cts +4 -3
  42. package/dist/h3/router.d.mts +4 -3
  43. package/dist/h3/router.mjs +3 -3
  44. package/dist/hono/router.cjs +4 -4
  45. package/dist/hono/router.d.cts +4 -3
  46. package/dist/hono/router.d.mts +4 -3
  47. package/dist/hono/router.mjs +3 -3
  48. package/dist/index.cjs +5 -3
  49. package/dist/index.d.cts +4 -3
  50. package/dist/index.d.mts +4 -3
  51. package/dist/index.mjs +4 -3
  52. package/dist/koa/router.cjs +4 -4
  53. package/dist/koa/router.d.cts +4 -3
  54. package/dist/koa/router.d.mts +4 -3
  55. package/dist/koa/router.mjs +3 -3
  56. package/dist/types/basic.d.cts +40 -7
  57. package/dist/types/basic.d.mts +40 -3
  58. package/dist/types/express.d.cts +2 -36
  59. package/dist/types/express.d.mts +1 -1
  60. package/dist/types/fastify.d.cts +3 -15
  61. package/dist/types/fastify.d.mts +1 -1
  62. package/dist/types/h3.d.cts +3 -38
  63. package/dist/types/h3.d.mts +1 -1
  64. package/dist/types/hono.d.cts +3 -17
  65. package/dist/types/hono.d.mts +1 -1
  66. package/dist/types/index.d.mts +1 -1
  67. package/dist/types/koa.d.cts +2 -20
  68. package/dist/types/koa.d.mts +1 -1
  69. package/package.json +1 -1
@@ -1,8 +1,9 @@
1
- import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.cjs";
2
1
  import { FastifyApp, Handler, HttpContext, Middleware } from "../types/fastify.cjs";
3
2
  import { Route } from "../Route.cjs";
3
+ import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.cjs";
4
4
  import { ResourceRoutes } from "../ResourceRoutes.cjs";
5
- import { CoreRouter } from "../core/router.cjs";
5
+ import { RouteGroup } from "../RouteGroup.cjs";
6
+ import { CoreRouter } from "../core/CoreRouter.cjs";
6
7
 
7
8
  //#region src/fastify/router.d.ts
8
9
  /**
@@ -99,7 +100,7 @@ declare class Router extends CoreRouter {
99
100
  * @param callback
100
101
  * @param middlewares
101
102
  */
102
- static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): Promise<void>;
103
+ static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): RouteGroup<HttpContext, Middleware, Handler>;
103
104
  /**
104
105
  * Apply middlewares to a group of routes defined within the callback
105
106
  *
@@ -1,8 +1,9 @@
1
- import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.mjs";
2
1
  import { FastifyApp, Handler, HttpContext, Middleware } from "../types/fastify.mjs";
3
2
  import { Route } from "../Route.mjs";
3
+ import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.mjs";
4
4
  import { ResourceRoutes } from "../ResourceRoutes.mjs";
5
- import { CoreRouter } from "../core/router.mjs";
5
+ import { RouteGroup } from "../RouteGroup.mjs";
6
+ import { CoreRouter } from "../core/CoreRouter.mjs";
6
7
 
7
8
  //#region src/fastify/router.d.ts
8
9
  /**
@@ -99,7 +100,7 @@ declare class Router extends CoreRouter {
99
100
  * @param callback
100
101
  * @param middlewares
101
102
  */
102
- static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): Promise<void>;
103
+ static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): RouteGroup<HttpContext, Middleware, Handler>;
103
104
  /**
104
105
  * Apply middlewares to a group of routes defined within the callback
105
106
  *
@@ -1,4 +1,4 @@
1
- import { CoreRouter } from "../core/router.mjs";
1
+ import { CoreRouter } from "../core/CoreRouter.mjs";
2
2
  import { isFetchResponse, resolveResponseMeta, responseWasSent } from "../core/responses.mjs";
3
3
 
4
4
  //#region src/fastify/router.ts
@@ -134,8 +134,8 @@ var Router = class Router extends CoreRouter {
134
134
  * @param callback
135
135
  * @param middlewares
136
136
  */
137
- static async group(prefix, source, middlewares) {
138
- await super.group(prefix, source, middlewares);
137
+ static group(prefix, source, middlewares) {
138
+ return super.group(prefix, source, middlewares);
139
139
  }
140
140
  /**
141
141
  * Apply middlewares to a group of routes defined within the callback
@@ -1,4 +1,4 @@
1
- const require_router = require('../core/router.cjs');
1
+ const require_CoreRouter = require('../core/CoreRouter.cjs');
2
2
  const require_responses = require('../core/responses.cjs');
3
3
  let h3 = require("h3");
4
4
 
@@ -9,7 +9,7 @@ let h3 = require("h3");
9
9
  * @author 3m1n3nc3
10
10
  * @repository https://github.com/arkstack-tmp/clear-router
11
11
  */
12
- var Router = class Router extends require_router.CoreRouter {
12
+ var Router = class Router extends require_CoreRouter.CoreRouter {
13
13
  static routerStateNamespace = "clear-router:h3";
14
14
  static bodyCache = /* @__PURE__ */ new WeakMap();
15
15
  static toResponse(ctx, value, method, path) {
@@ -143,8 +143,8 @@ var Router = class Router extends require_router.CoreRouter {
143
143
  * @param callback
144
144
  * @param middlewares
145
145
  */
146
- static async group(prefix, source, middlewares) {
147
- await super.group(prefix, source, middlewares);
146
+ static group(prefix, source, middlewares) {
147
+ return super.group(prefix, source, middlewares);
148
148
  }
149
149
  /**
150
150
  * Adds global middlewares to the router, which will be applied to all routes.
@@ -1,8 +1,9 @@
1
- import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.cjs";
2
1
  import { H3App, Handler, HttpContext, Middleware as Middleware$1 } from "../types/h3.cjs";
3
2
  import { Route } from "../Route.cjs";
3
+ import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.cjs";
4
4
  import { ResourceRoutes } from "../ResourceRoutes.cjs";
5
- import { CoreRouter } from "../core/router.cjs";
5
+ import { RouteGroup } from "../RouteGroup.cjs";
6
+ import { CoreRouter } from "../core/CoreRouter.cjs";
6
7
  import { H3 } from "h3";
7
8
 
8
9
  //#region src/h3/router.d.ts
@@ -101,7 +102,7 @@ declare class Router extends CoreRouter {
101
102
  * @param callback
102
103
  * @param middlewares
103
104
  */
104
- static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware$1[]): Promise<void>;
105
+ static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware$1[]): RouteGroup<HttpContext, Middleware$1, Handler>;
105
106
  /**
106
107
  * Adds global middlewares to the router, which will be applied to all routes.
107
108
  *
@@ -1,8 +1,9 @@
1
- import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.mjs";
2
1
  import { H3App, Handler, HttpContext, Middleware as Middleware$1 } from "../types/h3.mjs";
3
2
  import { Route } from "../Route.mjs";
3
+ import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.mjs";
4
4
  import { ResourceRoutes } from "../ResourceRoutes.mjs";
5
- import { CoreRouter } from "../core/router.mjs";
5
+ import { RouteGroup } from "../RouteGroup.mjs";
6
+ import { CoreRouter } from "../core/CoreRouter.mjs";
6
7
  import { H3 } from "h3";
7
8
 
8
9
  //#region src/h3/router.d.ts
@@ -101,7 +102,7 @@ declare class Router extends CoreRouter {
101
102
  * @param callback
102
103
  * @param middlewares
103
104
  */
104
- static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware$1[]): Promise<void>;
105
+ static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware$1[]): RouteGroup<HttpContext, Middleware$1, Handler>;
105
106
  /**
106
107
  * Adds global middlewares to the router, which will be applied to all routes.
107
108
  *
@@ -1,4 +1,4 @@
1
- import { CoreRouter } from "../core/router.mjs";
1
+ import { CoreRouter } from "../core/CoreRouter.mjs";
2
2
  import { resolveResponseMeta } from "../core/responses.mjs";
3
3
  import { HTTPResponse, getQuery, getRouterParams, readBody } from "h3";
4
4
 
@@ -143,8 +143,8 @@ var Router = class Router extends CoreRouter {
143
143
  * @param callback
144
144
  * @param middlewares
145
145
  */
146
- static async group(prefix, source, middlewares) {
147
- await super.group(prefix, source, middlewares);
146
+ static group(prefix, source, middlewares) {
147
+ return super.group(prefix, source, middlewares);
148
148
  }
149
149
  /**
150
150
  * Adds global middlewares to the router, which will be applied to all routes.
@@ -1,4 +1,4 @@
1
- const require_router = require('../core/router.cjs');
1
+ const require_CoreRouter = require('../core/CoreRouter.cjs');
2
2
  const require_responses = require('../core/responses.cjs');
3
3
 
4
4
  //#region src/hono/router.ts
@@ -8,7 +8,7 @@ const require_responses = require('../core/responses.cjs');
8
8
  * @author 3m1n3nc3
9
9
  * @repository https://github.com/arkstack-tmp/clear-router
10
10
  */
11
- var Router = class Router extends require_router.CoreRouter {
11
+ var Router = class Router extends require_CoreRouter.CoreRouter {
12
12
  static routerStateNamespace = "clear-router:hono";
13
13
  static bodyCache = /* @__PURE__ */ new WeakMap();
14
14
  static toResponse(ctx, value, method, path) {
@@ -147,8 +147,8 @@ var Router = class Router extends require_router.CoreRouter {
147
147
  * @param callback
148
148
  * @param middlewares
149
149
  */
150
- static async group(prefix, source, middlewares) {
151
- await super.group(prefix, source, middlewares);
150
+ static group(prefix, source, middlewares) {
151
+ return super.group(prefix, source, middlewares);
152
152
  }
153
153
  /**
154
154
  * Apply middlewares to a group of routes defined within the callback
@@ -1,8 +1,9 @@
1
- import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.cjs";
2
1
  import { Handler, HonoApp, HttpContext, Middleware } from "../types/hono.cjs";
3
2
  import { Route } from "../Route.cjs";
3
+ import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.cjs";
4
4
  import { ResourceRoutes } from "../ResourceRoutes.cjs";
5
- import { CoreRouter } from "../core/router.cjs";
5
+ import { RouteGroup } from "../RouteGroup.cjs";
6
+ import { CoreRouter } from "../core/CoreRouter.cjs";
6
7
 
7
8
  //#region src/hono/router.d.ts
8
9
  /**
@@ -101,7 +102,7 @@ declare class Router extends CoreRouter {
101
102
  * @param callback
102
103
  * @param middlewares
103
104
  */
104
- static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): Promise<void>;
105
+ static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): RouteGroup<HttpContext, Middleware, Handler>;
105
106
  /**
106
107
  * Apply middlewares to a group of routes defined within the callback
107
108
  *
@@ -1,8 +1,9 @@
1
- import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.mjs";
2
1
  import { Handler, HonoApp, HttpContext, Middleware } from "../types/hono.mjs";
3
2
  import { Route } from "../Route.mjs";
3
+ import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.mjs";
4
4
  import { ResourceRoutes } from "../ResourceRoutes.mjs";
5
- import { CoreRouter } from "../core/router.mjs";
5
+ import { RouteGroup } from "../RouteGroup.mjs";
6
+ import { CoreRouter } from "../core/CoreRouter.mjs";
6
7
 
7
8
  //#region src/hono/router.d.ts
8
9
  /**
@@ -101,7 +102,7 @@ declare class Router extends CoreRouter {
101
102
  * @param callback
102
103
  * @param middlewares
103
104
  */
104
- static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): Promise<void>;
105
+ static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): RouteGroup<HttpContext, Middleware, Handler>;
105
106
  /**
106
107
  * Apply middlewares to a group of routes defined within the callback
107
108
  *
@@ -1,4 +1,4 @@
1
- import { CoreRouter } from "../core/router.mjs";
1
+ import { CoreRouter } from "../core/CoreRouter.mjs";
2
2
  import { resolveResponseMeta } from "../core/responses.mjs";
3
3
 
4
4
  //#region src/hono/router.ts
@@ -147,8 +147,8 @@ var Router = class Router extends CoreRouter {
147
147
  * @param callback
148
148
  * @param middlewares
149
149
  */
150
- static async group(prefix, source, middlewares) {
151
- await super.group(prefix, source, middlewares);
150
+ static group(prefix, source, middlewares) {
151
+ return super.group(prefix, source, middlewares);
152
152
  }
153
153
  /**
154
154
  * Apply middlewares to a group of routes defined within the callback
package/dist/index.cjs CHANGED
@@ -2,19 +2,21 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_ClearRequest = require('./ClearRequest.cjs');
3
3
  const require_Controller = require('./Controller.cjs');
4
4
  const require_Route = require('./Route.cjs');
5
+ const require_helpers = require('./core/helpers.cjs');
6
+ const require_RouteGroup = require('./RouteGroup.cjs');
5
7
  const require_Request = require('./core/Request.cjs');
6
8
  const require_Response = require('./core/Response.cjs');
7
9
  const require_plugins = require('./core/plugins.cjs');
8
- const require_helpers = require('./core/helpers.cjs');
9
- const require_router = require('./core/router.cjs');
10
+ const require_CoreRouter = require('./core/CoreRouter.cjs');
10
11
  require('./core/index.cjs');
11
12
 
12
13
  exports.ClearRequest = require_ClearRequest.ClearRequest;
13
14
  exports.Controller = require_Controller.Controller;
14
- exports.CoreRouter = require_router.CoreRouter;
15
+ exports.CoreRouter = require_CoreRouter.CoreRouter;
15
16
  exports.Request = require_Request.Request;
16
17
  exports.Response = require_Response.Response;
17
18
  exports.Route = require_Route.Route;
19
+ exports.RouteGroup = require_RouteGroup.RouteGroup;
18
20
  exports.definePlugin = require_plugins.definePlugin;
19
21
  exports.importFile = require_helpers.importFile;
20
22
  exports.wrap = require_helpers.wrap;
package/dist/index.d.cts CHANGED
@@ -1,10 +1,11 @@
1
1
  import { ClearHttpContext, RouteParameter } from "./Contracts.cjs";
2
+ import { Request } from "./core/Request.cjs";
2
3
  import { Response } from "./core/Response.cjs";
3
4
  import { Route } from "./Route.cjs";
4
- import { Request } from "./core/Request.cjs";
5
5
  import { ClearRequest } from "./ClearRequest.cjs";
6
6
  import { Controller } from "./Controller.cjs";
7
+ import { RouteGroup } from "./RouteGroup.cjs";
7
8
  import { ClearRouterPlugin, ClearRouterPluginArgumentsContext, ClearRouterPluginContext, ClearRouterPluginInput, ClearRouterPluginRequestContext, PluginArgumentsResolver, PluginBind, PluginBindFactory, PluginBindValue, PluginSetupResult, definePlugin } from "./core/plugins.cjs";
8
- import { CoreRouter } from "./core/router.cjs";
9
+ import { CoreRouter } from "./core/CoreRouter.cjs";
9
10
  import { importFile, wrap } from "./core/helpers.cjs";
10
- export { ClearHttpContext, ClearRequest, ClearRouterPlugin, ClearRouterPluginArgumentsContext, ClearRouterPluginContext, ClearRouterPluginInput, ClearRouterPluginRequestContext, Controller, CoreRouter, PluginArgumentsResolver, PluginBind, PluginBindFactory, PluginBindValue, PluginSetupResult, Request, Response, Route, RouteParameter, definePlugin, importFile, wrap };
11
+ export { ClearHttpContext, ClearRequest, ClearRouterPlugin, ClearRouterPluginArgumentsContext, ClearRouterPluginContext, ClearRouterPluginInput, ClearRouterPluginRequestContext, Controller, CoreRouter, PluginArgumentsResolver, PluginBind, PluginBindFactory, PluginBindValue, PluginSetupResult, Request, Response, Route, RouteGroup, RouteParameter, definePlugin, importFile, wrap };
package/dist/index.d.mts CHANGED
@@ -1,10 +1,11 @@
1
1
  import { ClearHttpContext, RouteParameter } from "./Contracts.mjs";
2
+ import { Request } from "./core/Request.mjs";
2
3
  import { Response } from "./core/Response.mjs";
3
4
  import { Route } from "./Route.mjs";
4
- import { Request } from "./core/Request.mjs";
5
5
  import { ClearRequest } from "./ClearRequest.mjs";
6
6
  import { Controller } from "./Controller.mjs";
7
+ import { RouteGroup } from "./RouteGroup.mjs";
7
8
  import { ClearRouterPlugin, ClearRouterPluginArgumentsContext, ClearRouterPluginContext, ClearRouterPluginInput, ClearRouterPluginRequestContext, PluginArgumentsResolver, PluginBind, PluginBindFactory, PluginBindValue, PluginSetupResult, definePlugin } from "./core/plugins.mjs";
8
- import { CoreRouter } from "./core/router.mjs";
9
+ import { CoreRouter } from "./core/CoreRouter.mjs";
9
10
  import { importFile, wrap } from "./core/helpers.mjs";
10
- export { ClearHttpContext, ClearRequest, ClearRouterPlugin, ClearRouterPluginArgumentsContext, ClearRouterPluginContext, ClearRouterPluginInput, ClearRouterPluginRequestContext, Controller, CoreRouter, PluginArgumentsResolver, PluginBind, PluginBindFactory, PluginBindValue, PluginSetupResult, Request, Response, Route, RouteParameter, definePlugin, importFile, wrap };
11
+ export { ClearHttpContext, ClearRequest, ClearRouterPlugin, ClearRouterPluginArgumentsContext, ClearRouterPluginContext, ClearRouterPluginInput, ClearRouterPluginRequestContext, Controller, CoreRouter, PluginArgumentsResolver, PluginBind, PluginBindFactory, PluginBindValue, PluginSetupResult, Request, Response, Route, RouteGroup, RouteParameter, definePlugin, importFile, wrap };
package/dist/index.mjs CHANGED
@@ -1,11 +1,12 @@
1
1
  import { ClearRequest } from "./ClearRequest.mjs";
2
2
  import { Controller } from "./Controller.mjs";
3
3
  import { Route } from "./Route.mjs";
4
+ import { importFile, wrap } from "./core/helpers.mjs";
5
+ import { RouteGroup } from "./RouteGroup.mjs";
4
6
  import { Request } from "./core/Request.mjs";
5
7
  import { Response } from "./core/Response.mjs";
6
8
  import { definePlugin } from "./core/plugins.mjs";
7
- import { importFile, wrap } from "./core/helpers.mjs";
8
- import { CoreRouter } from "./core/router.mjs";
9
+ import { CoreRouter } from "./core/CoreRouter.mjs";
9
10
  import "./core/index.mjs";
10
11
 
11
- export { ClearRequest, Controller, CoreRouter, Request, Response, Route, definePlugin, importFile, wrap };
12
+ export { ClearRequest, Controller, CoreRouter, Request, Response, Route, RouteGroup, definePlugin, importFile, wrap };
@@ -1,4 +1,4 @@
1
- const require_router = require('../core/router.cjs');
1
+ const require_CoreRouter = require('../core/CoreRouter.cjs');
2
2
  const require_responses = require('../core/responses.cjs');
3
3
 
4
4
  //#region src/koa/router.ts
@@ -8,7 +8,7 @@ const require_responses = require('../core/responses.cjs');
8
8
  * @author 3m1n3nc3
9
9
  * @repository https://github.com/arkstack-tmp/clear-router
10
10
  */
11
- var Router = class Router extends require_router.CoreRouter {
11
+ var Router = class Router extends require_CoreRouter.CoreRouter {
12
12
  static routerStateNamespace = "clear-router:koa";
13
13
  static bodyCache = /* @__PURE__ */ new WeakMap();
14
14
  static async readBodyCached(ctx) {
@@ -157,8 +157,8 @@ var Router = class Router extends require_router.CoreRouter {
157
157
  * @param callback
158
158
  * @param middlewares
159
159
  */
160
- static async group(prefix, source, middlewares) {
161
- await super.group(prefix, source, middlewares);
160
+ static group(prefix, source, middlewares) {
161
+ return super.group(prefix, source, middlewares);
162
162
  }
163
163
  /**
164
164
  * Apply middlewares to a group of routes defined within the callback
@@ -1,8 +1,9 @@
1
- import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.cjs";
2
1
  import { Handler, HttpContext, KoaRouterApp, Middleware } from "../types/koa.cjs";
3
2
  import { Route } from "../Route.cjs";
3
+ import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.cjs";
4
4
  import { ResourceRoutes } from "../ResourceRoutes.cjs";
5
- import { CoreRouter } from "../core/router.cjs";
5
+ import { RouteGroup } from "../RouteGroup.cjs";
6
+ import { CoreRouter } from "../core/CoreRouter.cjs";
6
7
 
7
8
  //#region src/koa/router.d.ts
8
9
  /**
@@ -102,7 +103,7 @@ declare class Router extends CoreRouter {
102
103
  * @param callback
103
104
  * @param middlewares
104
105
  */
105
- static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): Promise<void>;
106
+ static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): RouteGroup<HttpContext, Middleware, Handler>;
106
107
  /**
107
108
  * Apply middlewares to a group of routes defined within the callback
108
109
  *
@@ -1,8 +1,9 @@
1
- import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.mjs";
2
1
  import { Handler, HttpContext, KoaRouterApp, Middleware } from "../types/koa.mjs";
3
2
  import { Route } from "../Route.mjs";
3
+ import { ApiResourceMiddleware, HttpMethod, ResourceAction, RouteGroupSource } from "../types/basic.mjs";
4
4
  import { ResourceRoutes } from "../ResourceRoutes.mjs";
5
- import { CoreRouter } from "../core/router.mjs";
5
+ import { RouteGroup } from "../RouteGroup.mjs";
6
+ import { CoreRouter } from "../core/CoreRouter.mjs";
6
7
 
7
8
  //#region src/koa/router.d.ts
8
9
  /**
@@ -102,7 +103,7 @@ declare class Router extends CoreRouter {
102
103
  * @param callback
103
104
  * @param middlewares
104
105
  */
105
- static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): Promise<void>;
106
+ static group(prefix: string, source: RouteGroupSource, middlewares?: Middleware[]): RouteGroup<HttpContext, Middleware, Handler>;
106
107
  /**
107
108
  * Apply middlewares to a group of routes defined within the callback
108
109
  *
@@ -1,4 +1,4 @@
1
- import { CoreRouter } from "../core/router.mjs";
1
+ import { CoreRouter } from "../core/CoreRouter.mjs";
2
2
  import { isFetchResponse, resolveResponseMeta } from "../core/responses.mjs";
3
3
 
4
4
  //#region src/koa/router.ts
@@ -157,8 +157,8 @@ var Router = class Router extends CoreRouter {
157
157
  * @param callback
158
158
  * @param middlewares
159
159
  */
160
- static async group(prefix, source, middlewares) {
161
- await super.group(prefix, source, middlewares);
160
+ static group(prefix, source, middlewares) {
161
+ return super.group(prefix, source, middlewares);
162
162
  }
163
163
  /**
164
164
  * Apply middlewares to a group of routes defined within the callback
@@ -1,13 +1,12 @@
1
+ import { Route } from "../Route.cjs";
1
2
  import { JitiOptions, JitiResolveOptions } from "jiti";
3
+ import { AsyncLocalStorage } from "node:async_hooks";
2
4
 
3
5
  //#region src/types/basic.d.ts
4
- /**
5
- * Controller method reference
6
- */
7
- type ControllerHandler = [any, string];
8
6
  type MaybePromise<T = any> = T | Promise<T>;
9
- type RouteGroupCallback = () => MaybePromise<void>;
10
- type RouteGroupSource = RouteGroupCallback | string;
7
+ type RouteGroupCallback = () => MaybePromise<any>;
8
+ type RouteGroupEntry = RouteGroupCallback | string;
9
+ type RouteGroupSource = RouteGroupEntry | RouteGroupEntry[];
11
10
  type MiddlewareHandle<Args extends any[] = any[], Return = any> = (...args: Args) => MaybePromise<Return>;
12
11
  type MiddlewareClass<M extends MiddlewareHandle = MiddlewareHandle> = new () => {
13
12
  handle: M;
@@ -52,6 +51,40 @@ interface RouterConfig {
52
51
  autoDiscover?: boolean;
53
52
  };
54
53
  }
54
+ type ResourceRouteDefinition = {
55
+ method: HttpMethod;
56
+ path: string;
57
+ };
58
+ type ResourceRouteRegistrar<X, M, H> = (input: {
59
+ action: ResourceAction;
60
+ method: HttpMethod;
61
+ path: string;
62
+ handler: any;
63
+ middlewares?: M[];
64
+ name: string;
65
+ }) => Route<X, M, H>;
66
+ type ResourceRouteRemover<X, M, H> = (route: Route<X, M, H>) => void;
67
+ type ResourceRoutesOptions<M = any> = {
68
+ only?: ResourceAction[];
69
+ except?: ResourceAction[];
70
+ middlewares?: ApiResourceMiddleware<M>;
71
+ };
72
+ interface RouteGroupContext {
73
+ prefix: string;
74
+ groupMiddlewares: any[];
75
+ routeCollectors?: Array<Set<Route<any, any, any>>>;
76
+ }
77
+ interface RouteGroupOptions {
78
+ prefix: string;
79
+ source: RouteGroupSource;
80
+ middlewares?: any[];
81
+ context: AsyncLocalStorage<RouteGroupContext>;
82
+ defaultPrefix: string;
83
+ defaultMiddlewares: any[];
84
+ normalizePath: (path: string) => string;
85
+ removeRoute: (route: Route<any, any, any>) => void;
86
+ }
87
+ type RouteGroupCondition = (source: RouteGroupSource) => MaybePromise<unknown>;
55
88
  interface FileImporter {
56
89
  <T = unknown>(filePath: string): Promise<T>;
57
90
  <T = unknown>(filePath: string, userOptions?: JitiOptions | undefined): Promise<T>;
@@ -60,4 +93,4 @@ interface FileImporter {
60
93
  })): Promise<T>;
61
94
  }
62
95
  //#endregion
63
- export { ApiResourceMiddleware, ClassMiddleware, ControllerHandler, FileImporter, HttpMethod, MiddlewareHandle, RequestData, ResourceAction, RouteGroupSource, RouterConfig };
96
+ export { ApiResourceMiddleware, ClassMiddleware, FileImporter, HttpMethod, MiddlewareHandle, RequestData, ResourceAction, ResourceRouteDefinition, ResourceRouteRegistrar, ResourceRouteRemover, ResourceRoutesOptions, RouteGroupCondition, RouteGroupContext, RouteGroupOptions, RouteGroupSource, RouterConfig };
@@ -1,3 +1,5 @@
1
+ import { Route } from "../Route.mjs";
2
+ import { AsyncLocalStorage } from "node:async_hooks";
1
3
  import { JitiOptions, JitiResolveOptions } from "jiti";
2
4
 
3
5
  //#region src/types/basic.d.ts
@@ -6,8 +8,9 @@ import { JitiOptions, JitiResolveOptions } from "jiti";
6
8
  */
7
9
  type ControllerHandler = [any, string];
8
10
  type MaybePromise<T = any> = T | Promise<T>;
9
- type RouteGroupCallback = () => MaybePromise<void>;
10
- type RouteGroupSource = RouteGroupCallback | string;
11
+ type RouteGroupCallback = () => MaybePromise<any>;
12
+ type RouteGroupEntry = RouteGroupCallback | string;
13
+ type RouteGroupSource = RouteGroupEntry | RouteGroupEntry[];
11
14
  type MiddlewareHandle<Args extends any[] = any[], Return = any> = (...args: Args) => MaybePromise<Return>;
12
15
  type MiddlewareClass<M extends MiddlewareHandle = MiddlewareHandle> = new () => {
13
16
  handle: M;
@@ -52,6 +55,40 @@ interface RouterConfig {
52
55
  autoDiscover?: boolean;
53
56
  };
54
57
  }
58
+ type ResourceRouteDefinition = {
59
+ method: HttpMethod;
60
+ path: string;
61
+ };
62
+ type ResourceRouteRegistrar<X, M, H> = (input: {
63
+ action: ResourceAction;
64
+ method: HttpMethod;
65
+ path: string;
66
+ handler: any;
67
+ middlewares?: M[];
68
+ name: string;
69
+ }) => Route<X, M, H>;
70
+ type ResourceRouteRemover<X, M, H> = (route: Route<X, M, H>) => void;
71
+ type ResourceRoutesOptions<M = any> = {
72
+ only?: ResourceAction[];
73
+ except?: ResourceAction[];
74
+ middlewares?: ApiResourceMiddleware<M>;
75
+ };
76
+ interface RouteGroupContext {
77
+ prefix: string;
78
+ groupMiddlewares: any[];
79
+ routeCollectors?: Array<Set<Route<any, any, any>>>;
80
+ }
81
+ interface RouteGroupOptions {
82
+ prefix: string;
83
+ source: RouteGroupSource;
84
+ middlewares?: any[];
85
+ context: AsyncLocalStorage<RouteGroupContext>;
86
+ defaultPrefix: string;
87
+ defaultMiddlewares: any[];
88
+ normalizePath: (path: string) => string;
89
+ removeRoute: (route: Route<any, any, any>) => void;
90
+ }
91
+ type RouteGroupCondition = (source: RouteGroupSource) => MaybePromise<unknown>;
55
92
  interface FileImporter {
56
93
  <T = unknown>(filePath: string): Promise<T>;
57
94
  <T = unknown>(filePath: string, userOptions?: JitiOptions | undefined): Promise<T>;
@@ -60,4 +97,4 @@ interface FileImporter {
60
97
  })): Promise<T>;
61
98
  }
62
99
  //#endregion
63
- export { ApiResourceMiddleware, ClassMiddleware, ControllerHandler, FileImporter, HttpMethod, MaybePromise, MiddlewareClass, MiddlewareHandle, MiddlewareInstance, RequestData, ResourceAction, RouteGroupCallback, RouteGroupSource, RouterConfig };
100
+ export { ApiResourceMiddleware, ClassMiddleware, ControllerHandler, FileImporter, HttpMethod, MaybePromise, MiddlewareClass, MiddlewareHandle, MiddlewareInstance, RequestData, ResourceAction, ResourceRouteDefinition, ResourceRouteRegistrar, ResourceRouteRemover, ResourceRoutesOptions, RouteGroupCallback, RouteGroupCondition, RouteGroupContext, RouteGroupEntry, RouteGroupOptions, RouteGroupSource, RouterConfig };
@@ -1,41 +1,7 @@
1
- import { ClassMiddleware, ControllerHandler, MiddlewareHandle } from "./basic.cjs";
2
- import { ClearHttpContext } from "../Contracts.cjs";
3
- import { Response as Response$1 } from "../core/Response.cjs";
4
- import { Request as Request$1 } from "../core/Request.cjs";
1
+ import { ClassMiddleware, MiddlewareHandle } from "./basic.cjs";
5
2
  import { NextFunction, Request, Response } from "express";
6
3
 
7
4
  //#region src/types/express.d.ts
8
- interface RequestWithGetBody extends Request {
9
- getBody: () => Record<string, any>;
10
- }
11
- /**
12
- * HTTP context passed to route handlers
13
- */
14
- interface HttpContext extends ClearHttpContext {
15
- req: RequestWithGetBody;
16
- res: Response;
17
- next: NextFunction;
18
- clearRequest: Request$1;
19
- clearResponse: Response$1;
20
- }
21
- /**
22
- * Route handler function type
23
- */
24
- type RouteHandler = (
25
- /**
26
- * Express context object containing req, res, and next
27
- */
28
-
29
- ctx: HttpContext,
30
- /**
31
- * ClearRequest instance
32
- */
33
-
34
- req: Request$1) => any | Promise<any>;
35
- /**
36
- * Handler can be either a function or controller reference
37
- */
38
- type Handler = RouteHandler | ControllerHandler;
39
5
  /**
40
6
  * Middleware function type
41
7
  */
@@ -45,4 +11,4 @@ type MiddlewareFunction = MiddlewareHandle<[Request, Response, NextFunction]>;
45
11
  */
46
12
  type Middleware = MiddlewareFunction | ClassMiddleware<MiddlewareFunction>;
47
13
  //#endregion
48
- export { Handler, HttpContext, Middleware };
14
+ export { Middleware };
@@ -1,6 +1,6 @@
1
- import { ClassMiddleware, ControllerHandler, MiddlewareHandle } from "./basic.mjs";
2
1
  import { ClearHttpContext } from "../Contracts.mjs";
3
2
  import { Response as Response$1 } from "../core/Response.mjs";
3
+ import { ClassMiddleware, ControllerHandler, MiddlewareHandle } from "./basic.mjs";
4
4
  import { Request as Request$1 } from "../core/Request.mjs";
5
5
  import { NextFunction, Request, Response } from "express";
6
6
 
@@ -1,24 +1,12 @@
1
- import { ClassMiddleware, ControllerHandler, MiddlewareHandle } from "./basic.cjs";
2
- import { ClearHttpContext } from "../Contracts.cjs";
3
- import { Response } from "../core/Response.cjs";
4
- import { Request } from "../core/Request.cjs";
5
- import { FastifyInstance, FastifyReply, FastifyRequest } from "fastify";
1
+ import { ClassMiddleware, MiddlewareHandle } from "./basic.cjs";
2
+ import { FastifyReply, FastifyRequest } from "fastify";
6
3
 
7
4
  //#region src/types/fastify.d.ts
8
5
  interface RequestWithGetBody extends FastifyRequest {
9
6
  getBody: () => Record<string, any>;
10
7
  }
11
- interface HttpContext extends ClearHttpContext {
12
- req: RequestWithGetBody;
13
- reply: FastifyReply;
14
- clearRequest: Request;
15
- clearResponse: Response;
16
- }
17
- type RouteHandler = (ctx: HttpContext, req: Request) => any | Promise<any>;
18
- type Handler = RouteHandler | ControllerHandler;
19
8
  type NextFunction = (err?: Error) => void;
20
9
  type MiddlewareFunction = MiddlewareHandle<[req: RequestWithGetBody, reply: FastifyReply, next: NextFunction]>;
21
10
  type Middleware = MiddlewareFunction | ClassMiddleware<MiddlewareFunction>;
22
- type FastifyApp = FastifyInstance;
23
11
  //#endregion
24
- export { FastifyApp, Handler, HttpContext, Middleware };
12
+ export { Middleware };
@@ -1,6 +1,6 @@
1
- import { ClassMiddleware, ControllerHandler, MiddlewareHandle } from "./basic.mjs";
2
1
  import { ClearHttpContext } from "../Contracts.mjs";
3
2
  import { Response } from "../core/Response.mjs";
3
+ import { ClassMiddleware, ControllerHandler, MiddlewareHandle } from "./basic.mjs";
4
4
  import { Request } from "../core/Request.mjs";
5
5
  import { FastifyInstance, FastifyReply, FastifyRequest } from "fastify";
6
6