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/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';
@@ -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.12.0";
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;
@@ -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.12.0";
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ut2",
3
- "version": "1.12.0",
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';
@@ -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
  */
@@ -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;