fast-equals 4.0.1-beta.1 → 4.0.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1,27 +1,16 @@
1
- import type {
2
- circularDeepEqual as CircularDeepEqual,
3
- circularShallowEqual as CircularShallowEqual,
4
- createCustomEqual as CreateCustomEqual,
5
- createCustomCircularEqual as CreateCustomCircularEqual,
6
- deepEqual as DeepEqual,
7
- shallowEqual as ShallowEqual,
8
- sameValueZeroEqual as SameValueZeroEqual,
9
- } from './src/index';
1
+ import type { EqualityComparator, GetComparatorOptions } from './src/types';
10
2
 
11
- export type { BaseCircularMeta, GetComparatorOptions } from './src/index';
12
- export type { CreateComparatorCreatorOptions } from './src/comparator';
13
- export type {
14
- EqualityComparator,
15
- EqualityComparatorCreator,
16
- InternalEqualityComparator,
17
- NativeEqualityComparator,
18
- TypeEqualityComparator,
19
- } from './src/utils';
3
+ export * from './src/types';
20
4
 
21
- export const circularDeepEqual: typeof CircularDeepEqual;
22
- export const circularShallowEqual: typeof CircularShallowEqual;
23
- export const createCustomEqual: typeof CreateCustomEqual;
24
- export const createCustomCircularEqual: typeof CreateCustomCircularEqual;
25
- export const deepEqual: typeof DeepEqual;
26
- export const shallowEqual: typeof ShallowEqual;
27
- export const sameValueZeroEqual: typeof SameValueZeroEqual;
5
+ export function circularDeepEqual<A, B>(a: A, b: B): boolean;
6
+ export function circularShallowEqual<A, B>(a: A, b: B): boolean;
7
+ export function deepEqual<A, B>(a: A, b: B): boolean;
8
+ export function shallowEqual<A, B>(a: A, b: B): boolean;
9
+ export function sameValueZeroEqual<A, B>(a: A, b: B): boolean;
10
+
11
+ export function createCustomEqual<Meta = undefined>(
12
+ getComparatorOptions: GetComparatorOptions<Meta>,
13
+ ): EqualityComparator<Meta>;
14
+ export function createCustomEqual<Meta = WeakMap<any, any>>(
15
+ getComparatorOptions: GetComparatorOptions<Meta>,
16
+ ): EqualityComparator<Meta>;
package/package.json CHANGED
@@ -85,5 +85,5 @@
85
85
  },
86
86
  "sideEffects": false,
87
87
  "types": "index.d.ts",
88
- "version": "4.0.1-beta.1"
88
+ "version": "4.0.1-beta.2"
89
89
  }
package/src/arrays.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createIsCircular } from './utils';
2
2
 
3
- import type { InternalEqualityComparator } from './utils';
3
+ import type { InternalEqualityComparator } from './types';
4
4
 
