/** @module native/Updater */
import { NativeModules } from 'react-native';

const { Updater } = NativeModules;

/**
 * @callback UpdateCallback 更新回调
 * @param {string} status 可能值为downloading（下载中）和downloaded（下载完成）
 * @param {number} progress 下载进度，0到100的整数
 * @param {number} count 已下载字节数
 * @param {number} length 总字节数
 */

/**
 * 下载更新包并自动安装
 * @param {string} url 更新地址
 * @param {UpdateCallback} cb 更新回调
 * @returns {Promise.<null>}
 */
export const update = async (url, cb) => {
  return Updater.update(url, cb);
};

/**
 * 取消当前更新进程
 * @returns {Promise.<void>}
 */
export const cancel = async () => {
  return Updater.cancel();
};
