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