5
5
  /**
6
6
  * Whether the arrays are equal in value.
package/src/comparator.ts CHANGED
@@ -1,20 +1,9 @@
1
1
  import { isPlainObject, isPromiseLike, sameValueZeroEqual } from './utils';
2
2
 
3
3
  import type {
4
+ CreateComparatorCreatorOptions,
4
5
  EqualityComparator,
5
- EqualityComparatorCreator,
6
- TypeEqualityComparator,
7
- } from './utils';
8
-
9
- export interface CreateComparatorCreatorOptions<Meta> {
10
- areArraysEqual: TypeEqualityComparator<any, Meta>;
11
- areDatesEqual: TypeEqualityComparator<any, Meta>;
12
- areMapsEqual: TypeEqualityComparator<any, Meta>;
13
- areObjectsEqual: TypeEqualityComparator<any, Meta>;
14
- areRegExpsEqual: TypeEqualityComparator<any, Meta>;
15
- areSetsEqual: TypeEqualityComparator<any, Meta>;
16
- createIsNestedEqual: EqualityComparatorCreator<Meta>;
17
- }
6
+ } from './types';
18
7
 
19
8
  const ARGUMENTS_TAG = '[object Arguments]';
20
9
  const BOOLEAN_TAG = '[object Boolean]';
package/src/index.ts CHANGED
@@ -5,34 +5,18 @@ import { areMapsEqual, areMapsEqualCircular } from './maps';
5
5
  import { areObjectsEqual, areObjectsEqualCircular } from './objects';
6
6
  import { areRegExpsEqual } from './regexps';
7
7
  import { areSetsEqual, areSetsEqualCircular } from './sets';
8
- import {
9
- createDefaultIsNestedEqual,
10
- EqualityComparator,
11
- merge,
12
- sameValueZeroEqual,
13
- } from './utils';
14
-
15
- import type { CreateComparatorCreatorOptions } from './comparator';
16
-
17
- export { sameValueZeroEqual };
8
+ import { createDefaultIsNestedEqual, merge, sameValueZeroEqual } from './utils';
18
9
 
19
- export type { CreateComparatorCreatorOptions } from './comparator';
20
- export type {
10
+ import type {
11
+ BaseCircularMeta,
12
+ CreateComparatorCreatorOptions,
21
13
  EqualityComparator,
22
- EqualityComparatorCreator,
23
- InternalEqualityComparator,
24
- NativeEqualityComparator,
25
- TypeEqualityComparator,
26
- } from './utils';
14
+ GetComparatorOptions,
15
+ } from './types';
27
16
 
28
- export interface BaseCircularMeta
29
- extends Pick<WeakMap<any, any>, 'delete' | 'get'> {
30
- set(key: object, value: any): BaseCircularMeta;
31
- }
17
+ export * from './types';
32
18
 
33
- export type GetComparatorOptions<Meta> = (
34
- defaultOptions: CreateComparatorCreatorOptions<Meta>,
35
- ) => Partial<CreateComparatorCreatorOptions<Meta>>;
19
+ export { sameValueZeroEqual };
36
20
 
37
21
  const DEFAULT_CONFIG: CreateComparatorCreatorOptions<undefined> = Object.freeze(
38
22
  {
package/src/maps.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createIsCircular } from './utils';
2
2
 
3
- import type { InternalEqualityComparator } from './utils';
3
+ import type { InternalEqualityComparator } from './types';
4
4
 
5
5
  /**
6
6
  * Whether the `Map`s are equal in value.
package/src/objects.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createIsCircular } from './utils';
2
2
 
3
- import type { InternalEqualityComparator } from './utils';
3
+ import type { InternalEqualityComparator } from './types';
4
4
 
5
5
  interface Dictionary<Value> {
6
6
  [key: string]: Value;
package/src/sets.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createIsCircular } from './utils';
2
2
 
3
- import type { InternalEqualityComparator } from './utils';
3
+ import type { InternalEqualityComparator } from './types';
4
4
 
5
5
  /**
6
6
  * Whether the `Set`s are equal in value.
package/src/types.ts ADDED
@@ -0,0 +1,45 @@
1
+ export interface BaseCircularMeta
2
+ extends Pick<WeakMap<any, any>, 'delete' | 'get'> {
3
+ set(key: object, value: any): BaseCircularMeta;
4
+ }
5
+
6
+ export interface CreateComparatorCreatorOptions<Meta> {
7
+ areArraysEqual: TypeEqualityComparator<any, Meta>;
8
+ areDatesEqual: TypeEqualityComparator<any, Meta>;
9
+ areMapsEqual: TypeEqualityComparator<any, Meta>;
10
+ areObjectsEqual: TypeEqualityComparator<any, Meta>;
11
+ areRegExpsEqual: TypeEqualityComparator<any, Meta>;
12
+ areSetsEqual: TypeEqualityComparator<any, Meta>;
13
+ createIsNestedEqual: EqualityComparatorCreator<Meta>;
14
+ }
15
+
16
+ export type GetComparatorOptions<Meta> = (
17
+ defaultOptions: CreateComparatorCreatorOptions<Meta>,
18
+ ) => Partial<CreateComparatorCreatorOptions<Meta>>;
19
+
20
+ export type InternalEqualityComparator<Meta> = (
21
+ a: any,
22
+ b: any,
23
+ indexOrKeyA: any,
24
+ indexOrKeyB: any,
25
+ parentA: any,
26
+ parentB: any,
27
+ meta: Meta,
28
+ ) => boolean;
29
+
30
+ export type EqualityComparator<Meta> = Meta extends undefined
31
+ ? <A, B>(a: A, b: B, meta?: Meta) => boolean
32
+ : <A, B>(a: A, b: B, meta: Meta) => boolean;
33
+
34
+ export type EqualityComparatorCreator<Meta> = (
35
+ fn: EqualityComparator<Meta>,
36
+ ) => InternalEqualityComparator<Meta>;
37
+
38
+ export type NativeEqualityComparator = <A, B>(a: A, b: B) => boolean;
39
+
40
+ export type TypeEqualityComparator<Type, Meta> = (
41
+ a: Type,
42
+ b: Type,
43
+ isEqual: InternalEqualityComparator<Meta>,
44
+ meta: Meta,
45
+ ) => boolean;
package/src/utils.ts CHANGED
@@ -1,29 +1,8 @@
1
- export type InternalEqualityComparator<Meta> = (
2
- a: any,
3
- b: any,
4
- indexOrKeyA: any,
5
- indexOrKeyB: any,
6
- parentA: any,
7
- parentB: any,
8
- meta: Meta,
9
- ) => boolean;
10
-
11
- export type EqualityComparator<Meta> = Meta extends undefined
12
- ? <A, B>(a: A, b: B, meta?: Meta) => boolean
13
- : <A, B>(a: A, b: B, meta: Meta) => boolean;
14
-
15
- export type EqualityComparatorCreator<Meta> = (
16
- fn: EqualityComparator<Meta>,
17
- ) => InternalEqualityComparator<Meta>;
18
-
19
- export type NativeEqualityComparator = <A, B>(a: A, b: B) => boolean;
20
-
21
- export type TypeEqualityComparator<Type, Meta> = (
22
- a: Type,
23
- b: Type,
24
- isEqual: InternalEqualityComparator<Meta>,
25
- meta: Meta,
26
- ) => boolean;
1
+ import {
2
+ EqualityComparator,
3
+ InternalEqualityComparator,
4
+ TypeEqualityComparator,
5
+ } from './types';
27
6
 
28
7
  /**
29
8
  * Default equality comparator pass-through, used as the standard `isEqual` creator for