From 7fa76db8ce76998f60aa0d59bf07ae29a23f4a20 Mon Sep 17 00:00:00 2001 From: gcanti Date: Tue, 4 Feb 2020 19:26:47 +0100 Subject: [PATCH] add eqStrict, eqAlways, closes #965 --- docs/modules/Eq.ts.md | 28 ++++++++++++++++++++++++++-- src/Eq.ts | 20 ++++++++++++++++++-- test/Eq.ts | 23 ++++++++++++++++++++++- 3 files changed, 66 insertions(+), 5 deletions(-) diff --git a/docs/modules/Eq.ts.md b/docs/modules/Eq.ts.md index f28ae2db43..ec3f658296 100644 --- a/docs/modules/Eq.ts.md +++ b/docs/modules/Eq.ts.md @@ -25,14 +25,16 @@ Added in v2.0.0 - [URI](#uri) - [contramap](#contramap) - [eq](#eq) +- [eqAlways](#eqalways) - [eqBoolean](#eqboolean) - [eqDate](#eqdate) - [eqNumber](#eqnumber) +- [eqStrict](#eqstrict) - [eqString](#eqstring) - [fromEquals](#fromequals) - [getStructEq](#getstructeq) - [getTupleEq](#gettupleeq) -- [strictEqual](#strictequal) +- [~~strictEqual~~](#strictequal) --- @@ -88,6 +90,16 @@ export const eq: Contravariant1 = ... Added in v2.0.0 +# eqAlways + +**Signature** + +```ts +export const eqAlways: Eq = ... +``` + +Added in v2.5.0 + # eqBoolean **Signature** @@ -118,6 +130,16 @@ export const eqNumber: Eq = ... Added in v2.0.0 +# eqStrict + +**Signature** + +```ts +export const eqStrict: Eq = ... +``` + +Added in v2.5.0 + # eqString **Signature** @@ -174,7 +196,9 @@ assert.strictEqual(E.equals(['a', 1, true], ['a', 1, false]), false) Added in v2.0.0 -# strictEqual +# ~~strictEqual~~ + +Use `eqStrict` instead **Signature** diff --git a/src/Eq.ts b/src/Eq.ts index 12fbe807ff..c41676a6e3 100644 --- a/src/Eq.ts +++ b/src/Eq.ts @@ -46,14 +46,30 @@ export function fromEquals(equals: (x: A, y: A) => boolean): Eq { } /** + * @since 2.5.0 + */ +export const eqAlways: Eq = { + equals: () => true +} + +/** + * @since 2.5.0 + */ +export const eqStrict: Eq = { + // tslint:disable-next-line: deprecation + equals: strictEqual +} + +/** + * Use `eqStrict` instead + * * @since 2.0.0 + * @deprecated */ export function strictEqual(a: A, b: A): boolean { return a === b } -const eqStrict = { equals: strictEqual } - /** * @since 2.0.0 */ diff --git a/test/Eq.ts b/test/Eq.ts index 85c731cd98..c790f6b6f3 100644 --- a/test/Eq.ts +++ b/test/Eq.ts @@ -1,5 +1,16 @@ import * as assert from 'assert' -import { eq, eqDate, eqNumber, eqString, fromEquals, getTupleEq, eqBoolean, getStructEq } from '../src/Eq' +import { + eq, + eqDate, + eqNumber, + eqString, + fromEquals, + getTupleEq, + eqBoolean, + getStructEq, + eqStrict, + eqAlways +} from '../src/Eq' describe('Eq', () => { it('getTupleEq', () => { @@ -54,4 +65,14 @@ describe('Eq', () => { assert.deepStrictEqual(S.equals({ name: 'a', age: 1 }, { name: 'a', age: 2 }), false) assert.deepStrictEqual(S.equals({ name: 'a', age: 1 }, { name: 'b', age: 1 }), false) }) + + it('eqStrict', () => { + assert.deepStrictEqual(eqStrict.equals(1, 1), true) + assert.deepStrictEqual(eqStrict.equals(1, 'a'), false) + }) + + it('eqAlways', () => { + assert.deepStrictEqual(eqAlways.equals(1, 1), true) + assert.deepStrictEqual(eqAlways.equals(1, 'a'), true) + }) })