ut2 1.11.6 → 1.13.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/es/findKey.js ADDED
@@ -0,0 +1,40 @@
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';
2
+ import forEach from './forEach.js';
3
+ import { stubFlase } from './internals/helpers.js';
4
+ import isMap from './isMap.js';
5
+ import isObject from './isObject.js';
6
+
7
+ var findKey = function (obj, predicate) {
8
+ var e_1, _a;
9
+ if (predicate === void 0) { predicate = stubFlase; }
10
+ var key;
11
+ if (isMap(obj)) {
12
+ try {
13
+ for (var obj_1 = __values(obj), obj_1_1 = obj_1.next(); !obj_1_1.done; obj_1_1 = obj_1.next()) {
14
+ var _b = __read(obj_1_1.value, 2), k = _b[0], v = _b[1];
15
+ if (predicate(v, k)) {
16
+ key = k;
17
+ break;
18
+ }
19
+ }
20
+ }
21
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
22
+ finally {
23
+ try {
24
+ if (obj_1_1 && !obj_1_1.done && (_a = obj_1.return)) _a.call(obj_1);
25
+ }
26
+ finally { if (e_1) throw e_1.error; }
27
+ }
28
+ }
29
+ else if (isObject(obj)) {
30
+ forEach(obj, function (v, k) {
31
+ if (predicate(v, k)) {
32
+ key = k;
33
+ return false;
34
+ }
35
+ });
36
+ }
37
+ return key;
38
+ };
39
+
40
+ export { findKey as default };
package/es/index.js CHANGED
@@ -85,6 +85,7 @@ export { default as random } from './random.js';
85
85
  export { default as randomInt } from './randomInt.js';
86
86
  export { default as allKeys } from './allKeys.js';
87
87
  export { default as allKeysIn } from './allKeysIn.js';
88
+ export { default as findKey } from './findKey.js';
88
89
  export { default as invert } from './invert.js';
89
90
  export { default as keys } from './keys.js';
90
91
  export { default as keysIn } from './keysIn.js';
@@ -121,6 +122,7 @@ export { default as noop } from './noop.js';
121
122
  export { default as nthArg } from './nthArg.js';
122
123
  export { default as range } from './range.js';
123
124
  export { default as sleep } from './sleep.js';
125
+ export { default as list } from './list.js';
124
126
  export { default as times } from './times.js';
125
127
  export { default as toFinite } from './toFinite.js';
126
128
  export { default as toInteger } from './toInteger.js';
@@ -128,6 +130,7 @@ export { default as toLength } from './toLength.js';
128
130
  export { default as toNumber } from './toNumber.js';
129
131
  export { default as toSafeInteger } from './toSafeInteger.js';
130
132
  export { default as toString } from './toString.js';
133
+ export { default as tryit } from './tryit.js';
131
134
  export { default as uniqueId } from './uniqueId.js';
