download-npm-package
Version:
Download a single npm package
51 lines (30 loc) • 1.9 kB
JavaScript
var _registryInfo = require('registry-info');
var _registryInfo2 = _interopRequireDefault(_registryInfo);
var _npmPackageArg = require('npm-package-arg');
var _npmPackageArg2 = _interopRequireDefault(_npmPackageArg);
var _getPackageJsonFromRegistry = require('get-package-json-from-registry');
var _getPackageJsonFromRegistry2 = _interopRequireDefault(_getPackageJsonFromRegistry);
var _downloadPackageTarball = require('download-package-tarball');
var _downloadPackageTarball2 = _interopRequireDefault(_downloadPackageTarball);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
const inject = getPackage => (() => {
var _ref = _asyncToGenerator(function* (_ref2) {
let arg = _ref2.arg,
dir = _ref2.dir;
var _npa = (0, _npmPackageArg2.default)(arg);
const scope = _npa.scope;
var _getRegistryInfo = (0, _registryInfo2.default)(scope);
const authorization = _getRegistryInfo.authorization;
const headers = authorization ? { authorization: authorization } : {};
const pkg = yield getPackage(arg);
const tarball = pkg.dist.tarball;
yield (0, _downloadPackageTarball2.default)({ url: tarball, gotOpts: { headers: headers }, dir: dir });
});
return function (_x) {
return _ref.apply(this, arguments);
};
})();
module.exports = inject(_getPackageJsonFromRegistry2.default);
module.exports.inject = inject;
;