self-assert
Version:
A small TypeScript library for designing models with built-in validity.
36 lines • 1.42 kB
TypeScript
import type { LabeledRule, SelfContainedAssertion, SelfContainedAssertions, SelfContainedRule, SelfContainedRules } from "./types";
/**
* Runs all rules and throws an error if any has failed.
* The failed rules are included in the error.
*
* @category Rules
*/
export declare class Ruleset {
protected assertions: SelfContainedAssertion[];
protected rules: SelfContainedRule[];
/**
* Evaluates all assertions **synchronously** and throws an error if any has failed.
*
* @throws {@link RulesBroken} if any rule has failed.
*
* @example
* {@includeCode ../../../../examples/snippets/rules.ts#ruleset-ensureAll}
*/
static ensureAll(...assertions: SelfContainedAssertions[]): void;
/**
* Evaluates all rules **asynchronously** and throws an error if any has failed.
*
* @throws {@link RulesBroken} if any rule has failed
*
* @example
* {@includeCode ../../../../examples/snippets/rules.ts#email-unique,ruleset-workOn}
*/
static workOn(...rules: SelfContainedRules[]): Promise<void>;
constructor(assertions: SelfContainedAssertion[], rules: SelfContainedRule[]);
mustHold(): Promise<void>;
ensure(): void;
protected failedAssertions(): LabeledRule[];
protected brokenRules(): Promise<LabeledRule[]>;
protected throwIfNotEmpty(brokenRules: LabeledRule[]): void;
}
//# sourceMappingURL=Ruleset.d.ts.map