ut2 1.13.0 → 1.15.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.
Files changed (138) hide show
  1. package/README.md +3 -2
  2. package/dist/ut2.js +142 -34
  3. package/dist/ut2.js.map +1 -1
  4. package/dist/ut2.min.js +1 -1
  5. package/dist/ut2.min.js.map +1 -1
  6. package/es/findKey.js +1 -1
  7. package/es/guard.js +19 -0
  8. package/es/index.js +4 -1
  9. package/es/internals/helpers.js +1 -1
  10. package/es/mergeObject.js +17 -0
  11. package/es/retry.js +43 -0
  12. package/es/tryit.js +1 -1
  13. package/lib/findKey.js +3 -3
  14. package/lib/guard.js +21 -0
  15. package/lib/index.js +8 -2
  16. package/lib/internals/helpers.js +1 -1
  17. package/lib/mergeObject.js +19 -0
  18. package/lib/retry.js +45 -0
  19. package/lib/tryit.js +2 -2
  20. package/package.json +4 -2
  21. package/types/after.d.ts +0 -1
  22. package/types/allKeys.d.ts +0 -1
  23. package/types/allKeysIn.d.ts +0 -1
  24. package/types/before.d.ts +0 -1
  25. package/types/camelCase.d.ts +1 -2
  26. package/types/capitalize.d.ts +0 -1
  27. package/types/castArray.d.ts +0 -1
  28. package/types/ceil.d.ts +1 -2
  29. package/types/chunk.d.ts +0 -1
  30. package/types/compact.d.ts +1 -2
  31. package/types/constant.d.ts +0 -1
  32. package/types/debounce.d.ts +0 -1
  33. package/types/delay.d.ts +0 -1
  34. package/types/difference.d.ts +0 -1
  35. package/types/eq.d.ts +1 -2
  36. package/types/escape.d.ts +1 -2
  37. package/types/escapeRegExp.d.ts +1 -2
  38. package/types/filter.d.ts +0 -1
  39. package/types/floor.d.ts +1 -2
  40. package/types/fromPairs.d.ts +2 -1
  41. package/types/groupBy.d.ts +0 -1
  42. package/types/guard.d.ts +22 -0
  43. package/types/identity.d.ts +0 -1
  44. package/types/inRange.d.ts +0 -1
  45. package/types/index.d.ts +4 -1
  46. package/types/internals/helpers.d.ts +2 -6
  47. package/types/internals/native.d.ts +6 -12
  48. package/types/internals/root.d.ts +2 -3
  49. package/types/internals/types.d.ts +4 -0
  50. package/types/intersection.d.ts +0 -1
  51. package/types/invert.d.ts +1 -2
  52. package/types/isArguments.d.ts +0 -1
  53. package/types/isArray.d.ts +0 -1
  54. package/types/isArrayBuffer.d.ts +0 -1
  55. package/types/isArrayLike.d.ts +0 -1
  56. package/types/isArrayLikeObject.d.ts +0 -1
  57. package/types/isBigInt.d.ts +0 -1
  58. package/types/isBlob.d.ts +2 -3
  59. package/types/isBoolean.d.ts +0 -1
  60. package/types/isBuffer.d.ts +0 -1
  61. package/types/isDataView.d.ts +0 -1
  62. package/types/isDate.d.ts +0 -1
  63. package/types/isElement.d.ts +0 -1
  64. package/types/isEmpty.d.ts +0 -1
  65. package/types/isEqual.d.ts +0 -1
  66. package/types/isError.d.ts +0 -1
  67. package/types/isFile.d.ts +1 -2
  68. package/types/isFinite.d.ts +0 -1
  69. package/types/isFunction.d.ts +0 -1
  70. package/types/isInteger.d.ts +0 -1
  71. package/types/isLength.d.ts +1 -2
  72. package/types/isMap.d.ts +0 -1
  73. package/types/isMatch.d.ts +0 -1
  74. package/types/isNaN.d.ts +0 -1
  75. package/types/isNil.d.ts +0 -1
  76. package/types/isNull.d.ts +0 -1
  77. package/types/isNumber.d.ts +0 -1
  78. package/types/isObject.d.ts +1 -2
  79. package/types/isObjectLike.d.ts +0 -1
  80. package/types/isPlainObject.d.ts +0 -1
  81. package/types/isPromiseLike.d.ts +0 -1
  82. package/types/isRegExp.d.ts +0 -1
  83. package/types/isSafeInteger.d.ts +0 -1
  84. package/types/isSet.d.ts +0 -1
  85. package/types/isString.d.ts +0 -1
  86. package/types/isSymbol.d.ts +0 -1
  87. package/types/isTypedArray.d.ts +1 -2
  88. package/types/isUndefined.d.ts +0 -1
  89. package/types/isWeakMap.d.ts +0 -1
  90. package/types/isWeakSet.d.ts +0 -1
  91. package/types/isWindow.d.ts +0 -1
  92. package/types/kebabCase.d.ts +1 -2
  93. package/types/keys.d.ts +0 -1
  94. package/types/keysIn.d.ts +0 -1
  95. package/types/lowerCase.d.ts +0 -1
  96. package/types/map.d.ts +0 -1
  97. package/types/merge.d.ts +0 -1
  98. package/types/mergeObject.d.ts +41 -0
  99. package/types/min.d.ts +0 -1
  100. package/types/move.d.ts +1 -2
  101. package/types/negate.d.ts +0 -1
  102. package/types/noop.d.ts +0 -1
  103. package/types/nth.d.ts +0 -1
  104. package/types/nthArg.d.ts +0 -1
  105. package/types/omit.d.ts +0 -1
  106. package/types/omitBy.d.ts +1 -2
  107. package/types/once.d.ts +0 -1
  108. package/types/orderBy.d.ts +1 -1
  109. package/types/partition.d.ts +2 -3
  110. package/types/pascalCase.d.ts +1 -2
  111. package/types/pick.d.ts +0 -1
  112. package/types/pickBy.d.ts +1 -2
  113. package/types/random.d.ts +0 -1
  114. package/types/randomInt.d.ts +0 -1
  115. package/types/retry.d.ts +31 -0
  116. package/types/round.d.ts +1 -2
  117. package/types/shuffle.d.ts +0 -1
  118. package/types/sleep.d.ts +0 -1
  119. package/types/snakeCase.d.ts +1 -2
  120. package/types/throttle.d.ts +0 -1
  121. package/types/toFinite.d.ts +0 -1
  122. package/types/toInteger.d.ts +0 -1
  123. package/types/toLength.d.ts +1 -2
  124. package/types/toNumber.d.ts +0 -1
  125. package/types/toSafeInteger.d.ts +0 -1
  126. package/types/toString.d.ts +0 -1
  127. package/types/tryit.d.ts +1 -2
  128. package/types/unescape.d.ts +0 -1
  129. package/types/union.d.ts +0 -1
  130. package/types/uniq.d.ts +0 -1
  131. package/types/uniqueId.d.ts +0 -1
  132. package/types/unzip.d.ts +0 -1
  133. package/types/upperCase.d.ts +0 -1
  134. package/types/words.d.ts +1 -2
  135. package/types/xor.d.ts +0 -1
  136. package/types/zip.d.ts +0 -1
  137. package/es/node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.18.0_tslib@2.6.3_typescript@5.5.2/node_modules/tslib/tslib.es6.js +0 -62
  138. package/lib/node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.18.0_tslib@2.6.3_typescript@5.5.2/node_modules/tslib/tslib.es6.js +0 -66
