import { Stat } from '@/uni_modules/uni-stat'

// 实例统计sdk
const stat_instance = Stat.getInstance()

const lifecycle = defineMixin({
  // onLaunch(options : OnLaunchOptions) { stat_instance.onLaunch(options, this) },
  // @ts-ignore
  onLoad() {
    // @ts-ignore
    stat_instance.onLoad(this)
  },
  // @ts-ignore
  onShow() {
    // @ts-ignore
    stat_instance.onShow(this)
  },
  // @ts-ignore
  onHide() {
    // @ts-ignore
    stat_instance.onHide(this)
  },
  // @ts-ignore
  onUnload() {
    // @ts-ignore
    stat_instance.onUnload(this)
  },
  // onError(error : string) { stat_instance.onError(error) }
})


export const uniStat = definePlugin({
  install(app : VueApp, options : UTSJSONObject) {
    // 未关联服务空间
    if (Stat.no_space) return
    stat_instance.init(options)
    app.mixin(lifecycle)
  }
})
