UNPKG

@augment-vir/assert

Version:

A collection of assertions for test and production code alike.

42 lines (41 loc) 1.64 kB
import { type AnyFunction, type ArrayElement } from '@augment-vir/core'; import { type UnionToIntersection } from 'type-fest'; import { guardOverrides } from '../../assertions/extendable-assertions.js'; declare const checkWrapMethods: UnionToIntersection<Extract<ArrayElement<typeof guardOverrides>, { checkWrap: any; }>['checkWrap']>; /** * A group of guard methods that do the following: * * 1. Run the method's assertion on the given inputs. * 2. If the assertion fails, return `undefined`. * 3. If the assertion succeeds, the first input is returned and (when possible) type guarded. * * This can also be called as a standalone check function which checks that its input is truthy and * returns it if so, else `undefined`. * * @category Assert * @category Package : @augment-vir/assert * @example * * ```ts * import {checkWrap} from '@augment-vir/assert'; * * // `result1` will be `['a']` * const result1 = checkWrap.deepEquals(['a'], ['a']); * * const value: unknown = 'some value' as unknown; * // `result2` will be `'some value'` and it will have the type of `string` * const result2 = checkWrap.isString(value); * * const value2: unknown = 'some value' as unknown; * // `result` will be `undefined` * const result3 = checkWrap.isNumber(value2); * ``` * * @returns The original given value (type guarded when possible) or, if the expectation fails, * `undefined`. * @package [`@augment-vir/assert`](https://www.npmjs.com/package/@augment-vir/assert) */ export declare const checkWrap: (<T>(input: T) => undefined | T) & typeof checkWrapMethods & Record<keyof AnyFunction, never>; export {};