function getItem(key, options) {
  if (!key) return
  const type = getStorageType(options)
  const getFirst = !useAll(type)

  /* 1. Try localStorage */
  const localValue = useLocal(type) ? parse(localStorage.getItem(key)) : undefined
  if (getFirst && !isUndefined(localValue)) {
    return localValue
  }

  /* 2. Fallback to cookie */
  const cookieVal = useCookie(type) ? parse(getCookie(key)) : undefined
  if (getFirst && cookieVal) {
    return cookieVal
  }

  /* 3. Fallback to sessionStorage */
  const sessionVal = useSession(type) ? parse(sessionStorage.getItem(key)) : undefined
  if (getFirst && sessionVal) {
    return sessionVal
  }

  /* 4. Fallback to window/global. */
  const globalValue = get(key)

  return getFirst ? globalValue : {
    localStorage: localValue,
    sessionStorage: sessionVal,
    cookie: cookieVal,
    global: globalValue
  }
}
Get storage item from localStorage, cookie, or window
@param  {string} key - key of item to get
@param  {object|string} [options] - storage options. If string location of where to get storage
@param  {string} [options.storage] - Define type of storage to pull from.
@return {Any}  the value of key