Buckets:
| // src/compose.ts | |
| var compose = (middleware, onError, onNotFound) => { | |
| return (context, next) => { | |
| let index = -1; | |
| return dispatch(0); | |
| async function dispatch(i) { | |
| if (i <= index) { | |
| throw new Error("next() called multiple times"); | |
| } | |
| index = i; | |
| let res; | |
| let isError = false; | |
| let handler; | |
| if (middleware[i]) { | |
| handler = middleware[i][0][0]; | |
| context.req.routeIndex = i; | |
| } else { | |
| handler = i === middleware.length && next || void 0; | |
| } | |
| if (handler) { | |
| try { | |
| res = await handler(context, () => dispatch(i + 1)); | |
| } catch (err) { | |
| if (err instanceof Error && onError) { | |
| context.error = err; | |
| res = await onError(err, context); | |
| isError = true; | |
| } else { | |
| throw err; | |
| } | |
| } | |
| } else { | |
| if (context.finalized === false && onNotFound) { | |
| res = await onNotFound(context); | |
| } | |
| } | |
| if (res && (context.finalized === false || isError)) { | |
| context.res = res; | |
| } | |
| return context; | |
| } | |
| }; | |
| }; | |
| export { | |
| compose | |
| }; | |
Xet Storage Details
- Size:
- 1.16 kB
- Xet hash:
- 4d19145851a439d635d3b53fa950f1d1e5370f1698dced5eef39713ddf5a2ec8
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.