nocobase/cnpm-sync.js
2024-06-21 13:03:01 +08:00

52 lines
1.8 KiB
JavaScript

// @ts-ignore
const axios = require('axios');
const glob = require('glob');
const path = require('path');
const fs = require('fs/promises');
const lerna = require('./lerna.json');
const files = glob.sync(path.resolve(__dirname, './node_modules/@nocobase/**/package.json'));
(async () => {
for (const file of files) {
const content = await fs.readFile(file);
const json = JSON.parse(content.toString());
const url = `https://registry.npmmirror.com/${json.name}`;
try {
const response = await axios.get(url);
const latest = response?.data?.['dist-tags']?.latest;
if (latest !== lerna.version) {
console.log(json.name, latest);
console.log(`https://www.npmmirror.com/package/${json.name}`);
const res = await fetch(`https://registry-direct.npmmirror.com/-/package/${json.name}/syncs`, {
headers: {
accept: '*/*',
'accept-language': 'zh-CN,zh;q=0.9',
priority: 'u=1, i',
'sec-ch-ua': '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-site',
Referer: 'https://www.npmmirror.com/',
'Referrer-Policy': 'strict-origin-when-cross-origin',
},
body: null,
method: 'PUT',
});
// const response = await axios.put(`https://registry-direct.npmmirror.com/-/package/${json.name}/syncs`);
console.log(await res.json());
await new Promise((resolve) => {
setTimeout(() => {
resolve(null);
}, 1000);
});
}
} catch (error) {
// ...
}
}
})();