UNPKG

@kanadi/core

Version:

Multi-Layer CAPTCHA Framework with customizable validators and challenge bundles

19 lines (15 loc) 607 B
import "reflect-metadata"; import type { BanRuleMetadata } from "./types"; export function BanRule(metadata: BanRuleMetadata) { return <T extends { new (...args: any[]): {} }>(constructor: T) => { Reflect.defineMetadata("ban:metadata", metadata, constructor); Reflect.defineMetadata("ban:registered", true, constructor); return constructor; }; } export function getBanRuleMetadata(target: any): BanRuleMetadata | undefined { return Reflect.getMetadata("ban:metadata", target); } export function isBanRule(target: any): boolean { return Reflect.getMetadata("ban:registered", target) === true; }