132
135
  export { MAX_ARRAY_LENGTH, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from './internals/native.js';
133
136
  export { VERSION, isBrowser } from './internals/helpers.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.11.6";
5
+ var VERSION = "1.13.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';
package/es/list.js ADDED
@@ -0,0 +1,22 @@
1
+ import identity from './identity.js';
2
+ import { MAX_SAFE_INTEGER, mathMin, mathFloor, MAX_ARRAY_LENGTH } from './internals/native.js';
3
+ import isInteger from './isInteger.js';
4
+ import isFinite from './isFinite.js';
5
+
6
+ var list = function (n, iteratee) {
7
+ if (iteratee === void 0) { iteratee = identity; }
8
+ if (n < 1 || n > MAX_SAFE_INTEGER) {
9
+ return [];
10
+ }
11
+ var index = 0;
12
+ var length = mathMin(isInteger(n) ? n : mathFloor(isFinite(n) ? n : 0), MAX_ARRAY_LENGTH);
13
+ var result = Array(length);
14
+ var func = typeof iteratee === 'function' ? iteratee : identity;
15
+ while (index < length) {
16
+ result[index] = func(index);
17
+ index++;
18
+ }
19
+ return result;
20
+ };
21
+
22
+ export { list as default };
@@ -0,0 +1,62 @@
1
+ /******************************************************************************
2
+ Copyright (c) Microsoft Corporation.
3
+
4
+ Permission to use, copy, modify, and/or distribute this software for any
5
+ purpose with or without fee is hereby granted.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
8
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
10
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13
+ PERFORMANCE OF THIS SOFTWARE.
14
+ ***************************************************************************** */
15
+ /* global Reflect, Promise, SuppressedError, Symbol */
16
+
17
+
18
+ function __values(o) {
19
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
20
+ if (m) return m.call(o);
21
+ if (o && typeof o.length === "number") return {
22
+ next: function () {
23
+ if (o && i >= o.length) o = void 0;
24
+ return { value: o && o[i++], done: !o };
25
+ }
26
+ };
27
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
28
+ }
29
+
30
+ function __read(o, n) {
31
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
32
+ if (!m) return o;
33
+ var i = m.call(o), r, ar = [], e;
34
+ try {
35
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
36
+ }
37
+ catch (error) { e = { error: error }; }
38
+ finally {
39
+ try {
40
+ if (r && !r.done && (m = i["return"])) m.call(i);
41
+ }
42
+ finally { if (e) throw e.error; }
43
+ }
44
+ return ar;
45
+ }
46
+
47
+ function __spreadArray(to, from, pack) {
48
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
49
+ if (ar || !(i in from)) {
50
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
51
+ ar[i] = from[i];
52
+ }
53
+ }
54
+ return to.concat(ar || Array.prototype.slice.call(from));
55
+ }
56
+
57
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
58
+ var e = new Error(message);
59
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
60
+ };
61
+
62
+ export { __read, __spreadArray, __values };
package/es/times.js CHANGED
@@ -1,22 +1,5 @@
1
- import identity from './identity.js';
2
- import { MAX_SAFE_INTEGER, mathMin, mathFloor, MAX_ARRAY_LENGTH } from './internals/native.js';
3
- import isInteger from './isInteger.js';
4
- import isFinite from './isFinite.js';
1
+ import list from './list.js';
5
2
 
6
- var times = function (n, iteratee) {
7
- if (iteratee === void 0) { iteratee = identity; }
8
- if (n < 1 || n > MAX_SAFE_INTEGER) {
9
- return [];
10
- }
11
- var index = 0;
12
- var length = mathMin(isInteger(n) ? n : mathFloor(isFinite(n) ? n : 0), MAX_ARRAY_LENGTH);
13
- var result = Array(length);
14
- var func = typeof iteratee === 'function' ? iteratee : identity;
15
- while (index < length) {
16
- result[index] = func(index);
17
- index++;
18
- }
19
- return result;
20
- };
3
+ var times = list;
21
4
 
22
5
  export { times as default };
package/es/tryit.js ADDED
@@ -0,0 +1,30 @@
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';
2
+ import { nativeUndefined } from './internals/native.js';
3
+ import isPromiseLike from './isPromiseLike.js';
4
+
5
+ var tryit = function (fn) {
6
+ return function () {
7
+ var args = [];
8
+ for (var _i = 0; _i < arguments.length; _i++) {
9
+ args[_i] = arguments[_i];
10
+ }
11
+ try {
12
+ var result = fn.apply(void 0, __spreadArray([], __read(args), false));
13
+ if (isPromiseLike(result)) {
14
+ return result
15
+ .then(function (res) {
16
+ return [null, res];
17
+ })
18
+ .catch(function (err) {
19
+ return [err, nativeUndefined];
20
+ });
21
+ }
22
+ return [null, result];
23
+ }
24
+ catch (err) {
25
+ return [err, nativeUndefined];
26
+ }
27
+ };
28
+ };
29
+
30
+ export { tryit as default };
package/lib/findKey.js ADDED
@@ -0,0 +1,42 @@
1
+ 'use strict';
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');
4
+ var forEach = require('./forEach.js');
5
+ var helpers = require('./internals/helpers.js');
6
+ var isMap = require('./isMap.js');
7
+ var isObject = require('./isObject.js');
8
+
9
+ var findKey = function (obj, predicate) {
10
+ var e_1, _a;
11
+ if (predicate === void 0) { predicate = helpers.stubFlase; }
12
+ var key;
13
+ if (isMap(obj)) {
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];
17
+ if (predicate(v, k)) {
18
+ key = k;
19
+ break;
20
+ }
21
+ }
22
+ }
23
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
24
+ finally {
25
+ try {
26
+ if (obj_1_1 && !obj_1_1.done && (_a = obj_1.return)) _a.call(obj_1);
27
+ }
28
+ finally { if (e_1) throw e_1.error; }
29
+ }
30
+ }
31
+ else if (isObject(obj)) {
32
+ forEach(obj, function (v, k) {
33
+ if (predicate(v, k)) {
34
+ key = k;
35
+ return false;
36
+ }
37
+ });
38
+ }
39
+ return key;
40
+ };
41
+
42
+ module.exports = findKey;
package/lib/index.js CHANGED
@@ -87,6 +87,7 @@ var random = require('./random.js');
87
87
  var randomInt = require('./randomInt.js');
