diff --git a/lib/pipeline/npm.js b/lib/pipeline/npm.js index 09b004313..71df2950a 100644 --- a/lib/pipeline/npm.js +++ b/lib/pipeline/npm.js @@ -9,6 +9,70 @@ class Npm { this.logger = options.logger; } + downloadFromGit(registryJSON, packageName, version, returnContent, callback) { + let repoName = registryJSON.repository.url.replace("git+https://github.com/", "").replace(".git",""); + let gitHead = registryJSON.gitHead; + + if (!gitHead) { + console.error("Could not download " + packageName + " " + version); + return callback("error"); + } + + let fileLocation = "https://raw.githubusercontent.com/" + repoName + "/" + gitHead + "/dist/web3.min.js"; + + let packageDirectory = './.embark/versions/' + packageName + '/' + version + '/'; + if (fs.existsSync(packageDirectory + "/" + packageName + ".js")) { + if (returnContent) { + let distFile = packageDirectory + packageName + ".js"; + callback(fs.readFileSync(distFile).toString()); + } else { + callback(packageDirectory); + } + } else { + fs.mkdirpSync(packageDirectory); + self.logger.info("downloading " + packageName + " " + version + "...."); + + utils.downloadFile(fileLocation, packageDirectory + "/" + packageName + ".js", function() { + utils.extractTar(packageDirectory + "/" + packageName + ".js", packageDirectory, function() { + if (returnContent) { + let distFile = packageDirectory + packageName + ".js"; + callback(fs.readFileSync(distFile).toString()); + } else { + callback(packageDirectory); + } + }); + }); + } + } + + downloadFromNpm(registryJSON, packageName, version, returnContent, callback) { + let tarball = registryJSON.dist.tarball; + + let packageDirectory = './.embark/versions/' + packageName + '/' + version + '/'; + if (fs.existsSync(packageDirectory + "/downloaded_package.tgz")) { + if (returnContent) { + let distFile = packageDirectory + returnContent; + callback(fs.readFileSync(distFile).toString()); + } else { + callback(packageDirectory); + } + } else { + fs.mkdirpSync(packageDirectory); + this.logger.info("downloading " + packageName + " " + version + "...."); + + utils.downloadFile(tarball, packageDirectory + "/downloaded_package.tgz", function() { + utils.extractTar(packageDirectory + "/downloaded_package.tgz", packageDirectory, function() { + if (returnContent) { + let distFile = packageDirectory + returnContent; + callback(fs.readFileSync(distFile).toString()); + } else { + callback(packageDirectory); + } + }); + }); + } + } + // TODO: callback should accept an error getPackageVersion(packageName, version, returnContent, getFromGit, callback) { let self = this; @@ -17,70 +81,11 @@ class Npm { utils.httpsGet(npmRegistry, function (_err, body) { let registryJSON = JSON.parse(body); - let tarball = registryJSON.dist.tarball; - if (getFromGit) { - let repoName = registryJSON.repository.url.replace("git+https://github.com/", "").replace(".git",""); - let gitHead = registryJSON.gitHead; - - if (!gitHead) { - console.error("Could not download " + packageName + " " + version); - return callback("error"); - } - - let fileLocation = "https://raw.githubusercontent.com/" + repoName + "/" + gitHead + "/dist/web3.min.js"; - - let packageDirectory = './.embark/versions/' + packageName + '/' + version + '/'; - if (fs.existsSync(packageDirectory + "/" + packageName + ".js")) { - if (returnContent) { - let distFile = packageDirectory + packageName + ".js"; - callback(fs.readFileSync(distFile).toString()); - } else { - callback(packageDirectory); - } - } else { - fs.mkdirpSync(packageDirectory); - self.logger.info("downloading " + packageName + " " + version + "...."); - - utils.downloadFile(fileLocation, packageDirectory + "/" + packageName + ".js", function() { - utils.extractTar(packageDirectory + "/" + packageName + ".js", packageDirectory, function() { - if (returnContent) { - let distFile = packageDirectory + packageName + ".js"; - callback(fs.readFileSync(distFile).toString()); - } else { - callback(packageDirectory); - } - }); - }); - } - + self.downloadFromGit(registryJSON, packageName, version, returnContent, callback); } else { - - let packageDirectory = './.embark/versions/' + packageName + '/' + version + '/'; - if (fs.existsSync(packageDirectory + "/downloaded_package.tgz")) { - if (returnContent) { - let distFile = packageDirectory + returnContent; - callback(fs.readFileSync(distFile).toString()); - } else { - callback(packageDirectory); - } - } else { - fs.mkdirpSync(packageDirectory); - self.logger.info("downloading " + packageName + " " + version + "...."); - - utils.downloadFile(tarball, packageDirectory + "/downloaded_package.tgz", function() { - utils.extractTar(packageDirectory + "/downloaded_package.tgz", packageDirectory, function() { - if (returnContent) { - let distFile = packageDirectory + returnContent; - callback(fs.readFileSync(distFile).toString()); - } else { - callback(packageDirectory); - } - }); - }); - } + self.downloadFromNpm(registryJSON, packageName, version, returnContent, callback); } - }); } }