package/es/findKey.js CHANGED
@@ -1,4 +1,4 @@
1
- import { __values, __read } from './node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.18.0_tslib@2.6.3_typescript@5.5.2/node_modules/tslib/tslib.es6.js';
1
+ import { __values, __read } from 'tslib';
2
2
  import forEach from './forEach.js';
3
3
  import { stubFlase } from './internals/helpers.js';
4
4
  import isMap from './isMap.js';
package/es/guard.js ADDED
@@ -0,0 +1,19 @@
1
+ import isPromiseLike from './isPromiseLike.js';
2
+
3
+ var guard = function (fn, shouldGuard) {
4
+ var _guard = function (err) {
5
+ if (shouldGuard && !shouldGuard(err)) {
6
+ throw err;
7
+ }
8
+ return undefined;
9
+ };
10
+ try {
11
+ var result = fn();
12
+ return isPromiseLike(result) ? result.catch(_guard) : result;
13
+ }
14
+ catch (err) {
15
+ return _guard(err);
16
+ }
17
+ };
18
+
19
+ export { guard as default };
package/es/index.js CHANGED
@@ -90,6 +90,7 @@ export { default as invert } from './invert.js';
90
90
  export { default as keys } from './keys.js';
91
91
  export { default as keysIn } from './keysIn.js';
92
92
  export { default as merge } from './merge.js';