88
88
  var allKeys = require('./allKeys.js');
89
89
  var allKeysIn = require('./allKeysIn.js');
90
+ var findKey = require('./findKey.js');
90
91
  var invert = require('./invert.js');
91
92
  var keys = require('./keys.js');
92
93
  var keysIn = require('./keysIn.js');
@@ -123,6 +124,7 @@ var noop = require('./noop.js');
123
124
  var nthArg = require('./nthArg.js');
124
125
  var range = require('./range.js');
125
126
  var sleep = require('./sleep.js');
127
+ var list = require('./list.js');
126
128
  var times = require('./times.js');
127
129
  var toFinite = require('./toFinite.js');
128
130
  var toInteger = require('./toInteger.js');
@@ -130,6 +132,7 @@ var toLength = require('./toLength.js');
130
132
  var toNumber = require('./toNumber.js');
131
133
  var toSafeInteger = require('./toSafeInteger.js');
132
134
  var toString = require('./toString.js');
135
+ var tryit = require('./tryit.js');
133
136
  var uniqueId = require('./uniqueId.js');
134
137
  var native = require('./internals/native.js');
135
138
  var helpers = require('./internals/helpers.js');
@@ -224,6 +227,7 @@ exports.random = random;
224
227
  exports.randomInt = randomInt;
225
228
  exports.allKeys = allKeys;
226
229
  exports.allKeysIn = allKeysIn;
230
+ exports.findKey = findKey;
227
231
  exports.invert = invert;
228
232
  exports.keys = keys;
229
233
  exports.keysIn = keysIn;
@@ -260,6 +264,7 @@ exports.noop = noop;
260
264
  exports.nthArg = nthArg;
261
265
  exports.range = range;
262
266
  exports.sleep = sleep;
267
+ exports.list = list;
263
268
  exports.times = times;
264
269
  exports.toFinite = toFinite;
265
270
  exports.toInteger = toInteger;
@@ -267,6 +272,7 @@ exports.toLength = toLength;
267
272
  exports.toNumber = toNumber;
268
273
  exports.toSafeInteger = toSafeInteger;
269
274
  exports.toString = toString;
275
+ exports.tryit = tryit;
270
276
  exports.uniqueId = uniqueId;
271
277
  exports.MAX_ARRAY_LENGTH = native.MAX_ARRAY_LENGTH;
272
278
  exports.MAX_SAFE_INTEGER = native.MAX_SAFE_INTEGER;
