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