{"version":3,"sources":["../../src/helpers.mts"],"sourcesContent":["import { Middleware } from './Middleware.mjs';\nimport type { Request, Response } from './types.mjs';\n\nexport async function runNext(\n  middlewares: Middleware[],\n  req: Request,\n  res: Response,\n  final: (request: Request, response: Response) => Promise<void>\n) {\n  let index = 0;\n\n  async function next() {\n    if (index >= middlewares.length) {\n      return await final(req, res);\n    }\n\n    const middleware: Middleware | any = middlewares[index++];\n\n    if (middleware instanceof Middleware) {\n      await middleware.call(req, res, next);\n    } else if (typeof middleware === 'function') {\n      await middleware(req, res, next);\n    } else {\n      throw new Error('does not know how to run middleware');\n    }\n  }\n\n  await next();\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAG3B,eAAsB,QACpB,aACA,KACA,KACA,OACA;AACA,MAAI,QAAQ;AAEZ,iBAAe,OAAO;AACpB,QAAI,SAAS,YAAY,QAAQ;AAC/B,aAAO,MAAM,MAAM,KAAK,GAAG;AAAA,IAC7B;AAEA,UAAM,aAA+B,YAAY,OAAO;AAExD,QAAI,sBAAsB,YAAY;AACpC,YAAM,WAAW,KAAK,KAAK,KAAK,IAAI;AAAA,IACtC,WAAW,OAAO,eAAe,YAAY;AAC3C,YAAM,WAAW,KAAK,KAAK,IAAI;AAAA,IACjC,OAAO;AACL,YAAM,IAAI,MAAM,qCAAqC;AAAA,IACvD;AAAA,EACF;AAEA,QAAM,KAAK;AACb;","names":[]}