93
+ export { default as mergeObject } from './mergeObject.js';
93
94
  export { default as omit } from './omit.js';
94
95
  export { default as omitBy } from './omitBy.js';
95
96
  export { default as pick } from './pick.js';
@@ -115,14 +116,16 @@ export { default as defaultTo } from './defaultTo.js';
115
116
  export { default as eq } from './eq.js';
116
117
  export { default as gt } from './gt.js';
117
118
  export { default as gte } from './gte.js';
119
+ export { default as guard } from './guard.js';
118
120
  export { default as identity } from './identity.js';
121
+ export { default as list } from './list.js';
119
122
  export { default as lt } from './lt.js';
120
123
  export { default as lte } from './lte.js';
121
124
  export { default as noop } from './noop.js';
122
125
  export { default as nthArg } from './nthArg.js';
123
126
  export { default as range } from './range.js';
127
+ export { default as retry } from './retry.js';
124
128
  export { default as sleep } from './sleep.js';
125
- export { default as list } from './list.js';
126
129
  export { default as times } from './times.js';
127
130
  export { default as toFinite } from './toFinite.js';
128
131
  export { default as toInteger } from './toInteger.js';
@@ -2,7 +2,7 @@ import isObjectLike from '../isObjectLike.js';
2
2
  import getTag from './getTag.js';
3
3
  import { argumentsTag, stringUndefined, functionProtoToString } from './native.js';
4
4
 
5
- var VERSION = "1.13.0";
5
+ var VERSION = "1.15.0";
6
6
  var isBrowser = typeof window !== stringUndefined && isObjectLike(window) && typeof document !== stringUndefined && isObjectLike(document) && window.document === document;
7
7
  var supportedArgumentsType = getTag((function () { return arguments; })()) === argumentsTag;
8
8
  var FUNC_ERROR_TEXT = 'Expected a function';
@@ -0,0 +1,17 @@
1
+ import { __read, __spreadArray } from 'tslib';
2
+ import merge from './merge.js';
3
+
4
+ var mergeObject = function (object, source) {
5
+ var args = [];
6
+ for (var _i = 2; _i < arguments.length; _i++) {
7
+ args[_i - 2] = arguments[_i];
8
+ }
9
+ if (args.length > 0) {
10
+ var _a = __read(args), arg1 = _a[0], restArgs = _a.slice(1);
11
+ var obj = merge(object, source, merge.NOT_MERGE_ARRAYS);
12
+ return mergeObject.apply(void 0, __spreadArray([obj, arg1], __read(restArgs), false));
13
+ }
14
+ return merge(object, source, merge.NOT_MERGE_ARRAYS);
15
+ };
16
+
17
+ export { mergeObject as default };
package/es/retry.js ADDED
@@ -0,0 +1,43 @@
1
+ import { __awaiter, __generator, __read } from 'tslib';
2
+ import sleep from './sleep.js';
3
+ import tryit from './tryit.js';
4
+
5
+ function retry(fn, options) {
6
+ return __awaiter(this, void 0, void 0, function () {
7
+ var _a, _b, times, delay, backoff, exit, i, _c, err, result;
8
+ return __generator(this, function (_d) {
9
+ switch (_d.label) {
10
+ case 0:
11
+ _a = options || {}, _b = _a.times, times = _b === void 0 ? 3 : _b, delay = _a.delay, backoff = _a.backoff, exit = _a.exit;
12
+ i = 1;
13
+ _d.label = 1;
14
+ case 1:
15
+ if (!(i <= times)) return [3, 7];
16
+ return [4, tryit(fn)()];
17
+ case 2:
18
+ _c = __read.apply(void 0, [_d.sent(), 2]), err = _c[0], result = _c[1];
19
+ if (!err)
20
+ return [2, result];
21
+ if ((exit && exit(err, i)) || i === times)
22
+ throw err;
23
+ if (!delay) return [3, 4];
24
+ return [4, sleep(delay)];
25
+ case 3:
26
+ _d.sent();
27
+ _d.label = 4;
28
+ case 4:
29
+ if (!backoff) return [3, 6];
30
+ return [4, sleep(backoff(i))];
31
+ case 5:
32
+ _d.sent();
33
+ _d.label = 6;
34
+ case 6:
35
+ i++;
36
+ return [3, 1];
37
+ case 7: return [2];
38
+ }
39
+ });
40
+ });
41
+ }
42
+
43
+ export { retry as default };
package/es/tryit.js CHANGED
@@ -1,4 +1,4 @@
1
- import { __spreadArray, __read } from './node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.18.0_tslib@2.6.3_typescript@5.5.2/node_modules/tslib/tslib.es6.js';
1
+ import { __spreadArray, __read } from 'tslib';
2
2
  import { nativeUndefined } from './internals/native.js';
