UNPKG

@kanadi/core

Version:

Multi-Layer CAPTCHA Framework with customizable validators and challenge bundles

21 lines (17 loc) 651 B
import "reflect-metadata"; import type { ValidatorMetadata } from "./types"; export function Validator(metadata: ValidatorMetadata) { return <T extends { new (...args: any[]): {} }>(constructor: T) => { Reflect.defineMetadata("middleware:metadata", metadata, constructor); Reflect.defineMetadata("middleware:registered", true, constructor); return constructor; }; } export function getValidatorMetadata( target: any, ): ValidatorMetadata | undefined { return Reflect.getMetadata("middleware:metadata", target); } export function isValidator(target: any): boolean { return Reflect.getMetadata("middleware:registered", target) === true; }