UNPKG

@cowwoc/requirements

Version:

A fluent API for enforcing design contracts with automatic message generation.

49 lines (48 loc) 3.63 kB
import { type Validators, type NumberValidator, type BooleanValidator, type ArrayValidator, type SetValidator, type MapValidator, type StringValidator, type JavascriptRequireThat, type JavascriptAssertThat, type JavascriptCheckIf, type GlobalConfiguration, type UnknownValidator } from "./internal/internal.mjs"; /** * Creates validators for the Javascript API with an independent configuration. * <p> * A factory that creates different types of validators. * <p> * There are three kinds of validators: * <ul> * <li>`requireThat` for method preconditions.</li> * <li>`assertThat` for class invariants, and method postconditions.</li> * <li>`checkIf` for returning multiple validation failures.</li> * </ul> */ declare abstract class JavascriptValidators implements Validators<JavascriptValidators>, JavascriptRequireThat, JavascriptAssertThat, JavascriptCheckIf { /** * Creates a new instance using the default configuration. * * @returns an instance of this interface */ static newInstance(): JavascriptValidators; abstract copy(): JavascriptValidators; abstract getContext(): Map<string, unknown>; abstract withContext(value: unknown, name: string): this; abstract getGlobalConfiguration(): GlobalConfiguration; abstract removeContext(name: string): this; abstract requireThatNumber<T extends number | undefined | null>(value: T, name: string): NumberValidator<T>; abstract requireThatBoolean<T extends boolean | undefined | null>(value: T, name: string): BooleanValidator<T>; abstract requireThatArray<T extends E[] | undefined | null, E>(value: T, name: string): ArrayValidator<T, E>; abstract requireThatSet<T extends Set<E> | undefined | null, E>(value: T, name: string): SetValidator<T, E>; abstract requireThatMap<T extends Map<K, V> | undefined | null, K, V>(value: T, name: string): MapValidator<T, K, V>; abstract requireThatString<T extends string | undefined | null>(value: T, name: string): StringValidator<T>; abstract requireThat<T>(value: T, name: string): UnknownValidator<T>; abstract assertThatNumber<T extends number | undefined | null>(value: T, name?: string): NumberValidator<T>; abstract assertThatBoolean<T extends boolean | undefined | null>(value: T, name?: string): BooleanValidator<T>; abstract assertThatArray<T extends E[] | undefined | null, E>(value: T, name?: string): ArrayValidator<T, E>; abstract assertThatSet<T extends Set<E> | undefined | null, E>(value: T, name?: string): SetValidator<T, E>; abstract assertThatMap<T extends Map<K, V> | undefined | null, K, V>(value: T, name?: string): MapValidator<T, K, V>; abstract assertThatString<T extends string | undefined | null>(value: T, name?: string): StringValidator<T>; abstract assertThat<T>(value: T, name?: string): UnknownValidator<T>; abstract checkIfNumber<T extends number | undefined | null>(value: T, name?: string): NumberValidator<T>; abstract checkIfBoolean<T extends boolean | undefined | null>(value: T, name?: string): BooleanValidator<T>; abstract checkIfArray<T extends E[] | undefined | null, E>(value: T, name?: string): ArrayValidator<T, E>; abstract checkIfSet<T extends Set<E> | undefined | null, E>(value: T, name?: string): SetValidator<T, E>; abstract checkIfMap<T extends Map<K, V> | undefined | null, K, V>(value: T, name?: string): MapValidator<T, K, V>; abstract checkIfString<T extends string | undefined | null>(value: T, name?: string): StringValidator<T>; abstract checkIf<T>(value: T, name?: string): UnknownValidator<T>; } export { JavascriptValidators };