ut2 1.12.0 → 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/README.md +2 -0
- package/dist/ut2.js +122 -1
- package/dist/ut2.js.map +1 -1
- package/dist/ut2.min.js +1 -1
- package/dist/ut2.min.js.map +1 -1
- package/es/findKey.js +40 -0
- package/es/index.js +2 -0
- package/es/internals/helpers.js +1 -1
- 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 +62 -0
- package/es/tryit.js +30 -0
- package/lib/findKey.js +42 -0
- package/lib/index.js +4 -0
- package/lib/internals/helpers.js +1 -1
- 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 +66 -0
- package/lib/tryit.js +32 -0
- package/package.json +1 -1
- package/types/allKeys.d.ts +2 -0
- package/types/allKeysIn.d.ts +2 -0
- package/types/findKey.d.ts +24 -0
- package/types/index.d.ts +2 -0
- package/types/internals/types.d.ts +3 -0
- package/types/tryit.d.ts +32 -0
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';
|
|
@@ -129,6 +130,7 @@ export { default as toLength } from './toLength.js';
|
|
|
129
130
|
export { default as toNumber } from './toNumber.js';
|
|
130
131
|
export { default as toSafeInteger } from './toSafeInteger.js';
|
|
131
132
|
export { default as toString } from './toString.js';
|
|
133
|
+
export { default as tryit } from './tryit.js';
|
|
132
134
|
export { default as uniqueId } from './uniqueId.js';
|
|
133
135
|
export { MAX_ARRAY_LENGTH, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER } from './internals/native.js';
|
|
134
136
|
export { VERSION, isBrowser } from './internals/helpers.js';
|
package/es/internals/helpers.js
CHANGED
|
@@ -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.
|
|
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';
|
|
@@ -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/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');
|
|
@@ -131,6 +132,7 @@ var toLength = require('./toLength.js');
|
|
|
131
132
|
var toNumber = require('./toNumber.js');
|
|
132
133
|
var toSafeInteger = require('./toSafeInteger.js');
|
|
133
134
|
var toString = require('./toString.js');
|
|
135
|
+
var tryit = require('./tryit.js');
|
|
134
136
|
var uniqueId = require('./uniqueId.js');
|
|
135
137
|
var native = require('./internals/native.js');
|
|
136
138
|
var helpers = require('./internals/helpers.js');
|
|
@@ -225,6 +227,7 @@ exports.random = random;
|
|
|
225
227
|
exports.randomInt = randomInt;
|
|
226
228
|
exports.allKeys = allKeys;
|
|
227
229
|
exports.allKeysIn = allKeysIn;
|
|
230
|
+
exports.findKey = findKey;
|
|
228
231
|
exports.invert = invert;
|
|
229
232
|
exports.keys = keys;
|
|
230
233
|
exports.keysIn = keysIn;
|
|
@@ -269,6 +272,7 @@ exports.toLength = toLength;
|
|
|
269
272
|
exports.toNumber = toNumber;
|
|
270
273
|
exports.toSafeInteger = toSafeInteger;
|
|
271
274
|
exports.toString = toString;
|
|
275
|
+
exports.tryit = tryit;
|
|
272
276
|
exports.uniqueId = uniqueId;
|
|
273
277
|
exports.MAX_ARRAY_LENGTH = native.MAX_ARRAY_LENGTH;
|
|
274
278
|
exports.MAX_SAFE_INTEGER = native.MAX_SAFE_INTEGER;
|
package/lib/internals/helpers.js
CHANGED
|
@@ -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.
|
|
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';
|
|
@@ -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/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
package/types/allKeys.d.ts
CHANGED
package/types/allKeysIn.d.ts
CHANGED
|
@@ -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';
|
|
@@ -183,6 +184,7 @@ export { default as toLength } from './toLength';
|
|
|
183
184
|
export { default as toNumber } from './toNumber';
|
|
184
185
|
export { default as toSafeInteger } from './toSafeInteger';
|
|
185
186
|
export { default as toString } from './toString';
|
|
187
|
+
export { default as tryit } from './tryit';
|
|
186
188
|
export { default as uniqueId } from './uniqueId';
|
|
187
189
|
export { MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, MAX_ARRAY_LENGTH } from './internals/native';
|
|
188
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
|
*/
|
package/types/tryit.d.ts
ADDED
|
@@ -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;
|