Skip to content

Commit

Permalink
add eqStrict, eqAlways, closes #965
Browse files Browse the repository at this point in the history
  • Loading branch information
gcanti committed Feb 4, 2020
1 parent 09aa689 commit 7fa76db
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 5 deletions.
28 changes: 26 additions & 2 deletions docs/modules/Eq.ts.md
Expand Up @@ -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)

---

Expand Down Expand Up @@ -88,6 +90,16 @@ export const eq: Contravariant1<URI> = ...

Added in v2.0.0

# eqAlways

**Signature**

```ts
export const eqAlways: Eq<unknown> = ...
```

Added in v2.5.0

# eqBoolean

**Signature**
Expand Down Expand Up @@ -118,6 +130,16 @@ export const eqNumber: Eq<number> = ...

Added in v2.0.0

# eqStrict

**Signature**

```ts
export const eqStrict: Eq<unknown> = ...
```

Added in v2.5.0

# eqString

**Signature**
Expand Down Expand Up @@ -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**

Expand Down
20 changes: 18 additions & 2 deletions src/Eq.ts
Expand Up @@ -46,14 +46,30 @@ export function fromEquals<A>(equals: (x: A, y: A) => boolean): Eq<A> {
}

/**
* @since 2.5.0
*/
export const eqAlways: Eq<unknown> = {
equals: () => true
}

/**
* @since 2.5.0
*/
export const eqStrict: Eq<unknown> = {
// tslint:disable-next-line: deprecation
equals: strictEqual
}

/**
* Use `eqStrict` instead
*
* @since 2.0.0
* @deprecated
*/
export function strictEqual<A>(a: A, b: A): boolean {
return a === b
}

const eqStrict = { equals: strictEqual }

/**
* @since 2.0.0
*/
Expand Down
23 changes: 22 additions & 1 deletion 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', () => {
Expand Down Expand Up @@ -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)
})
})

0 comments on commit 7fa76db

Please sign in to comment.