Urara-Blog/node_modules/.pnpm-store/v3/files/4a/efddbc87d483c166642a19c0de569e4dd40ad1388f6982a85b2149411da6ec529cd5dbfab1da6a46d547a83dbfb1c8aced962b9fb23e1cafd8707e5891b8d5
2022-08-14 01:14:53 +08:00

28 lines
642 B
Text

/**
* @param {...import('types').Handle} handlers
* @returns {import('types').Handle}
*/
function sequence(...handlers) {
const length = handlers.length;
if (!length) return ({ event, resolve }) => resolve(event);
return ({ event, resolve }) => {
return apply_handle(0, event);
/**
* @param {number} i
* @param {import('types').RequestEvent} event
* @returns {import('types').MaybePromise<Response>}
*/
function apply_handle(i, event) {
const handle = handlers[i];
return handle({
event,
resolve: i < length - 1 ? (event) => apply_handle(i + 1, event) : resolve
});
}
};
}
export { sequence };