import Taro from '@tarojs/taro'

export default () => {
  return new Promise((resolve, reject) => {
    Taro.getBackgroundFetchData({
      fetchType: 'pre',
      success(res) {
        const { code, message, data } = JSON.parse(res.fetchedData) || {}
        if (code === 1000) {
          const { token, sessionKey, qrcode, ...otherData } = data

          Taro.setStorage({ key: 'token', data: token })
          Taro.setStorage({ key: 'sessionKey', data: sessionKey })
          Taro.setStorage({ key: 'qrcode', data: qrcode })

          resolve(otherData)
        } else {
          console.error(message)
          reject(message)
        }
      },
      fail: (e) => {
        console.error(e)
        reject(e.errMsg || e.message)
      }
    })
  })
}