3
3
  import isPromiseLike from './isPromiseLike.js';
4
4
 
package/lib/findKey.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('./node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.18.0_tslib@2.6.3_typescript@5.5.2/node_modules/tslib/tslib.es6.js');
3
+ var tslib = require('tslib');
4
4
  var forEach = require('./forEach.js');
5
5
  var helpers = require('./internals/helpers.js');
6
6
  var isMap = require('./isMap.js');
@@ -12,8 +12,8 @@ var findKey = function (obj, predicate) {
12
12
  var key;
13
13
  if (isMap(obj)) {
14
14
  try {
15
- for (var obj_1 = tslib_es6.__values(obj), obj_1_1 = obj_1.next(); !obj_1_1.done; obj_1_1 = obj_1.next()) {
16
- var _b = tslib_es6.__read(obj_1_1.value, 2), k = _b[0], v = _b[1];
15
+ for (var obj_1 = tslib.__values(obj), obj_1_1 = obj_1.next(); !obj_1_1.done; obj_1_1 = obj_1.next()) {
16
+ var _b = tslib.__read(obj_1_1.value, 2), k = _b[0], v = _b[1];
17
17
  if (predicate(v, k)) {
18
18
  key = k;
19
19
  break;
package/lib/guard.js ADDED
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var isPromiseLike = require('./isPromiseLike.js');
4
+
5
+ var guard = function (fn, shouldGuard) {
6
+ var _guard = function (err) {
7
+ if (shouldGuard && !shouldGuard(err)) {
8
+ throw err;
9
+ }
10
+ return undefined;
11
+ };
12
+ try {
13
+ var result = fn();
14
+ return isPromiseLike(result) ? result.catch(_guard) : result;
15
+ }
16
+ catch (err) {
17
+ return _guard(err);
18
+ }
19
+ };
20
+
21
+ module.exports = guard;
package/lib/index.js CHANGED
@@ -92,6 +92,7 @@ var invert = require('./invert.js');
92
92
  var keys = require('./keys.js');
93
93
  var keysIn = require('./keysIn.js');
94
94
  var merge = require('./merge.js');
95
+ var mergeObject = require('./mergeObject.js');
95
96
  var omit = require('./omit.js');
96
97
  var omitBy = require('./omitBy.js');
97
98
  var pick = require('./pick.js');
@@ -117,14 +118,16 @@ var defaultTo = require('./defaultTo.js');
117
118
  var eq = require('./eq.js');
118
119
  var gt = require('./gt.js');
119
120
  var gte = require('./gte.js');
121
+ var guard = require('./guard.js');
120
122
  var identity = require('./identity.js');
123
+ var list = require('./list.js');
121
124
  var lt = require('./lt.js');
122
125
  var lte = require('./lte.js');
123
126
  var noop = require('./noop.js');
124
127
  var nthArg = require('./nthArg.js');
125
128
  var range = require('./range.js');
129
+ var retry = require('./retry.js');
126
130
  var sleep = require('./sleep.js');
127
- var list = require('./list.js');
128
131
  var times = require('./times.js');
129
132
  var toFinite = require('./toFinite.js');
130
133
  var toInteger = require('./toInteger.js');
@@ -232,6 +235,7 @@ exports.invert = invert;
232
235
  exports.keys = keys;
233
236
  exports.keysIn = keysIn;
234
237
  exports.merge = merge;
238
+ exports.mergeObject = mergeObject;
235
239
  exports.omit = omit;
236
240
  exports.omitBy = omitBy;
237
241
  exports.pick = pick;
@@ -257,14 +261,16 @@ exports.defaultTo = defaultTo;
257
261
  exports.eq = eq;
258
262
  exports.gt = gt;
259
263
  exports.gte = gte;
264
+ exports.guard = guard;
260
265
  exports.identity = identity;
266
+ exports.list = list;
261
267
  exports.lt = lt;
262
268
  exports.lte = lte;
263
269
  exports.noop = noop;
264
270
  exports.nthArg = nthArg;
265
271
  exports.range = range;
272
+ exports.retry = retry;
266
273
  exports.sleep = sleep;
267
- exports.list = list;
268
274
  exports.times = times;
269
275
  exports.toFinite = toFinite;
270
276
  exports.toInteger = toInteger;
@@ -4,7 +4,7 @@ var isObjectLike = require('../isObjectLike.js');
4
4
  var getTag = require('./getTag.js');
5
5
  var native = require('./native.js');
6
6
 
7
- var VERSION = "1.13.0";
7
+ var VERSION = "1.15.0";
8
8
  var isBrowser = typeof window !== native.stringUndefined && isObjectLike(window) && typeof document !== native.stringUndefined && isObjectLike(document) && window.document === document;
9
9
  var supportedArgumentsType = getTag((function () { return arguments; })()) === native.argumentsTag;
10
10
  var FUNC_ERROR_TEXT = 'Expected a function';
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var merge = require('./merge.js');
5
+
6
+ var mergeObject = function (object, source) {
7
+ var args = [];
8
+ for (var _i = 2; _i < arguments.length; _i++) {
9
+ args[_i - 2] = arguments[_i];
10
+ }
11
+ if (args.length > 0) {
12
+ var _a = tslib.__read(args), arg1 = _a[0], restArgs = _a.slice(1);
13
+ var obj = merge(object, source, merge.NOT_MERGE_ARRAYS);
14
+ return mergeObject.apply(void 0, tslib.__spreadArray([obj, arg1], tslib.__read(restArgs), false));
15
+ }
16
+ return merge(object, source, merge.NOT_MERGE_ARRAYS);
17
+ };
18
+
19
+ module.exports = mergeObject;
package/lib/retry.js ADDED
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var sleep = require('./sleep.js');
5
+ var tryit = require('./tryit.js');
6
+
7
+ function retry(fn, options) {
8
+ return tslib.__awaiter(this, void 0, void 0, function () {
9
+ var _a, _b, times, delay, backoff, exit, i, _c, err, result;
10
+ return tslib.__generator(this, function (_d) {
11
+ switch (_d.label) {
12
+ case 0:
13
+ _a = options || {}, _b = _a.times, times = _b === void 0 ? 3 : _b, delay = _a.delay, backoff = _a.backoff, exit = _a.exit;
14
+ i = 1;
15
+ _d.label = 1;
16
+ case 1:
17
+ if (!(i <= times)) return [3, 7];
18
+ return [4, tryit(fn)()];
19
+ case 2:
20
+ _c = tslib.__read.apply(void 0, [_d.sent(), 2]), err = _c[0], result = _c[1];
21
+ if (!err)
22
+ return [2, result];
23
+ if ((exit && exit(err, i)) || i === times)
24
+ throw err;
25
+ if (!delay) return [3, 4];
26
+ return [4, sleep(delay)];
27
+ case 3:
28
+ _d.sent();
29
+ _d.label = 4;
30
+ case 4:
31
+ if (!backoff) return [3, 6];
32
+ return [4, sleep(backoff(i))];
33
+ case 5:
34
+ _d.sent();
35
+ _d.label = 6;
36
+ case 6:
37
+ i++;
38
+ return [3, 1];
39
+ case 7: return [2];
40
+ }
41
+ });
42
+ });
43
+ }
44
+
45
+ module.exports = retry;
package/lib/tryit.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('./node_modules/.pnpm/@rollup_plugin-typescript@11.1.6_rollup@4.18.0_tslib@2.6.3_typescript@5.5.2/node_modules/tslib/tslib.es6.js');
3
+ var tslib = require('tslib');
4
4
  var native = require('./internals/native.js');
5
5
  var isPromiseLike = require('./isPromiseLike.js');
6
6
 
@@ -11,7 +11,7 @@ var tryit = function (fn) {
11
11
  args[_i] = arguments[_i];
12
12
  }
13
13
  try {
14
- var result = fn.apply(void 0, tslib_es6.__spreadArray([], tslib_es6.__read(args), false));
14
+ var result = fn.apply(void 0, tslib.__spreadArray([], tslib.__read(args), false));
15
15
  if (isPromiseLike(result)) {
16
16
  return result
17
17
  .then(function (res) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ut2",
3
- "version": "1.13.0",
3
+ "version": "1.15.0",
4
4
  "author": "caijf",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",
@@ -89,11 +89,13 @@
89
89
  "prettier": "^3.3.2",
90
90
  "rollup": "^4.18.0",
91
91
  "ts-jest": "^29.1.5",
92
- "tslib": "^2.6.3",
93
92
  "typescript": "^5.5.2",
94
93
  "underscore": "^1.13.6"
95
94
  },
96
95
  "engines": {
97
96
  "node": ">=10"
97
+ },
98
+ "dependencies": {
99
+ "tslib": "^2.8.0"
98
100
  }
99
101
  }
package/types/after.d.ts CHANGED
@@ -2,7 +2,6 @@ import { FunctionAny } from './internals/types';
2
2
  /**
3
3
  * 创建一个函数,当它被调用 `n` 或更多次之后触发 `func`。
4
4
  *
5
- * @static
6
5
  * @alias module:Function.after
7
6
  * @since 1.0.0
8
7
  * @param {number} n 函数应该在调用多少次后执行。
@@ -5,7 +5,6 @@
5
5
  *
6
6
  * 注意:`Symbol` 键属性在字符串属性后面。
7
7
  *
8
- * @static
9
8
  * @alias module:Object.allKeys
10
9
  * @since 1.1.0
11
10
  * @param {Object} object 要查询的对象。
@@ -5,7 +5,6 @@
5
5
  *
6
6
  * 注意:`Symbol` 键属性在字符串属性后面。
7
7
  *
8
- * @static
9
8
  * @alias module:Object.allKeysIn
10
9
  * @since 1.1.0
11
10
  * @param {Object} object 要查询的对象。
package/types/before.d.ts CHANGED
@@ -2,7 +2,6 @@ import { FunctionAny } from './internals/types';
2
2
  /**
3
3
  * 创建一个调用 `func` 的函数,调用次数少于 `n` 次。之后再调用这个函数,将返回最后一次调用 `func` 的结果。
4
4
  *
5
- * @static
6
5
  * @alias module:Function.before
7
6
  * @since 1.0.0
8
7
  * @param {number} n 不再调用 `func` 的次数。
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * 转换字符串为驼峰写法。
3
3
  *
4
- * @static
5
4
  * @alias module:String.camelCase
6
5
  * @since 1.0.0
7
- * @see {@link https://en.wikipedia.org/wiki/Camel_case Camel_case}
6
+ * @see {@link https://en.wikipedia.org/wiki/Camel_case | Camel_case}
8
7
  * @param {string} string 要转换的字符串。
9
8
  * @param {RegExp | string} [pattern] 拆分词组的匹配模式。
10
9
  * @returns {string} 驼峰写法的字符串。
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * 转换字符串首字母大写,剩下为小写。
3
3
  *
4
- * @static
5
4
  * @alias module:String.capitalize
6
5
  * @since 1.0.0
7
6
  * @param {string} string 要转换的字符串。
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * 如果值不是数组,则将其转换为数组。
3
3
  *
4
- * @static
5
4
  * @alias module:Util.castArray
6
5
  * @since 1.0.0
7
6
  * @param {*} [value] 要处理的值。
package/types/ceil.d.ts CHANGED
@@ -3,10 +3,9 @@
3
3
  *
4
4
  * 注:精度可以理解为保留几位小数。
5
5
  *
6
- * @static
7
6
  * @alias module:Math.ceil
8
7
  * @since 1.0.0
9
- * @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/round#小数舍入 小数舍入}
8
+ * @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/round#小数舍入 | 小数舍入}
10
9
  * @param {number} number 要向上舍入的值。
11
10
  * @param {number} [precision=0] 向上舍入的精度。默认 `0`。
12
11
  * @returns {number} 向上舍入的值。
package/types/chunk.d.ts CHANGED
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * 如果数组无法被分割成全部等长的区块,那么最后剩余的元素将组成一个区块。
5
5
  *
6
- * @static
7
6
  * @alias module:Array.chunk
8
7
  * @since 1.0.0
9
8
  * @param {Array} array 要处理的数组。
@@ -3,10 +3,9 @@
3
3
  *
4
4
  * 例如 `false` `null` `0` `""` `undefined` `NaN` 都被认为是假值。
5
5
  *
6
- * @static
7
6
  * @alias module:Array.compact
8
7
  * @since 1.0.0
9
- * @see {@link https://developer.mozilla.org/zh-CN/docs/Glossary/Falsy Falsy}
8
+ * @see {@link https://developer.mozilla.org/zh-CN/docs/Glossary/Falsy | Falsy}
10
9
  * @param {Array} array 待处理的数组。
11
10
  * @returns {Array} 过滤掉假值的新数组。
12
11
  * @example
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * 创建一个返回 `value` 的函数。
3
3
  *
4
- * @static
5
4
  * @alias module:Util.constant
6
5
  * @since 1.0.0
7
6
  * @param {*} value 新函数返回的值。
@@ -7,7 +7,6 @@ import { FunctionAny } from './internals/types';
7
7
  * 2. `flush` 方法立即调用。
8
8
  * 3. `pending` 方法是否在等待函数执行。
9
9
  *
10
- * @static
11
10
  * @alias module:Function.debounce
12
11
  * @since 1.0.0
13
12
  * @param {Function} func 要防抖动的函数。
package/types/delay.d.ts CHANGED
@@ -2,7 +2,6 @@ import { FunctionAny } from './internals/types';
2
2
  /**
3
3
  * 延迟 `wait` 毫秒后调用 `func`。
4
4
  *
5
- * @static
6
5
  * @alias module:Function.delay
7
6
  * @since 1.0.0
8
7
  * @param {Function} func 要延迟的函数。
@@ -6,7 +6,6 @@ import { IterateeParam } from './internals/types';
6
6
  *
7
7
  * 默认使用了 [`SameValueZero`](https://tc39.es/ecma262/#sec-samevaluezero) 做等值比较。如果 `strictCheck=true` 将使用 [`SameValue`](https://tc39.es/ecma262/#sec-samevalue) 做等值比较。
8
8
  *
9
- * @static
10
9
  * @alias module:Array.difference
11
10
  * @since 1.0.0
12
11
  * @param {Array} array 要检查的数组。
package/types/eq.d.ts CHANGED
@@ -3,10 +3,9 @@
3
3
  *
4
4
  * 默认使用了 [`SameValueZero`](https://tc39.es/ecma262/#sec-samevaluezero) 做等值比较。如果 `strictCheck=true` 将使用 [`SameValue`](https://tc39.es/ecma262/#sec-samevalue) 做等值比较。
5
5
  *
6
- * @static
7
6
  * @alias module:Util.eq
8
7
  * @since 1.0.0
9
- * @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness JavaScript 中的相等性判断}
8
+ * @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness | JavaScript 中的相等性判断}
10
9
  * @param {*} value 要比较的值。
11
10
  * @param {*} other 另一个要比较的值。
12
11
  * @param {boolean} [strictCheck=false] 严格比较,区分 `0` `-0`。默认 `false`。
package/types/escape.d.ts CHANGED
@@ -7,10 +7,9 @@
7
7
  *
8
8
  * 当解析 HTML 时,总应该在[属性值上使用引号](http://wonko.com/post/html-escaping)以减少 XSS 的可能性。
9
9
  *
10
- * @static
11
10
  * @alias module:String.escape
12
11
  * @since 1.0.0
13
- * @see {@link https://mathiasbynens.be/notes/ambiguous-ampersands ambiguous-ampersands}
12
+ * @see {@link https://mathiasbynens.be/notes/ambiguous-ampersands | ambiguous-ampersands}
14
13
  * @param {string} string 要转义的字符串。
15
14
  * @returns {string} 转义后的字符串。
16
15
  * @example
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * 转义 `RegExp` 字符串中特殊的字符 `\\` `^` `$` `.` `*` `+` `?` `-` `(` `)` `[` `]` `{` `}` `|`。
3
3
  *
4
- * @static
5
4
  * @alias module:String.escapeRegExp
6
5
  * @since 1.0.0
7
- * @see {@link https://tc39.es/ecma262/multipage/text-processing.html#sec-patterns syntax characters}
6
+ * @see {@link https://tc39.es/ecma262/multipage/text-processing.html#sec-patterns | syntax characters}
8
7
  * @param {string} string 要转义的字符串。
9
8
  * @returns {string} 转义后的字符串。
10
9
  * @example
package/types/filter.d.ts CHANGED
@@ -10,7 +10,6 @@ interface Filter {
10
10
  *
11
11
  * `predicate` 调用时会传入三个参数 `value` `index|key` `collection`。
12
12
  *
13
- * @static
14
13
  * @alias module:Collection.filter
15
14
  * @since 1.7.0
16
15
  * @param {ArrayLike<any> | Object} collection 要迭代的集合。
package/types/floor.d.ts CHANGED
@@ -3,10 +3,9 @@
3
3
  *
4
4
  * 注:精度可以理解为保留几位小数。
5
5
  *
6
- * @static
7
6
  * @alias module:Math.floor
8
7
  * @since 1.0.0
9
- * @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/round#小数舍入 小数舍入}
8
+ * @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/round#小数舍入 | 小数舍入}
10
9
  * @param {number} number 要向下舍入的值。
11
10
  * @param {number} [precision=0] 向下舍入的精度。默认 `0`。
12
11
  * @returns {number} 向下舍入的值。
@@ -7,7 +7,8 @@ interface FromPairs {
7
7
  *
8
8
  * 与 [Object.entries](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) 正好相反。
9
9
  *
10
- * @static
10
+ * @deprecated 即将废弃,请使用 `Object.fromEntries` 替代。
11
+ * @private
11
12
  * @alias module:Array.fromPairs
12
13
  * @since 1.0.0
13
14
  * @param {Array} array 键值对数组。
@@ -10,7 +10,6 @@ interface GroupBy {
10
10
  *
11
11
  * `iteratee` 调用时会传入三个参数 `value` `index|key` `collection`。
12
12
  *
13
- * @static
14
13
  * @alias module:Collection.groupBy
15
14
  * @since 1.0.0
16
15
  * @param {ArrayLike<any> | Object} collection 一个用来迭代的集合。
@@ -0,0 +1,22 @@
1
+ import { SingleAsyncFn, SingleSyncFn } from './internals/types';
2
+ interface Guard {
3
+ <R>(fn: SingleAsyncFn<R>, shouldGuard?: () => boolean): Promise<R | undefined>;
4
+ <R>(fn: SingleSyncFn<R>, shouldGuard?: () => boolean): R | undefined;
5
+ }
6
+ /**
7
+ * 函数守卫。
8
+ *
9
+ * @alias module:Util.guard
10
+ * @since 1.14.0
11
+ * @param {Function} fn 要执行的函数。
12
+ * @param {Function} [shouldGuard] 函数守卫断言。如果返回 `Truthy` 表示需要守卫,否则不需要守卫。
13
+ * @returns 如果函数执行成功,正常返回结果;如果异步函数拒绝或抛出错误时,有函数守卫返回 `undefined`,否则抛出错误。
14
+ * @example
15
+ * guard(() => 42); // 42
16
+ * await guard(() => Primise.resolve(42)); // 42
17
+ *
18
+ * guard(() => { throw new Error() }); // undefined
19
+ * await guard(() => Promise.reject()); // undefined
20
+ */
21
+ declare const guard: Guard;
22
+ export default guard;
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * 返回第一个参数。
3
3
  *
4
- * @static
5
4
  * @alias module:Util.identity
6
5
  * @since 1.0.0
7
6
  * @param {*} value 任意值。
@@ -3,7 +3,6 @@
3
3
  *
4
4
  * 如果 `start` 大于 `end` 会自动交换范围参数。
5
5
  *
6
- * @static
7
6
  * @alias module:Number.inRange
8
7
  * @since 1.0.0
9
8
  * @param {number} number 要检查的值。
package/types/index.d.ts CHANGED
@@ -132,6 +132,7 @@ export { default as invert } from './invert';
132
132
  export { default as keys } from './keys';
133
133
  export { default as keysIn } from './keysIn';
134
134
  export { default as merge } from './merge';
135
+ export { default as mergeObject } from './mergeObject';
135
136
  export { default as omit } from './omit';
136
137
  export { default as omitBy } from './omitBy';
137
138
  export { default as pick } from './pick';
@@ -169,14 +170,16 @@ export { default as defaultTo } from './defaultTo';
169
170
  export { default as eq } from './eq';
170
171
  export { default as gt } from './gt';
171
172
  export { default as gte } from './gte';
173
+ export { default as guard } from './guard';
172
174
  export { default as identity } from './identity';
175
+ export { default as list } from './list';
173
176
  export { default as lt } from './lt';
174
177
  export { default as lte } from './lte';
175
178
  export { default as noop } from './noop';
176
179
  export { default as nthArg } from './nthArg';
177
180
  export { default as range } from './range';
181
+ export { default as retry } from './retry';
178
182
  export { default as sleep } from './sleep';
179
- export { default as list } from './list';
180
183
  export { default as times } from './times';
181
184
  export { default as toFinite } from './toFinite';
182
185
  export { default as toInteger } from './toInteger';
@@ -1,14 +1,10 @@
1
1
  /**
2
- * ut2 版本号。
3
- *
4
- * @static
2
+ * @summary ut2 版本号。
5
3
  * @since 1.0.0
6
4
  */
7
5
  export declare const VERSION: string;
8
6
  /**
9
- * 当前运行环境是否为浏览器
10
- *
11
- * @static
7
+ * @summary 当前运行环境是否为浏览器。
12
8
  * @since 1.10.0
13
9
  */
14
10
  export declare const isBrowser: boolean;