extra-utils 6.0.0 → 6.1.0

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/README.md CHANGED
@@ -388,7 +388,7 @@ function pipe<A, B>(
388
388
  ): B
389
389
  function pipe<T, U>(
390
390
  value: T
391
- , ...operators: Array<(value: unknown) => unknown>
391
+ , ...operators: Array<(value: any) => unknown>
392
392
  ): U
393
393
  ```
394
394
 
@@ -459,7 +459,7 @@ function pipeAsync<A, B>(
459
459
  ): Promise<B>
460
460
  function pipeAsync<T, U>(
461
461
  value: Awaitable<T>
462
- , ...operators: Array<(value: unknown) => Awaitable<unknown>>
462
+ , ...operators: Array<(value: any) => Awaitable<unknown>>
463
463
  ): Promise<U>
464
464
  ```
465
465
 
@@ -41,4 +41,4 @@ export declare function pipeAsync<A, B, C>(value: Awaitable<A>, ...operators: [
41
41
  export declare function pipeAsync<A, B>(value: Awaitable<A>, ...operators: [
42
42
  (value: A) => Awaitable<B>
43
43
  ]): Promise<B>;
44
- export declare function pipeAsync<T, U>(value: Awaitable<T>, ...operators: Array<(value: unknown) => Awaitable<unknown>>): Promise<U>;
44
+ export declare function pipeAsync<T, U>(value: Awaitable<T>, ...operators: Array<(value: any) => Awaitable<unknown>>): Promise<U>;
@@ -1 +1 @@
1
- {"version":3,"file":"pipe-async.js","sourceRoot":"","sources":["../../src/fp/pipe-async.ts"],"names":[],"mappings":"AAqEA,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAmB,EACnB,GAAG,SAAyC;IAE5C,IAAI,MAAM,GAAU,MAAM,KAAK,CAAA;IAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,MAAW,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"pipe-async.js","sourceRoot":"","sources":["../../src/fp/pipe-async.ts"],"names":[],"mappings":"AAuEA,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,KAAmB,EACnB,GAAG,SAAyC;IAE5C,IAAI,MAAM,GAAU,MAAM,KAAK,CAAA;IAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,MAAW,CAAA;AACpB,CAAC"}
package/lib/fp/pipe.d.ts CHANGED
@@ -40,4 +40,4 @@ export declare function pipe<A, B, C>(value: A, ...operators: [
40
40
  export declare function pipe<A, B>(value: A, ...operators: [
41
41
  (value: A) => B
42
42
  ]): B;
43
- export declare function pipe<T, U>(value: T, ...operators: Array<(value: unknown) => unknown>): U;
43
+ export declare function pipe<T, U>(value: T, ...operators: Array<(value: any) => unknown>): U;
@@ -1 +1 @@
1
- {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/fp/pipe.ts"],"names":[],"mappings":"AAmEA,MAAM,UAAU,IAAI,CAClB,KAAQ,EACR,GAAG,SAAyC;IAE5C,IAAI,MAAM,GAAU,KAAK,CAAA;IACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO,MAAW,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../src/fp/pipe.ts"],"names":[],"mappings":"AAqEA,MAAM,UAAU,IAAI,CAClB,KAAQ,EACR,GAAG,SAAyC;IAE5C,IAAI,MAAM,GAAU,KAAK,CAAA;IACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO,MAAW,CAAA;AACpB,CAAC"}
@@ -1,9 +1,19 @@
1
1
  import { isReferenceEqual } from './is-reference-equal.js';
2
- import { isObject } from './is-object.js';
2
+ import { isPlainObject } from './is-plain-object.js';
3
+ import { isArray } from "../array/is-array.js";
3
4
  export function isDeepEqual(a, b) {
4
5
  if (isReferenceEqual(a, b))
5
6
  return true;
6
- if (isObject(a) && isObject(b)) {
7
+ if (isArray(a) && isArray(b)) {
8
+ if (a.length === b.length) {
9
+ for (let i = 0; i < a.length; i++) {
10
+ if (!isDeepEqual(a[i], b[i]))
11
+ return false;
12
+ }
13
+ return true;
14
+ }
15
+ }
16
+ else if (isPlainObject(a) && isPlainObject(b)) {
7
17
  const keysA = Reflect.ownKeys(a);
8
18
  const keysB = Reflect.ownKeys(b);
9
19
  if (keysA.length === keysB.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"is-deep-equal.js","sourceRoot":"","sources":["../../src/object/is-deep-equal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,CAAU;IAChD,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAEvC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC7C,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAC5B,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"is-deep-equal.js","sourceRoot":"","sources":["../../src/object/is-deep-equal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,6BAA8B;AAEhD,MAAM,UAAU,WAAW,CAAC,CAAU,EAAE,CAAU;IAChD,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAEvC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAA;YAC5C,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC7C,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAC5B,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1,9 +1,19 @@
1
1
  import { isReferenceEqual } from './is-reference-equal.js';
2
- import { isObject } from './is-object.js';
2
+ import { isPlainObject } from './is-plain-object.js';
3
+ import { isArray } from "../array/is-array.js";
3
4
  export function isShallowEqual(a, b) {
4
5
  if (isReferenceEqual(a, b))
5
6
  return true;
6
- if (isObject(a) && isObject(b)) {
7
+ if (isArray(a) && isArray(b)) {
8
+ if (a.length === b.length) {
9
+ for (let i = 0; i < a.length; i++) {
10
+ if (a[i] !== b[i])
11
+ return false;
12
+ }
13
+ return true;
14
+ }
15
+ }
16
+ else if (isPlainObject(a) && isPlainObject(b)) {
7
17
  const keysA = Reflect.ownKeys(a);
8
18
  const keysB = Reflect.ownKeys(b);
9
19
  if (keysA.length === keysB.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"is-shallow-equal.js","sourceRoot":"","sources":["../../src/object/is-shallow-equal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,MAAM,UAAU,cAAc,CAAC,CAAU,EAAE,CAAU;IACnD,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAEvC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC7C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EACjB,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"is-shallow-equal.js","sourceRoot":"","sources":["../../src/object/is-shallow-equal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,6BAA8B;AAEhD,MAAM,UAAU,cAAc,CAAC,CAAU,EAAE,CAAU;IACnD,IAAI,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAEvC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAA;YACjC,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEhC,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,IACE,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC7C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EACjB,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "extra-utils",
3
- "version": "6.0.0",
3
+ "version": "6.1.0",
4
4
  "description": "Utilities for JavaScript and Typescript",
5
5
  "files": [
6
6
  "src",
@@ -32,6 +32,7 @@
32
32
  }
33
33
  },
34
34
  "devDependencies": {
35
+ "@blackglory/go": "^2.0.0",
35
36
  "@blackglory/pass": "^1.1.1",
36
37
  "@commitlint/cli": "^20.4.2",
37
38
  "@commitlint/config-conventional": "^20.4.2",
@@ -65,7 +65,9 @@ export function pipeAsync<A, B>(
65
65
  ): Promise<B>
66
66
  export function pipeAsync<T, U>(
67
67
  value: Awaitable<T>
68
- , ...operators: Array<(value: unknown) => Awaitable<unknown>>
68
+ // 此处any有意义, 不可替换为unknown.
69
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
+ , ...operators: Array<(value: any) => Awaitable<unknown>>
69
71
  ): Promise<U>
70
72
  export async function pipeAsync<T, U>(
71
73
  value: Awaitable<T>
package/src/fp/pipe.ts CHANGED
@@ -63,7 +63,9 @@ export function pipe<A, B>(
63
63
  ): B
64
64
  export function pipe<T, U>(
65
65
  value: T
66
- , ...operators: Array<(value: unknown) => unknown>
66
+ // 此处any有意义, 不可替换为unknown.
67
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
+ , ...operators: Array<(value: any) => unknown>
67
69
  ): U
68
70
  export function pipe<T, U>(
69
71
  value: T
@@ -1,10 +1,19 @@
1
1
  import { isReferenceEqual } from './is-reference-equal.js'
2
- import { isObject } from './is-object.js'
2
+ import { isPlainObject } from './is-plain-object.js'
3
+ import { isArray } from '@src/array/is-array.js'
3
4
 
4
5
  export function isDeepEqual(a: unknown, b: unknown): boolean {
5
6
  if (isReferenceEqual(a, b)) return true
6
7
 
7
- if (isObject(a) && isObject(b)) {
8
+ if (isArray(a) && isArray(b)) {
9
+ if (a.length === b.length) {
10
+ for (let i = 0; i < a.length; i++) {
11
+ if (!isDeepEqual(a[i], b[i])) return false
12
+ }
13
+
14
+ return true
15
+ }
16
+ } else if (isPlainObject(a) && isPlainObject(b)) {
8
17
  const keysA = Reflect.ownKeys(a)
9
18
  const keysB = Reflect.ownKeys(b)
10
19
 
@@ -1,10 +1,19 @@
1
1
  import { isReferenceEqual } from './is-reference-equal.js'
2
- import { isObject } from './is-object.js'
2
+ import { isPlainObject } from './is-plain-object.js'
3
+ import { isArray } from '@src/array/is-array.js'
3
4
 
4
5
  export function isShallowEqual(a: unknown, b: unknown): boolean {
5
6
  if (isReferenceEqual(a, b)) return true
6
7
 
7
- if (isObject(a) && isObject(b)) {
8
+ if (isArray(a) && isArray(b)) {
9
+ if (a.length === b.length) {
10
+ for (let i = 0; i < a.length; i++) {
11
+ if (a[i] !== b[i]) return false
12
+ }
13
+
14
+ return true
15
+ }
16
+ } else if (isPlainObject(a) && isPlainObject(b)) {
8
17
  const keysA = Reflect.ownKeys(a)
9
18
  const keysB = Reflect.ownKeys(b)
10
19