@arikajs/dispatcher 0.10.6 → 0.10.8
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/Dispatcher.d.ts +9 -1
- package/dist/Dispatcher.d.ts.map +1 -1
- package/dist/Dispatcher.js +90 -50
- package/dist/Dispatcher.js.map +1 -1
- package/dist/MethodInvoker.d.ts +1 -1
- package/dist/MethodInvoker.d.ts.map +1 -1
- package/dist/MethodInvoker.js +59 -7
- package/dist/MethodInvoker.js.map +1 -1
- package/dist/ResponseResolver.js +1 -1
- package/dist/ResponseResolver.js.map +1 -1
- package/package.json +3 -2
package/dist/Dispatcher.d.ts
CHANGED
|
@@ -35,7 +35,15 @@ export declare class Dispatcher {
|
|
|
35
35
|
/**
|
|
36
36
|
* Dispatch the matched route to its handler.
|
|
37
37
|
*/
|
|
38
|
-
dispatch(matchedRoute: MatchedRoute, request: Request, response: Response): Promise<Response
|
|
38
|
+
dispatch(matchedRoute: MatchedRoute, request: Request, response: Response): Promise<Response> | Response;
|
|
39
|
+
/**
|
|
40
|
+
* Internal execution of the route plan.
|
|
41
|
+
*/
|
|
42
|
+
private execute;
|
|
43
|
+
/**
|
|
44
|
+
* Handle an exception using the registered handler or rethrow.
|
|
45
|
+
*/
|
|
46
|
+
private handleException;
|
|
39
47
|
/**
|
|
40
48
|
* Resolve route parameters using registered binders.
|
|
41
49
|
*/
|
package/dist/Dispatcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../src/Dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,qBAAa,UAAU;IAUP,OAAO,CAAC,SAAS,CAAC;IAT9B,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,gBAAgB,CAAwD;IAChF,OAAO,CAAC,gBAAgB,CAAC,CAA4D;IAC9E,cAAc,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;gBAE7B,SAAS,CAAC,EAAE,GAAG,YAAA;IAQ5B,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"Dispatcher.d.ts","sourceRoot":"","sources":["../src/Dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMlD,qBAAa,UAAU;IAUP,OAAO,CAAC,SAAS,CAAC;IAT9B,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,gBAAgB,CAAwD;IAChF,OAAO,CAAC,gBAAgB,CAAC,CAA4D;IAC9E,cAAc,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAa;gBAE7B,SAAS,CAAC,EAAE,GAAG,YAAA;IAQ5B,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE;IA6D/B;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAezC;;OAEG;IACI,mBAAmB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,KAAK,GAAG,GAAG,IAAI;IAKpG;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI;IAa/D;;OAEG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAahE;;OAEG;IACI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAS7C;;OAEG;IACI,QAAQ,CACX,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ;IAyB/B;;OAEG;IACH,OAAO,CAAC,OAAO;IAuEf;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;YACW,iBAAiB;CAYlC"}
|
package/dist/Dispatcher.js
CHANGED
|
@@ -49,13 +49,22 @@ class Dispatcher {
|
|
|
49
49
|
resolvedHandler = handler;
|
|
50
50
|
}
|
|
51
51
|
const hasMiddleware = (route.middleware && route.middleware.length > 0) || (controllerMiddleware && controllerMiddleware.length > 0);
|
|
52
|
+
const middleware = hasMiddleware ? [...(route.middleware || []), ...(controllerMiddleware || [])] : [];
|
|
53
|
+
let pipeline = null;
|
|
54
|
+
if (hasMiddleware) {
|
|
55
|
+
pipeline = new middleware_1.Pipeline(this.container);
|
|
56
|
+
pipeline.setMiddlewareGroups(this.middlewareGroups);
|
|
57
|
+
pipeline.setAliases(this.routeMiddleware);
|
|
58
|
+
pipeline.pipe(middleware);
|
|
59
|
+
}
|
|
52
60
|
this.executionPlans.set(route, {
|
|
53
61
|
route,
|
|
54
62
|
hasMiddleware,
|
|
55
63
|
controllerMiddleware,
|
|
56
64
|
resolvedHandler,
|
|
65
|
+
pipeline,
|
|
57
66
|
handler: (req, res, params) => this.invoker.invoke(resolvedHandler, req, res, params),
|
|
58
|
-
middleware
|
|
67
|
+
middleware
|
|
59
68
|
});
|
|
60
69
|
// Pre-serialize simple responses if possible (only if handler takes no arguments)
|
|
61
70
|
if (!hasMiddleware && typeof resolvedHandler === 'function' && resolvedHandler.length === 0) {
|
|
@@ -76,6 +85,12 @@ class Dispatcher {
|
|
|
76
85
|
this.container = container;
|
|
77
86
|
this.controllerResolver = new ControllerResolver_1.ControllerResolver(container);
|
|
78
87
|
this.invoker.setContainer(container);
|
|
88
|
+
// Update existing execution plans with the new container
|
|
89
|
+
for (const plan of this.executionPlans.values()) {
|
|
90
|
+
if (plan.pipeline) {
|
|
91
|
+
plan.pipeline.container = container;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
79
94
|
return this;
|
|
80
95
|
}
|
|
81
96
|
/**
|
|
@@ -90,6 +105,12 @@ class Dispatcher {
|
|
|
90
105
|
*/
|
|
91
106
|
setMiddlewareGroups(groups) {
|
|
92
107
|
this.middlewareGroups = groups;
|
|
108
|
+
// Update existing execution plans
|
|
109
|
+
for (const plan of this.executionPlans.values()) {
|
|
110
|
+
if (plan.pipeline) {
|
|
111
|
+
plan.pipeline.setMiddlewareGroups(groups);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
93
114
|
return this;
|
|
94
115
|
}
|
|
95
116
|
/**
|
|
@@ -97,6 +118,12 @@ class Dispatcher {
|
|
|
97
118
|
*/
|
|
98
119
|
setRouteMiddleware(middleware) {
|
|
99
120
|
this.routeMiddleware = middleware;
|
|
121
|
+
// Update existing execution plans
|
|
122
|
+
for (const plan of this.executionPlans.values()) {
|
|
123
|
+
if (plan.pipeline) {
|
|
124
|
+
plan.pipeline.setAliases(middleware);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
100
127
|
return this;
|
|
101
128
|
}
|
|
102
129
|
/**
|
|
@@ -114,50 +141,47 @@ class Dispatcher {
|
|
|
114
141
|
/**
|
|
115
142
|
* Dispatch the matched route to its handler.
|
|
116
143
|
*/
|
|
117
|
-
|
|
144
|
+
dispatch(matchedRoute, request, response) {
|
|
118
145
|
const { route, params } = matchedRoute;
|
|
119
|
-
|
|
120
|
-
|
|
146
|
+
// Lazy-params: If params is an array, we'll map it only when requested
|
|
147
|
+
const paramValues = Array.isArray(params) ? params : Object.values(params);
|
|
121
148
|
if (typeof request.setParams === 'function') {
|
|
149
|
+
// Internally, our Request object now handles both array and record
|
|
122
150
|
request.setParams(params);
|
|
123
151
|
}
|
|
124
152
|
if (typeof request.setRoute === 'function') {
|
|
125
153
|
request.setRoute(route);
|
|
126
154
|
}
|
|
127
|
-
// NEW: FormRequest Handling
|
|
128
|
-
if (route._formRequest) {
|
|
129
|
-
const FormRequestClass = route._formRequest;
|
|
130
|
-
const formRequest = new FormRequestClass(request.getApplication(), request.getRaw());
|
|
131
|
-
// Transfer existing state
|
|
132
|
-
formRequest.setParams(params);
|
|
133
|
-
formRequest.setRoute(route);
|
|
134
|
-
formRequest.setBody(request.body());
|
|
135
|
-
formRequest.session = request.session;
|
|
136
|
-
formRequest.auth = request.auth;
|
|
137
|
-
formRequest.view = request.view;
|
|
138
|
-
// Trigger validation
|
|
139
|
-
await formRequest.validateForm();
|
|
140
|
-
// Replace original request with our specialized FormRequest
|
|
141
|
-
request = formRequest;
|
|
142
|
-
}
|
|
143
155
|
// 0. Resolve Route Parameters (Model Binding) - only if we have binders
|
|
144
|
-
|
|
145
|
-
|
|
156
|
+
if (this.parameterBinders.size > 0 && !Array.isArray(params)) {
|
|
157
|
+
return this.resolveParameters(params).then(resolvedParams => {
|
|
158
|
+
return this.execute(route, request, response, resolvedParams);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
return this.execute(route, request, response, params);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Internal execution of the route plan.
|
|
165
|
+
*/
|
|
166
|
+
execute(route, request, response, params) {
|
|
167
|
+
// 1. Resolve Handler & Pipeline from Execution Plan
|
|
146
168
|
let resolvedHandler;
|
|
147
|
-
let
|
|
169
|
+
let pipeline = null;
|
|
148
170
|
const plan = this.executionPlans.get(route);
|
|
149
171
|
if (plan) {
|
|
150
172
|
resolvedHandler = plan.resolvedHandler;
|
|
151
|
-
|
|
173
|
+
pipeline = plan.pipeline;
|
|
152
174
|
}
|
|
153
175
|
else {
|
|
176
|
+
// Fallback for non-plan routes (safety)
|
|
177
|
+
const handler = route.handler;
|
|
178
|
+
let controllerMiddleware = [];
|
|
154
179
|
if (Array.isArray(handler)) {
|
|
155
180
|
if (!this.controllerResolver) {
|
|
156
181
|
throw new Error('Container required for controller resolution.');
|
|
157
182
|
}
|
|
158
183
|
const resolved = this.controllerResolver.resolve(handler);
|
|
159
184
|
resolvedHandler = resolved;
|
|
160
|
-
// Extract controller-level middleware
|
|
161
185
|
if (typeof resolved.controller.getMiddleware === 'function') {
|
|
162
186
|
controllerMiddleware = resolved.controller.getMiddleware() || [];
|
|
163
187
|
}
|
|
@@ -171,37 +195,53 @@ class Dispatcher {
|
|
|
171
195
|
else {
|
|
172
196
|
throw new Error('Invalid route handler.');
|
|
173
197
|
}
|
|
198
|
+
const middleware = [...(route.middleware || []), ...controllerMiddleware];
|
|
199
|
+
if (middleware.length > 0) {
|
|
200
|
+
pipeline = new middleware_1.Pipeline(this.container);
|
|
201
|
+
pipeline.setMiddlewareGroups(this.middlewareGroups);
|
|
202
|
+
pipeline.setAliases(this.routeMiddleware);
|
|
203
|
+
pipeline.pipe(middleware);
|
|
204
|
+
}
|
|
174
205
|
}
|
|
175
|
-
// 2.
|
|
176
|
-
const pipeline = new middleware_1.Pipeline(this.container);
|
|
177
|
-
if (plan && plan.hasMiddleware) {
|
|
178
|
-
pipeline.pipe(plan.middleware);
|
|
179
|
-
}
|
|
180
|
-
else if (!plan) {
|
|
181
|
-
// Fallback for non-plan routes
|
|
182
|
-
if (route.middleware)
|
|
183
|
-
pipeline.pipe(route.middleware);
|
|
184
|
-
if (controllerMiddleware)
|
|
185
|
-
pipeline.pipe(controllerMiddleware);
|
|
186
|
-
}
|
|
187
|
-
pipeline.setMiddlewareGroups(this.middlewareGroups);
|
|
188
|
-
pipeline.setAliases(this.routeMiddleware);
|
|
189
|
-
// 3. Execute Pipeline
|
|
206
|
+
// 2. Execute Pipeline or direct handler
|
|
190
207
|
try {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
const result =
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
208
|
+
const executeAndResolve = (req, res) => {
|
|
209
|
+
const finalRes = res || response;
|
|
210
|
+
const result = this.invoker.invoke(resolvedHandler, req, finalRes, params, route);
|
|
211
|
+
if (result instanceof Promise) {
|
|
212
|
+
return result.then(r => this.responseResolver.resolve(r, finalRes, route));
|
|
213
|
+
}
|
|
214
|
+
return this.responseResolver.resolve(result, finalRes, route);
|
|
215
|
+
};
|
|
216
|
+
if (pipeline) {
|
|
217
|
+
const result = pipeline.handle(request, executeAndResolve, response);
|
|
218
|
+
if (result instanceof Promise) {
|
|
219
|
+
return result.catch(error => this.handleException(error, request, response));
|
|
220
|
+
}
|
|
221
|
+
return result;
|
|
222
|
+
}
|
|
223
|
+
const result = executeAndResolve(request, response);
|
|
224
|
+
if (result instanceof Promise) {
|
|
225
|
+
return result.catch(error => this.handleException(error, request, response));
|
|
226
|
+
}
|
|
227
|
+
return result;
|
|
197
228
|
}
|
|
198
229
|
catch (error) {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
230
|
+
return this.handleException(error, request, response);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Handle an exception using the registered handler or rethrow.
|
|
235
|
+
*/
|
|
236
|
+
handleException(error, request, response) {
|
|
237
|
+
if (this.exceptionHandler) {
|
|
238
|
+
const result = this.exceptionHandler(error, request, response);
|
|
239
|
+
if (result instanceof Promise) {
|
|
240
|
+
return result.then(r => this.responseResolver.resolve(r, response));
|
|
202
241
|
}
|
|
203
|
-
|
|
242
|
+
return this.responseResolver.resolve(result, response);
|
|
204
243
|
}
|
|
244
|
+
throw error;
|
|
205
245
|
}
|
|
206
246
|
/**
|
|
207
247
|
* Resolve route parameters using registered binders.
|
package/dist/Dispatcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dispatcher.js","sourceRoot":"","sources":["../src/Dispatcher.ts"],"names":[],"mappings":";;;AAEA,6DAA0D;AAC1D,mDAAgD;AAChD,yDAAsD;AACtD,oDAA+C;AAE/C,MAAa,UAAU;IAUnB,YAAoB,SAAe;QAAf,cAAS,GAAT,SAAS,CAAM;QAN3B,qBAAgB,GAA0B,EAAE,CAAC;QAC7C,oBAAe,GAAwB,EAAE,CAAC;QAC1C,qBAAgB,GAA8C,IAAI,GAAG,EAAE,CAAC;QAEzE,mBAAc,GAAkB,IAAI,GAAG,EAAE,CAAC;QAG7C,IAAI,CAAC,OAAO,GAAG,IAAI,6BAAa,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAgB,EAAE,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAkB,CAAC,SAAS,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,MAAa;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,eAAoB,CAAC;YACzB,IAAI,oBAAoB,GAAU,EAAE,CAAC;YAErC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC1D,eAAe,GAAG,QAAQ,CAAC;wBAC3B,IAAI,OAAO,QAAQ,CAAC,UAAU,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;4BAC1D,oBAAoB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;wBACrE,CAAC;6BAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;4BACvF,oBAAoB,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC;wBACtE,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,0DAA0D;wBAC1D,SAAS;oBACb,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,SAAS;gBACb,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,eAAe,GAAG,OAAO,CAAC;YAC9B,CAAC;YAED,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Dispatcher.js","sourceRoot":"","sources":["../src/Dispatcher.ts"],"names":[],"mappings":";;;AAEA,6DAA0D;AAC1D,mDAAgD;AAChD,yDAAsD;AACtD,oDAA+C;AAE/C,MAAa,UAAU;IAUnB,YAAoB,SAAe;QAAf,cAAS,GAAT,SAAS,CAAM;QAN3B,qBAAgB,GAA0B,EAAE,CAAC;QAC7C,oBAAe,GAAwB,EAAE,CAAC;QAC1C,qBAAgB,GAA8C,IAAI,GAAG,EAAE,CAAC;QAEzE,mBAAc,GAAkB,IAAI,GAAG,EAAE,CAAC;QAG7C,IAAI,CAAC,OAAO,GAAG,IAAI,6BAAa,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,mCAAgB,EAAE,CAAC;QAC/C,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAkB,CAAC,SAAS,CAAC,CAAC;QAChE,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,MAAa;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,eAAoB,CAAC;YACzB,IAAI,oBAAoB,GAAU,EAAE,CAAC;YAErC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,IAAI,CAAC;wBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC1D,eAAe,GAAG,QAAQ,CAAC;wBAC3B,IAAI,OAAO,QAAQ,CAAC,UAAU,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;4BAC1D,oBAAoB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;wBACrE,CAAC;6BAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;4BACvF,oBAAoB,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC;wBACtE,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,0DAA0D;wBAC1D,SAAS;oBACb,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,SAAS;gBACb,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,eAAe,GAAG,OAAO,CAAC;YAC9B,CAAC;YAED,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrI,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAEvG,IAAI,QAAQ,GAAuC,IAAI,CAAC;YACxD,IAAI,aAAa,EAAE,CAAC;gBAChB,QAAQ,GAAG,IAAI,qBAAQ,CAAoB,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3D,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACpD,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC1C,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE;gBAC3B,KAAK;gBACL,aAAa;gBACb,oBAAoB;gBACpB,eAAe;gBACf,QAAQ;gBACR,OAAO,EAAE,CAAC,GAAQ,EAAE,GAAQ,EAAE,MAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC;gBACpG,UAAU;aACb,CAAC,CAAC;YAEH,kFAAkF;YAClF,IAAI,CAAC,aAAa,IAAI,OAAO,eAAe,KAAK,UAAU,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1F,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;oBACjC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,YAAY,OAAO,CAAC,EAAE,CAAC;wBACvE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;oBACtF,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACnB,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,SAAc;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAkB,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAErC,yDAAyD;QACzD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,IAAI,CAAC,QAAgB,CAAC,SAAS,GAAG,SAAS,CAAC;YACjD,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAC,OAAkE;QACzF,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;QAChC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAC,MAA6B;QACpD,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAE/B,kCAAkC;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,UAA+B;QACrD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAElC,kCAAkC;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,GAAW,EAAE,QAAa;QAClC,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACxD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,QAAQ,CACX,YAA0B,EAC1B,OAAgB,EAChB,QAAkB;QAElB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QAEvC,uEAAuE;QACvE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE3E,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAC1C,mEAAmE;YACnE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,OAAQ,OAAe,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACjD,OAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,wEAAwE;QACxE,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;gBACxD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACK,OAAO,CAAC,KAAU,EAAE,OAAgB,EAAE,QAAkB,EAAE,MAAW;QACzE,oDAAoD;QACpD,IAAI,eAAoB,CAAC;QACzB,IAAI,QAAQ,GAAuC,IAAI,CAAC;QAExD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE,CAAC;YACP,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YACvC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,CAAC;aAAM,CAAC;YACJ,wCAAwC;YACxC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,IAAI,oBAAoB,GAAU,EAAE,CAAC;YAErC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC1D,eAAe,GAAG,QAAQ,CAAC;gBAE3B,IAAI,OAAO,QAAQ,CAAC,UAAU,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;oBAC1D,oBAAoB,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;gBACrE,CAAC;qBAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;oBACvF,oBAAoB,GAAG,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC;gBACtE,CAAC;YACL,CAAC;iBAAM,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBACvC,eAAe,GAAG,OAAO,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,GAAG,oBAAoB,CAAC,CAAC;YAC1E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,GAAG,IAAI,qBAAQ,CAAoB,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3D,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACpD,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC1C,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACL,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACD,MAAM,iBAAiB,GAAG,CAAC,GAAY,EAAE,GAAc,EAAgC,EAAE;gBACrF,MAAM,QAAQ,GAAG,GAAG,IAAI,QAAQ,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;gBAElF,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;oBAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC/E,CAAC;gBACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClE,CAAC,CAAC;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,iBAAwB,EAAE,QAAQ,CAAC,CAAC;gBAC5E,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;oBAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACjF,CAAC;gBACD,OAAO,MAAM,CAAC;YAClB,CAAC;YAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpD,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC5B,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;IACL,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAAU,EAAE,OAAgB,EAAE,QAAkB;QACpE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,MAA2B;QACvD,MAAM,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;gBACjD,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;CACJ;AA5RD,gCA4RC"}
|
package/dist/MethodInvoker.d.ts
CHANGED
|
@@ -9,6 +9,6 @@ export declare class MethodInvoker {
|
|
|
9
9
|
invoke(handler: Function | {
|
|
10
10
|
controller: any;
|
|
11
11
|
method: string;
|
|
12
|
-
}, request: Request, response: Response, params:
|
|
12
|
+
}, request: Request, response: Response, params: any, route?: any): Promise<any>;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=MethodInvoker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MethodInvoker.d.ts","sourceRoot":"","sources":["../src/MethodInvoker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAErD,qBAAa,aAAa;IACV,OAAO,CAAC,SAAS,CAAC;gBAAV,SAAS,CAAC,EAAE,GAAG,YAAA;IAE5B,YAAY,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAKzC;;OAEG;IACU,MAAM,CACf,OAAO,EAAE,QAAQ,GAAG;QAAE,UAAU,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EACvD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"MethodInvoker.d.ts","sourceRoot":"","sources":["../src/MethodInvoker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAErD,qBAAa,aAAa;IACV,OAAO,CAAC,SAAS,CAAC;gBAAV,SAAS,CAAC,EAAE,GAAG,YAAA;IAE5B,YAAY,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IAKzC;;OAEG;IACU,MAAM,CACf,OAAO,EAAE,QAAQ,GAAG;QAAE,UAAU,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EACvD,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,GAAG,EACX,KAAK,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,GAAG,CAAC;CAsElB"}
|
package/dist/MethodInvoker.js
CHANGED
|
@@ -12,16 +12,68 @@ class MethodInvoker {
|
|
|
12
12
|
/**
|
|
13
13
|
* Invoke the handler (closure or controller method) with injected parameters.
|
|
14
14
|
*/
|
|
15
|
-
async invoke(handler, request, response, params) {
|
|
16
|
-
|
|
15
|
+
async invoke(handler, request, response, params, route) {
|
|
16
|
+
const paramValues = Array.isArray(params) ? params : (params ? Object.values(params) : []);
|
|
17
|
+
let targetController = null;
|
|
18
|
+
let targetMethod = handler;
|
|
19
|
+
let methodKey = '';
|
|
20
|
+
if (typeof handler === 'object' && 'controller' in handler) {
|
|
21
|
+
targetController = handler.controller;
|
|
22
|
+
targetMethod = targetController[handler.method];
|
|
23
|
+
methodKey = handler.method;
|
|
24
|
+
}
|
|
25
|
+
// 1. Advanced DI via Container (if available)
|
|
17
26
|
if (this.container && typeof this.container.call === 'function') {
|
|
18
|
-
return
|
|
27
|
+
return this.container.call(handler, { request, response, ...params });
|
|
28
|
+
}
|
|
29
|
+
// 2. Intelligent Parameter Injection for Form Requests
|
|
30
|
+
const args = [];
|
|
31
|
+
let injectTypes = [];
|
|
32
|
+
let formRequestClass = route?._formRequest;
|
|
33
|
+
// Try to get metadata if reflecting is available (only works if controller has decorators)
|
|
34
|
+
if (!formRequestClass && targetController && typeof Reflect !== 'undefined' && Reflect.getMetadata) {
|
|
35
|
+
injectTypes = Reflect.getMetadata('design:paramtypes', targetController, methodKey) || [];
|
|
36
|
+
formRequestClass = injectTypes[0];
|
|
37
|
+
}
|
|
38
|
+
// Detect if it's a FormRequest by checking for the validateForm method on the class prototype
|
|
39
|
+
if (formRequestClass && formRequestClass.prototype && typeof formRequestClass.prototype.validateForm === 'function') {
|
|
40
|
+
// Instantiate the Form Request
|
|
41
|
+
const formRequest = new formRequestClass(request.getApplication(), request.getIncomingMessage());
|
|
42
|
+
// Sync current request state to the new Form Request instance
|
|
43
|
+
if (typeof formRequest.reset === 'function')
|
|
44
|
+
formRequest.reset(request.getIncomingMessage());
|
|
45
|
+
// Sync middleware-attached state (Crucial for Auth and Session)
|
|
46
|
+
if (request.session)
|
|
47
|
+
formRequest.session = request.session;
|
|
48
|
+
if (request.auth)
|
|
49
|
+
formRequest.auth = request.auth;
|
|
50
|
+
if (request.view)
|
|
51
|
+
formRequest.view = request.view;
|
|
52
|
+
if (typeof formRequest.setBody === 'function')
|
|
53
|
+
formRequest.setBody(request.body());
|
|
54
|
+
if (typeof formRequest.setFiles === 'function')
|
|
55
|
+
formRequest.setFiles(request.files());
|
|
56
|
+
if (typeof formRequest.setParams === 'function')
|
|
57
|
+
formRequest.setParams(request.params());
|
|
58
|
+
// Link the route object if possible
|
|
59
|
+
if (typeof formRequest.setRoute === 'function') {
|
|
60
|
+
formRequest.setRoute(route);
|
|
61
|
+
}
|
|
62
|
+
// Run validation (This may throw a ValidationError handled by the Exception Handler)
|
|
63
|
+
await formRequest.validateForm();
|
|
64
|
+
args.push(formRequest);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Fallback to base request
|
|
68
|
+
args.push(request);
|
|
19
69
|
}
|
|
20
|
-
|
|
21
|
-
|
|
70
|
+
args.push(response);
|
|
71
|
+
args.push(...paramValues);
|
|
72
|
+
// 3. Final Execution
|
|
73
|
+
if (targetController) {
|
|
74
|
+
return targetMethod.apply(targetController, args);
|
|
22
75
|
}
|
|
23
|
-
|
|
24
|
-
return await controller[method](request, response, ...Object.values(params));
|
|
76
|
+
return targetMethod(...args);
|
|
25
77
|
}
|
|
26
78
|
}
|
|
27
79
|
exports.MethodInvoker = MethodInvoker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MethodInvoker.js","sourceRoot":"","sources":["../src/MethodInvoker.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IACtB,YAAoB,SAAe;QAAf,cAAS,GAAT,SAAS,CAAM;IAAI,CAAC;IAEjC,YAAY,CAAC,SAAc;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM,CACf,OAAuD,EACvD,OAAgB,EAChB,QAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"MethodInvoker.js","sourceRoot":"","sources":["../src/MethodInvoker.ts"],"names":[],"mappings":"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"}
|
package/dist/ResponseResolver.js
CHANGED
|
@@ -26,7 +26,7 @@ class ResponseResolver {
|
|
|
26
26
|
return response.send(rendered);
|
|
27
27
|
}
|
|
28
28
|
// If it's a native stream, map to the response's stream handler if supported
|
|
29
|
-
if (value instanceof stream_1.Stream) {
|
|
29
|
+
if (value instanceof stream_1.Stream || (value && typeof value.getReader === 'function')) {
|
|
30
30
|
if (typeof response.stream === 'function') {
|
|
31
31
|
return response.stream(value);
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseResolver.js","sourceRoot":"","sources":["../src/ResponseResolver.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAEhC,MAAa,gBAAgB;IAA7B;QACW,gBAAW,GAAqB,IAAI,GAAG,EAAE,CAAC;IAiDrD,CAAC;IA/CG;;OAEG;IACI,OAAO,CAAC,KAAU,EAAE,QAAkB,EAAE,KAAW;QACtD,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC;QACvD,CAAC;QACD,4CAA4C;QAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,oDAAoD;QACpD,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,QAAQ,YAAY,OAAO,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,6EAA6E;QAC7E,IAAI,KAAK,YAAY,eAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ResponseResolver.js","sourceRoot":"","sources":["../src/ResponseResolver.ts"],"names":[],"mappings":";;;AACA,mCAAgC;AAEhC,MAAa,gBAAgB;IAA7B;QACW,gBAAW,GAAqB,IAAI,GAAG,EAAE,CAAC;IAiDrD,CAAC;IA/CG;;OAEG;IACI,OAAO,CAAC,KAAU,EAAE,QAAkB,EAAE,KAAW;QACtD,IAAI,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC;QACvD,CAAC;QACD,4CAA4C;QAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,oDAAoD;QACpD,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,QAAQ,YAAY,OAAO,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,6EAA6E;QAC7E,IAAI,KAAK,YAAY,eAAM,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,EAAE,CAAC;YAC9E,IAAI,OAAO,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACxC,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;YACD,qDAAqD;YACrD,OAAO,KAAY,CAAC;QACxB,CAAC;QAED,qFAAqF;QACrF,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACzE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC9C,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,6CAA6C;QAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,+BAA+B;QAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC;CACJ;AAlDD,4CAkDC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arikajs/dispatcher",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.8",
|
|
4
4
|
"description": "Request dispatching and handler execution layer of the ArikaJS framework.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,10 +29,11 @@
|
|
|
29
29
|
},
|
|
30
30
|
"homepage": "https://github.com/ArikaJs/arikajs/tree/main/packages/dispatcher#readme",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@arikajs/middleware": "0.10.
|
|
32
|
+
"@arikajs/middleware": "0.10.8"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^20.11.24",
|
|
36
|
+
"tsx": "^4.7.1",
|
|
36
37
|
"typescript": "^5.3.3"
|
|
37
38
|
},
|
|
38
39
|
"author": "Prakash Tank",
|