balabola-vk/src/filters.ts

13 lines
476 B
TypeScript

import { MessageContext } from "vk-io";
type MaybePromise<T> = T | Promise<T>;
type Predicate<C extends MessageContext> = (ctx: C) => MaybePromise<boolean>;
export const not = <C extends MessageContext>(predicate: Predicate<C>) => (ctx: C) =>
Promise.resolve(predicate(ctx)).then((v) => !v);
export const isChat = <C extends MessageContext>(ctx: C) =>
ctx.isChat === true;
export const isHasText = <C extends MessageContext>(ctx: C) =>
ctx.text ? true : false;