UNPKG

grammy-guard

Version:
15 lines (14 loc) 473 B
export function guard(predicate, errorHandler) { return async (ctx, next) => { const predicates = Array.isArray(predicate) ? predicate.map((predicate) => predicate(ctx)) : [predicate(ctx)]; const isPassed = (await Promise.all(predicates)).every(Boolean); if (isPassed) { return next(); } if (typeof errorHandler === "function") { return errorHandler(ctx, next); } }; }