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 +14 -25
- package/package.json +1 -1
- package/src/arrays.ts +1 -1
- package/src/comparator.ts +2 -13
- package/src/index.ts +8 -24
- package/src/maps.ts +1 -1
- package/src/objects.ts +1 -1
- package/src/sets.ts +1 -1
- package/src/types.ts +45 -0
- package/src/utils.ts +5 -26
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
|
|
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
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
|
|
27
|
-
export
|
|
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
package/src/arrays.ts
CHANGED
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
|
-
|
|
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
|
-
|
|
20
|
-
|
|
10
|
+
import type {
|
|
11
|
+
BaseCircularMeta,
|
|
12
|
+
CreateComparatorCreatorOptions,
|
|
21
13
|
EqualityComparator,
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
NativeEqualityComparator,
|
|
25
|
-
TypeEqualityComparator,
|
|
26
|
-
} from './utils';
|
|
14
|
+
GetComparatorOptions,
|
|
15
|
+
} from './types';
|
|
27
16
|
|
|
28
|
-
export
|
|
29
|
-
extends Pick<WeakMap<any, any>, 'delete' | 'get'> {
|
|
30
|
-
set(key: object, value: any): BaseCircularMeta;
|
|
31
|
-
}
|
|
17
|
+
export * from './types';
|
|
32
18
|
|
|
33
|
-
export
|
|
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
package/src/objects.ts
CHANGED
package/src/sets.ts
CHANGED
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|