arckode-framework 1.0.6 → 1.0.7

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.
@@ -1062,12 +1062,26 @@ export class Router {
1062
1062
  })
1063
1063
  }
1064
1064
 
1065
- get(path: string, handler: RouteHandler, mw?: MiddlewareHandler[]): void { this.add('GET', path, handler, mw) }
1066
- post(path: string, handler: RouteHandler, mw?: MiddlewareHandler[]): void { this.add('POST', path, handler, mw) }
1067
- put(path: string, handler: RouteHandler, mw?: MiddlewareHandler[]): void { this.add('PUT', path, handler, mw) }
1068
- patch(path: string, handler: RouteHandler, mw?: MiddlewareHandler[]): void { this.add('PATCH', path, handler, mw) }
1069
- delete(path: string, handler: RouteHandler, mw?: MiddlewareHandler[]): void { this.add('DELETE', path, handler, mw) }
1070
- options(path: string, handler: RouteHandler, mw?: MiddlewareHandler[]): void { this.add('OPTIONS', path, handler, mw) }
1065
+ // Acepta ambas convenciones:
1066
+ // (path, handler) sin middlewares
1067
+ // (path, handler, mw[]) handler primero (legado)
1068
+ // (path, mw[], handler) middlewares primero (Express-like, convención del framework)
1069
+ private resolve2(
1070
+ handlerOrMw: RouteHandler | MiddlewareHandler[],
1071
+ handlerOrUndefined?: RouteHandler | MiddlewareHandler[],
1072
+ ): { handler: RouteHandler; mw: MiddlewareHandler[] } {
1073
+ if (Array.isArray(handlerOrMw)) {
1074
+ return { handler: handlerOrUndefined as RouteHandler, mw: handlerOrMw }
1075
+ }
1076
+ return { handler: handlerOrMw, mw: (handlerOrUndefined as MiddlewareHandler[] | undefined) ?? [] }
1077
+ }
1078
+
1079
+ get(path: string, handlerOrMw: RouteHandler | MiddlewareHandler[], h?: RouteHandler | MiddlewareHandler[]): void { const { handler, mw } = this.resolve2(handlerOrMw, h); this.add('GET', path, handler, mw) }
1080
+ post(path: string, handlerOrMw: RouteHandler | MiddlewareHandler[], h?: RouteHandler | MiddlewareHandler[]): void { const { handler, mw } = this.resolve2(handlerOrMw, h); this.add('POST', path, handler, mw) }
1081
+ put(path: string, handlerOrMw: RouteHandler | MiddlewareHandler[], h?: RouteHandler | MiddlewareHandler[]): void { const { handler, mw } = this.resolve2(handlerOrMw, h); this.add('PUT', path, handler, mw) }
1082
+ patch(path: string, handlerOrMw: RouteHandler | MiddlewareHandler[], h?: RouteHandler | MiddlewareHandler[]): void { const { handler, mw } = this.resolve2(handlerOrMw, h); this.add('PATCH', path, handler, mw) }
1083
+ delete(path: string, handlerOrMw: RouteHandler | MiddlewareHandler[], h?: RouteHandler | MiddlewareHandler[]): void { const { handler, mw } = this.resolve2(handlerOrMw, h); this.add('DELETE', path, handler, mw) }
1084
+ options(path: string, handlerOrMw: RouteHandler | MiddlewareHandler[], h?: RouteHandler | MiddlewareHandler[]): void { const { handler, mw } = this.resolve2(handlerOrMw, h); this.add('OPTIONS', path, handler, mw) }
1071
1085
 
1072
1086
  async resolve(method: string, path: string, extras?: Partial<HttpRequest>): Promise<HttpResponse> {
1073
1087
  const reqId = crypto.randomUUID().slice(0, 8)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arckode-framework",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "AI-first TypeScript/Bun framework. Modular, SOLID, zero magic. The AI reads the composition root and knows everything.",
5
5
  "type": "module",
6
6
  "main": "./kernel/framework.ts",