import { curry2, equals } from '167' import { createAssertionError } from 'assertion-error-diff' /** * Checks if 2 values are equal in terms of value equality * * @name equal(expected: A, actual: A): A * @example * import { equal } from '@typed/assertions' * * equal({ a: 1 }, { a: 2 }) // throws AssertionError */ export const equal: Equal = curry2(function(expected: A, actual: A): A { if (!equals(expected, actual)) throw createAssertionError(`Expected value is not equal to actual value`, expected, actual) return actual }) export interface Equal { (expected: A, actual: A): A (expected: A): (actual: A) => A }