@@ -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.11.6";
7
+ var VERSION = "1.13.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';
package/lib/list.js ADDED
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var identity = require('./identity.js');
4
+ var native = require('./internals/native.js');
5
+ var isInteger = require('./isInteger.js');
6
+ var isFinite = require('./isFinite.js');
7
+
8
+ var list = function (n, iteratee) {
9
+ if (iteratee === void 0) { iteratee = identity; }
10
+ if (n < 1 || n > native.MAX_SAFE_INTEGER) {
11
+ return [];
12
+ }
13
+ var index = 0;
14
+ var length = native.mathMin(isInteger(n) ? n : native.mathFloor(isFinite(n) ? n : 0), native.MAX_ARRAY_LENGTH);
15
+ var result = Array(length);
16
+ var func = typeof iteratee === 'function' ? iteratee : identity;
17
+ while (index < length) {
18
+ result[index] = func(index);
19
+ index++;
20
+ }
21
+ return result;
22
+ };
23
+
24
+ module.exports = list;
@@ -0,0 +1,66 @@
1
+ 'use strict';
2
+
3
+ /******************************************************************************
4
+ Copyright (c) Microsoft Corporation.
5
+
6
+ Permission to use, copy, modify, and/or distribute this software for any
7
+ purpose with or without fee is hereby granted.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
14
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15
+ PERFORMANCE OF THIS SOFTWARE.
16
+ ***************************************************************************** */
17
+ /* global Reflect, Promise, SuppressedError, Symbol */
18
+
19
+
20
+ function __values(o) {
21
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
22
+ if (m) return m.call(o);
23
+ if (o && typeof o.length === "number") return {
24
+ next: function () {
25
+ if (o && i >= o.length) o = void 0;
26
+ return { value: o && o[i++], done: !o };
27
+ }
28
+ };
29
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
30
+ }
31
+
32
+ function __read(o, n) {
33
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
34
+ if (!m) return o;
35
+ var i = m.call(o), r, ar = [], e;
36
+ try {
37
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
38
+ }
39
+ catch (error) { e = { error: error }; }
40
+ finally {
41
+ try {
42
+ if (r && !r.done && (m = i["return"])) m.call(i);
43
+ }
44
+ finally { if (e) throw e.error; }
45
+ }
46
+ return ar;
47
+ }
48
+
49
+ function __spreadArray(to, from, pack) {
50
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
+ if (ar || !(i in from)) {
52
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
+ ar[i] = from[i];
54
+ }
55
+ }
56
+ return to.concat(ar || Array.prototype.slice.call(from));
57
+ }
58
+
59
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
60
+ var e = new Error(message);
61
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
62
+ };
63
+
64
+ exports.__read = __read;
65
+ exports.__spreadArray = __spreadArray;
66
+ exports.__values = __values;
package/lib/times.js CHANGED
@@ -1,24 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var identity = require('./identity.js');
4
- var native = require('./internals/native.js');
5
- var isInteger = require('./isInteger.js');
6
- var isFinite = require('./isFinite.js');
3
+ var list = require('./list.js');
7
4
 
8
- var times = function (n, iteratee) {
9
- if (iteratee === void 0) { iteratee = identity; }
10
- if (n < 1 || n > native.MAX_SAFE_INTEGER) {
11
- return [];
12
- }
13
- var index = 0;
14
- var length = native.mathMin(isInteger(n) ? n : native.mathFloor(isFinite(n) ? n : 0), native.MAX_ARRAY_LENGTH);
15
- var result = Array(length);
16
- var func = typeof iteratee === 'function' ? iteratee : identity;
17
- while (index < length) {
18
- result[index] = func(index);
19
- index++;
20
- }
21
- return result;
22
- };
5
+ var times = list;
23
6
 
24
7
  module.exports = times;
package/lib/tryit.js ADDED
@@ -0,0 +1,32 @@
1
+ 'use strict';
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');
4
+ var native = require('./internals/native.js');
5
+ var isPromiseLike = require('./isPromiseLike.js');
6
+
7
+ var tryit = function (fn) {
8
+ return function () {
9
+ var args = [];
10
+ for (var _i = 0; _i < arguments.length; _i++) {
11
+ args[_i] = arguments[_i];
12
+ }
13
+ try {
14
+ var result = fn.apply(void 0, tslib_es6.__spreadArray([], tslib_es6.__read(args), false));
15
+ if (isPromiseLike(result)) {
16
+ return result
17
+ .then(function (res) {
18
+ return [null, res];
19
+ })
20
+ .catch(function (err) {
21
+ return [err, native.nativeUndefined];
22
+ });
23
+ }
24
+ return [null, result];
25
+ }
26
+ catch (err) {
27
+ return [err, native.nativeUndefined];
28
+ }
29
+ };
30
+ };
31
+
32
+ module.exports = tryit;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ut2",
3
- "version": "1.11.6",
3
+ "version": "1.13.0",
4
4
  "author": "caijf",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",
@@ -3,6 +3,8 @@
3
3
  *
4
4
  * 同 `Object.keys` + `Object.getOwnPropertySymbols`。
