UNPKG

@augment-vir/assert

Version:

A collection of assertions for test and production code alike.

16 lines (15 loc) 1.06 kB
/** 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>; };