smartguard/ts/index.ts
2019-08-07 16:31:53 +02:00

18 lines
564 B
TypeScript

import * as plugins from './smartguard.plugins';
import { Guard } from './smartguard.classes.guard';
import { GuardSet } from './smartguard.classes.guardset';
export * from './smartguard.classes.guard';
export const passGuards = async <T>(dataArg: T, guards: Array<Guard<T>>) => {
const done = plugins.smartpromise.defer();
const guardSet = new GuardSet<T>(guards);
const results = await guardSet.executeGuardsWithData(dataArg);
for (const result of results) {
if(!result) {
return;
}
}
done.resolve();
await done.promise;
return;
};