5
5
  *
6
+ * 注意:`Symbol` 键属性在字符串属性后面。
7
+ *
6
8
  * @static
7
9
  * @alias module:Object.allKeys
8
10
  * @since 1.1.0
@@ -3,6 +3,8 @@
3
3
  *
4
4
  * 同 `key...in` + 递归原型 `Object.getOwnPropertySymbols`。
5
5
  *
6
+ * 注意:`Symbol` 键属性在字符串属性后面。
7
+ *
6
8
  * @static
7
9
  * @alias module:Object.allKeysIn
8
10
  * @since 1.1.0
@@ -0,0 +1,24 @@
1
+ import { MapKey, MapPredicate, ObjectPredicate, WithNullable } from './internals/types';
2
+ interface FindKey {
3
+ <T extends Map<any, any>>(map: WithNullable<T>, predicate?: MapPredicate<T>): MapKey<T> | undefined;
4
+ <T extends object, K extends keyof T = keyof T>(object: WithNullable<T>, predicate?: ObjectPredicate<T>): K | undefined;
5
+ }
6
+ /**
7
+ * 查找对象的键。
8
+ *
9
+ * @alias module:Object.findKey
10
+ * @since 1.13.0
11
+ * @param {Object | Map} obj 对象或 Map 对象
12
+ * @param {Function} [predicate] 迭代对象自身的可枚举属性(包含 `Symbol` 属性)调用的函数,返回 `Truthy` 表示要查找该值对应的键。
13
+ * @returns 如果对象存在要查找的值,返回该值的键,否则返回 `undefined`。
14
+ * @example
15
+ * const obj = { foo: 'bar', baz: 42 }
16
+ * findKey(obj, isNumber); // 'baz'
17
+ * findKey(obj, v => typeof v === 'bar'); // 'foo'
18
+ *
19
+ * const map = new Map([['foo', 'bar'], ['baz', 42]]);
20
+ * findKey(map, isNumber); // 'baz'
21
+ * findKey(map, v => typeof v === 'bar'); // 'foo'
22
+ */
23
+ declare const findKey: FindKey;
24
+ export default findKey;
package/types/index.d.ts CHANGED
@@ -127,6 +127,7 @@ export { default as randomInt } from './randomInt';
127
127
  */
128
128
  export { default as allKeys } from './allKeys';
129
129
  export { default as allKeysIn } from './allKeysIn';
130
+ export { default as findKey } from './findKey';
130
131
  export { default as invert } from './invert';
131
132
  export { default as keys } from './keys';
132
133
  export { default as keysIn } from './keysIn';
@@ -175,6 +176,7 @@ export { default as noop } from './noop';
175
176
  export { default as nthArg } from './nthArg';
176
177
  export { default as range } from './range';
177
178
  export { default as sleep } from './sleep';
179
+ export { default as list } from './list';
178
180
  export { default as times } from './times';
179
181
  export { default as toFinite } from './toFinite';
180
182
  export { default as toInteger } from './toInteger';
@@ -182,6 +184,7 @@ export { default as toLength } from './toLength';
182
184
  export { default as toNumber } from './toNumber';
183
185
  export { default as toSafeInteger } from './toSafeInteger';
184
186
  export { default as toString } from './toString';
187
+ export { default as tryit } from './tryit';
185
188
  export { default as uniqueId } from './uniqueId';
186
189
  export { MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, MAX_ARRAY_LENGTH } from './internals/native';
187
190
  export { VERSION, isBrowser } from './internals/helpers';
@@ -6,6 +6,9 @@ export type Many<T> = T | T[];
6
6
  export type WithNullable<T> = T | null | undefined;
7
7
  export type PropertyName = string | number | symbol;
8
8
  export type ObjectPredicate<T extends object, K extends keyof T = keyof T> = (value: T[K], key: K) => boolean;
9
+ export type MapValue<T extends Map<any, any>> = ReturnType<T['get']>;
10
+ export type MapKey<T extends Map<any, any>> = Parameters<T['get']>[0];
11
+ export type MapPredicate<T extends Map<any, any>> = (value: MapValue<T>, key: MapKey<T>) => boolean;
9
12
  /**
10
13
  * 迭代参数
11
14
  */
