docs: function get(obj, key, def) {
      if (!obj || typeof obj !== 'object') return def;
      if (typeof key === 'string') return get(obj, key.split(get.SEPARATOR), def);
  
      if (!Array.isArray(key) || key.length < 1) {
          console.log(key);
          throw new TypeError('Key must be a string or an array of strings');
      }
  
      const k = key.shift().toString();
  
      if (key.length === 0) {
          return k in obj ? obj[k] : def;
      }
  
      return k in obj ? get(obj[k], key, def) : def;
  }