123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- 'use strict';
- /**
- * optimize try catch
- * @param {Function} fn
- * @return {Object}
- * - {Error} error
- * - {Mix} value
- */
- exports.try = function (fn) {
- var res = {
- error: undefined,
- value: undefined
- };
- try {
- res.value = fn();
- } catch (err) {
- res.error = err instanceof Error
- ? err
- : new Error(err);
- }
- return res;
- };
- /**
- * @description Deal with typescript
- */
- exports.UNSTABLE_METHOD = {
- try: exports.try,
- };
- /**
- * avoid if (a && a.b && a.b.c)
- * @param {Object} obj
- * @param {...String} keys
- * @return {Object}
- */
- exports.dig = function (obj) {
- if (!obj) {
- return;
- }
- if (arguments.length <= 1) {
- return obj;
- }
- var value = obj[arguments[1]];
- for (var i = 2; i < arguments.length; i++) {
- if (!value) {
- break;
- }
- value = value[arguments[i]];
- }
- return value;
- };
- /**
- * optimize arguments to array
- * @param {Arguments} args
- * @return {Array}
- */
- exports.argumentsToArray = function (args) {
- var res = new Array(args.length);
- for (var i = 0; i < args.length; i++) {
- res[i] = args[i];
- }
- return res;
- };
|