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

19 lines
566 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;
};