@augment-vir/assert
Version:
A collection of assertions for test and production code alike.
16 lines (15 loc) • 1.06 kB
TypeScript
/** C8 fails in type-only files. */
import { type AnyFunction, type MaybePromise } from '@augment-vir/core';
import { type AssertFunction } from './assert-function.js';
import { type WaitUntilOverridesBase } from './wait-until-function.js';
export type AssertWrapOverridesBase<Keys extends PropertyKey = string> = Partial<Readonly<Record<Keys, AnyFunction | undefined>>>;
export type CheckFunction<Output> = (input: any, ...extraInputs: any[]) => input is Output;
export type GenericCheckFunction = (input: any, ...extraInputs: any[]) => MaybePromise<boolean> | never;
export type CheckOverridesBase<Keys extends PropertyKey = string> = Partial<Readonly<Record<Keys, CheckFunction<any> | GenericCheckFunction | undefined>>>;
export type GuardGroup<Assertions extends Record<string, AssertFunction<any>>> = {
assert: Assertions;
check: CheckOverridesBase<keyof Assertions>;
assertWrap: AssertWrapOverridesBase<keyof Assertions>;
checkWrap: AssertWrapOverridesBase<keyof Assertions>;
waitUntil: WaitUntilOverridesBase<keyof Assertions>;
};