@kanadi/core
Version:
Multi-Layer CAPTCHA Framework with customizable validators and challenge bundles
21 lines (17 loc) • 651 B
text/typescript
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;
}