|                                                                        |  | '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;};
 |