1 | import getRegistryUrl from 'registry-url';
|
2 | import getAuthToken from 'registry-auth-token';
|
3 | import npa from 'npm-package-arg';
|
4 | import getPackage from 'get-package-json-from-registry';
|
5 | import downloadTarball from 'download-package-tarball';
|
6 |
|
7 | const inject = getPackage => async ({arg, dir}) => {
|
8 | const {scope} = npa(arg);
|
9 | const registryUrl = getRegistryUrl(scope);
|
10 | const authToken = getAuthToken(registryUrl);
|
11 | const headers = authToken ? {
|
12 | authorization: `Bearer ${authToken}`
|
13 | } : {};
|
14 |
|
15 | const pkg = await getPackage(arg);
|
16 | const {dist: {tarball}} = pkg;
|
17 |
|
18 | await downloadTarball({url: tarball, gotOpts: {headers}, dir});
|
19 | };
|
20 |
|
21 | module.exports = inject(getPackage);
|
22 | module.exports.inject = inject;
|