@@ -17,5 +17,5 @@
17
17
  * isWindow(frames); // true
18
18
  *
19
19
  */
20
- declare function isWindow(value: any): value is Window & typeof globalThis;
20
+ declare function isWindow(value: any): value is Window;
21
21
  export default isWindow;
@@ -0,0 +1,28 @@
1
+ interface List {
2
+ <T>(n: number, iteratee: (index: number) => T): T[];
3
+ (n: number): number[];
4
+ }
5
+ /**
6
+ * 调用 `iteratee` `n` 次,每次调用返回的结果存入到数组中。
7
+ *
8
+ * `iteratee` 调用传入一个参数 `index`。
9
+ *
10
+ * *注:原方法名为 `times`,自 `v1.12.0` 版本调整为 `list`。*
11
+ *
12
+ * @function
13
+ * @alias module:Util.list
14
+ * @since 1.12.0
15
+ * @param {number} n 调用 `iteratee` 的次数。
16
+ * @param {Function} [iteratee=identity] 每次迭代调用的函数。默认 `identity`。
17
+ * @returns {Array} 调用结果的数组。
18
+ * @example
19
+ *
20
+ * list(3); // [0, 1, 2]
21
+ *
22
+ * list(3, String); // ['0', '1', '2']
23
+ *
24
+ * list(4, () => 0); // [0, 0, 0, 0]
25
+ *
26
+ */
27
+ declare const list: List;
28
+ export default list;
package/types/times.d.ts CHANGED
@@ -1,26 +1,8 @@
1
- interface Times {
2
- <T>(n: number, iteratee: (index: number) => T): T[];
3
- (n: number): number[];
4
- }
1
+ import list from './list';
2
+ type Times = typeof list;
5
3
  /**
6
- * 调用 `iteratee` `n` 次,每次调用返回的结果存入到数组中。
7
- *
8
- * `iteratee` 调用传入一个参数 `index`。
9
- *
10
- * @function
11
- * @alias module:Util.times
12
- * @since 1.0.0
13
- * @param {number} n 调用 `iteratee` 的次数。
14
- * @param {Function} [iteratee=identity] 每次迭代调用的函数。默认 `identity`。
15
- * @returns {Array} 调用结果的数组。
16
- * @example
17
- *
18
- * times(3); // [0, 1, 2]
19
- *
20
- * times(3, String); // ['0', '1', '2']
21
- *
22
- * times(4, () => 0); // [0, 0, 0, 0]
23
- *
4
+ * @private
5
+ * @deprecated 方法名调整为 `list` 。
24
6
  */
25
7
  declare const times: Times;
26
8
  export default times;
@@ -0,0 +1,32 @@
1
+ type SyncFn<P extends any[], R> = (...args: P) => R;
2
+ type AsyncFn<P extends any[], R> = (...args: P) => Promise<R>;
3
+ interface Tryit {
4
+ <P extends any[], R>(fn: AsyncFn<P, R>): (...args: P) => Promise<[null, R] | [Error, undefined]>;
5
+ <P extends any[], R>(fn: SyncFn<P, R>): (...args: P) => [null, R] | [Error, undefined];
6
+ }
7
+ /**
8
+ * 包装一个函数(支持异步函数),将其转为错误优先函数。
9
+ *
10
+ * @alias module:Util.tryit
11
+ * @since 1.13.0
12
+ * @param {Function} fn 要包装的函数。
13
+ * @returns 如果执行成功返回 `[null, result]`,否则返回 `[Error, undefined]`。
14
+ * @example
15
+ * const getGreet = async (name: string) => {
16
+ * return 'hello ' + name;
17
+ * }
18
+ * const [err, result] = await tryit(getGreet)('jeff');
19
+ * console.log([err, result]);
20
+ * // [null, 'hello jeff']
21
+ *
22
+ *
23
+ * const errorFn = async (name: string) => {
24
+ * throw new Error('error message');
25
+ * return 'hello ' + name;
26
+ * }
27
+ * const [err2, result2] = await tryit(errorFn)('jeff');
28
+ * console.log([err2, result2]);
29
+ * // [Error: error message, undefined]
30
+ */
31
+ declare const tryit: Tryit;
32
+ export default tryit;