mirror of
https://gitee.com/newgateway/vtj.git
synced 2026-05-07 01:10:03 +08:00
77 lines
1.5 KiB
JavaScript
77 lines
1.5 KiB
JavaScript
import axios from 'axios';
|
|
const modules = [
|
|
'create-vtj',
|
|
'@vtj/cli',
|
|
'@vtj/utils',
|
|
'@vtj/icons',
|
|
'@vtj/ui',
|
|
'@vtj/charts',
|
|
'@vtj/designer',
|
|
'@vtj/matrials',
|
|
'@vtj/renderer',
|
|
'@vtj/local',
|
|
'@vtj/coder',
|
|
'@vtj/node',
|
|
'@vtj/base',
|
|
'@vtj/core',
|
|
'@vtj/web',
|
|
'@vtj/pro',
|
|
'@vtj/uni',
|
|
'@vtj/h5',
|
|
'@vtj/uni-app',
|
|
'@vtj/parser'
|
|
];
|
|
|
|
const maxTimes = 60;
|
|
let counter = 0;
|
|
|
|
async function sendSync(name) {
|
|
const res = await axios
|
|
.put(
|
|
`https://registry-direct.npmmirror.com/${name}/sync?sync_upstream=true`
|
|
)
|
|
.catch((e) => {
|
|
console.log('error', e.message);
|
|
return {};
|
|
});
|
|
if (res.data) {
|
|
const logId = res.data.logId || res.data.id;
|
|
counter = 0;
|
|
await checkDone(name, logId);
|
|
console.log('sendSync:', name, 'done!');
|
|
}
|
|
}
|
|
|
|
async function checkDone(name, logId) {
|
|
const res = await axios
|
|
.get(`https://registry-direct.npmmirror.com/${name}/sync/log/${logId}`)
|
|
.catch((e) => {
|
|
console.log('error:', e.message);
|
|
return {};
|
|
});
|
|
|
|
let syncDone = !!res.data?.syncDone;
|
|
return new Promise((resolve) => {
|
|
if (!syncDone) {
|
|
++counter;
|
|
if (counter > maxTimes) {
|
|
console.log('error:', `${logId} checkDone timeout`);
|
|
resolve(true);
|
|
return;
|
|
}
|
|
setTimeout(async () => {
|
|
syncDone = await checkDone(name, logId);
|
|
if (syncDone) {
|
|
resolve(true);
|
|
}
|
|
}, 1000);
|
|
} else {
|
|
resolve(true);
|
|
}
|
|
});
|
|
}
|
|
|
|
for (let mod of modules) {
|
|
await sendSync(mod);
|
|
}
|