Skip to content

self-assert / Ruleset

Class: Ruleset ​

Runs all rules and throws an error if any has failed. The failed rules are included in the error.

Constructors ​

Constructor ​

new Ruleset(assertions, rules): Ruleset

Parameters ​

ParameterType
assertionsSelfContainedAssertion[]
rulesSelfContainedRule[]

Returns ​

Ruleset

Methods ​

ensureAll() ​

static ensureAll(...assertions): void

Evaluates all assertions synchronously and throws an error if any has failed.

Parameters ​

ParameterType
...assertionsSelfContainedAssertions[]

Returns ​

void

Throws ​

RulesBroken if any rule has failed.

Example ​

ts
const firstNameNotEmpty = Assertion.requiring(
  "firstName",
  firstNameNotEmptyDescription,
  Requirements.isNotEmpty
);
const lastNameNotEmpty = Assertion.requiring(
  "lastName",
  lastNameNotEmptyDescription,
  Requirements.isNotEmpty
);

/** Throws because last name is empty */
Ruleset.ensureAll(
  firstNameNotEmpty.evaluateFor("Jane"),
  lastNameNotEmpty.evaluateFor("")
);

workOn() ​

static workOn(...rules): Promise<void>

Evaluates all rules asynchronously and throws an error if any has failed.

Parameters ​

ParameterType
...rulesSelfContainedRules[]

Returns ​

Promise<void>

Throws ​

RulesBroken if any rule has failed

Example ​

ts
const emailMustBeUnique = Inquiry.requiring<string>(
  "user.email.unique",
  "Email must be unique",
  async (email) => !(await isEmailTaken(email))
);
const emailMustNotBeDisposable = Inquiry.requiring<string>(
  "email",
  emailMustNotBeDisposableDescription,
  async (email) => !(await isDisposable(email))
);

/** Throws because email is disposable */
await Ruleset.workOn(
  emailMustBeUnique.evaluateFor("example@disposable.com"),
  emailMustNotBeDisposable.evaluateFor("example@disposable.com")
);

mustHold() ​

mustHold(): Promise<void>

Returns ​

Promise<void>


ensure() ​

ensure(): void

Returns ​

void