MCPcopy Index your code
hub / github.com/hydro-dev/Hydro / executeMiddlewareStack

Function executeMiddlewareStack

framework/framework/server.ts:320–341  ·  view source on GitHub ↗
(context: any, middlewares: LayerEntry[])

Source from the content-addressed store, hash-verified

318}
319
320function executeMiddlewareStack(context: any, middlewares: LayerEntry[]): Promise<void> {
321 let index = -1;
322 context.__timers ||= {};
323 function dispatch(i) {
324 if (i <= index) return Promise.reject(new Error('next() called multiple times'));
325 index = i;
326 if (!middlewares[i]) return Promise.resolve();
327 const name = middlewares[i].name;
328 const fn = middlewares[i].func;
329 context.__timers[`${name}.start`] = Date.now();
330 try {
331 return Promise.resolve(fn(context, dispatch.bind(null, i + 1))).finally(() => {
332 context.__timers[`${name}.end`] = Date.now();
333 });
334 } catch (e) {
335 return Promise.reject(e);
336 } finally {
337 context.__timers[`${name}.end`] = Date.now();
338 }
339 }
340 return dispatch(0);
341}
342
343export class WebService extends Service<never> {
344 static Config = Schema.object({

Callers 1

constructorMethod · 0.85

Calls 1

dispatchFunction · 0.85

Tested by

no test coverage detected