UNPKG

879 BPlain TextView Raw
1import axios, { AxiosResponse } from 'axios';
2import semver from 'semver';
3
4export default function packageJson(
5 name: string,
6 registry: string
7): Promise<string> {
8 const names = (name || '').split('@');
9 const version = !names[0] ? names[2] : names[1];
10 const isValidVersion = semver.valid(version) || version === 'latest';
11 const url = `${registry}/${
12 isValidVersion ? `@${names[1]}/${names[2]}` : name
13 }`;
14 console.log('pkg url: ', url);
15 return axios
16 .get(url, {
17 proxy: false
18 })
19 .then((response: AxiosResponse) => {
20 const { data } = response || { 'dist-tags': {} };
21 if (!isValidVersion) {
22 const version = data['dist-tags'].latest;
23 return version || '';
24 } else {
25 // 指定包的版本情况
26 return data.version || '';
27 }
28 })
29 .catch((err: object) => {
30 return err;
31 });
32}
33
\No newline at end of file