mirror of
https://github.com/axios/axios.git
synced 2026-04-11 02:11:50 +08:00
* feat: implement prettier and fix all issues * fix: failing tests * fix: implement feedback from codel, ai etc * chore: dont throw in trim function Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> * fix: incorrect fix --------- Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
94 lines
2.6 KiB
JavaScript
94 lines
2.6 KiB
JavaScript
import gulp from 'gulp';
|
|
import fs from 'fs-extra';
|
|
import axios from './bin/githubAxios.js';
|
|
import minimist from 'minimist';
|
|
|
|
const argv = minimist(process.argv.slice(2));
|
|
|
|
gulp.task('default', async function () {
|
|
console.log('hello!');
|
|
});
|
|
|
|
const clear = gulp.task('clear', async function () {
|
|
await fs.emptyDir('./dist/');
|
|
});
|
|
|
|
const bower = gulp.task('bower', async function () {
|
|
const npm = JSON.parse(await fs.readFile('package.json'));
|
|
const bower = JSON.parse(await fs.readFile('bower.json'));
|
|
|
|
const fields = ['name', 'description', 'version', 'homepage', 'license', 'keywords'];
|
|
|
|
for (let i = 0, l = fields.length; i < l; i++) {
|
|
const field = fields[i];
|
|
bower[field] = npm[field];
|
|
}
|
|
|
|
await fs.writeFile('bower.json', JSON.stringify(bower, null, 2));
|
|
});
|
|
|
|
async function getContributors(user, repo, maxCount = 1) {
|
|
const contributors = (
|
|
await axios.get(
|
|
`https://api.github.com/repos/${encodeURIComponent(user)}/${encodeURIComponent(repo)}/contributors`,
|
|
{ params: { per_page: maxCount } }
|
|
)
|
|
).data;
|
|
|
|
return Promise.all(
|
|
contributors.map(async (contributor) => {
|
|
return {
|
|
...contributor,
|
|
...(
|
|
await axios.get(`https://api.github.com/users/${encodeURIComponent(contributor.login)}`)
|
|
).data,
|
|
};
|
|
})
|
|
);
|
|
}
|
|
|
|
const packageJSON = gulp.task('package', async function () {
|
|
const CONTRIBUTION_THRESHOLD = 3;
|
|
|
|
const npm = JSON.parse(await fs.readFile('package.json'));
|
|
|
|
try {
|
|
const contributors = await getContributors('axios', 'axios', 15);
|
|
|
|
npm.contributors = contributors
|
|
.filter(
|
|
({ type, contributions }) =>
|
|
type.toLowerCase() === 'user' && contributions >= CONTRIBUTION_THRESHOLD
|
|
)
|
|
.map(({ login, name, _ }) => `${name || login} (https://github.com/${login})`);
|
|
|
|
await fs.writeFile('package.json', JSON.stringify(npm, null, 2));
|
|
} catch (err) {
|
|
if (axios.isAxiosError(err) && err.response && err.response.status === 403) {
|
|
throw Error(`GitHub API Error: ${err.response.data && err.response.data.message}`);
|
|
}
|
|
throw err;
|
|
}
|
|
});
|
|
|
|
const env = gulp.task('env', async function () {
|
|
var npm = JSON.parse(await fs.readFile('package.json'));
|
|
|
|
const envFilePath = './lib/env/data.js';
|
|
|
|
await fs.writeFile(
|
|
envFilePath,
|
|
Object.entries({
|
|
VERSION: (argv.bump || npm.version).replace(/^v/, ''),
|
|
})
|
|
.map(([key, value]) => {
|
|
return `export const ${key} = ${JSON.stringify(value)};`;
|
|
})
|
|
.join('\n')
|
|
);
|
|
});
|
|
|
|
const version = gulp.series('bower', 'env', 'package');
|
|
|
|
export { bower, env, clear, version, packageJSON };
|