import * as plugins from './smartguard.plugins'; export type TGuardFunction = (dataArg: T) => Promise; export class Guard { private guardFunction: TGuardFunction; constructor(guardFunctionArg: TGuardFunction) { this.guardFunction = guardFunctionArg; } /** * executes the guard against a data argument; * @param dataArg */ public async executeGuardWithData(dataArg: T) { const result = await this.guardFunction(dataArg); return result; } }