xref: /MusicFree/src/utils/checkUpdate.ts (revision 470618d96c17dd0002856daa10352eba07fd9c7f)
1import axios from 'axios';
2import {compare} from 'compare-versions';
3import DeviceInfo from 'react-native-device-info';
4
5const updateList = [
6    'https://gitee.com/maotoumao/MusicFree/raw/master/release/version.json',
7    'https://raw.githubusercontent.com/maotoumao/MusicFree/master/release/version.json',
8    'https://cdn.jsdelivr.net/gh/maotoumao/MusicFree@master/release/version.json',
9];
10
11interface IUpdateInfo {
12    needUpdate: boolean;
13    data: {
14        version: string;
15        changeLog: string[];
16        download: string[];
17    };
18}
19
20export default async function checkUpdate(): Promise<IUpdateInfo | undefined> {
21    const currentVersion = DeviceInfo.getVersion();
22    for (let i = 0; i < updateList.length; ++i) {
23        try {
24            const rawInfo = (await axios.get(updateList[i])).data;
25            if (compare(rawInfo.version, currentVersion, '>')) {
26                return {
27                    needUpdate: true,
28                    data: rawInfo,
29                };
30            }
31        } catch {}
32    }
33}
34