Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cache/add-named.js')
-rw-r--r--lib/cache/add-named.js153
1 files changed, 79 insertions, 74 deletions
diff --git a/lib/cache/add-named.js b/lib/cache/add-named.js
index b5eb2e06f..1acaf28fa 100644
--- a/lib/cache/add-named.js
+++ b/lib/cache/add-named.js
@@ -1,24 +1,23 @@
-var path = require("path")
- , assert = require("assert")
- , fs = require("graceful-fs")
- , http = require("http")
- , log = require("npmlog")
- , semver = require("semver")
- , readJson = require("read-package-json")
- , url = require("url")
- , npm = require("../npm.js")
- , deprCheck = require("../utils/depr-check.js")
- , inflight = require("inflight")
- , addRemoteTarball = require("./add-remote-tarball.js")
- , cachedPackageRoot = require("./cached-package-root.js")
- , mapToRegistry = require("../utils/map-to-registry.js")
- , pulseTillDone = require("../utils/pulse-till-done.js")
-
+var path = require('path')
+var assert = require('assert')
+var fs = require('graceful-fs')
+var http = require('http')
+var log = require('npmlog')
+var semver = require('semver')
+var readJson = require('read-package-json')
+var url = require('url')
+var npm = require('../npm.js')
+var deprCheck = require('../utils/depr-check.js')
+var inflight = require('inflight')
+var addRemoteTarball = require('./add-remote-tarball.js')
+var cachedPackageRoot = require('./cached-package-root.js')
+var mapToRegistry = require('../utils/map-to-registry.js')
+var pulseTillDone = require('../utils/pulse-till-done.js')
module.exports = addNamed
function getOnceFromRegistry (name, from, next, done) {
- function fixName(err, data, json, resp) {
+ function fixName (err, data, json, resp) {
// this is only necessary until npm/npm-registry-client#80 is fixed
if (err && err.pkgid && err.pkgid !== name) {
err.message = err.message.replace(
@@ -33,21 +32,21 @@ function getOnceFromRegistry (name, from, next, done) {
mapToRegistry(name, npm.config, function (er, uri, auth) {
if (er) return done(er)
- var key = "registry:" + uri
+ var key = 'registry:' + uri
next = inflight(key, next)
- if (!next) return log.verbose(from, key, "already in flight; waiting")
- else log.verbose(from, key, "not in flight; fetching")
+ if (!next) return log.verbose(from, key, 'already in flight; waiting')
+ else log.verbose(from, key, 'not in flight; fetching')
- npm.registry.get(uri, { auth : auth }, pulseTillDone("fetchRegistry", fixName))
+ npm.registry.get(uri, { auth: auth }, pulseTillDone('fetchRegistry', fixName))
})
}
function addNamed (name, version, data, cb_) {
- assert(typeof name === "string", "must have module name")
- assert(typeof cb_ === "function", "must have callback")
+ assert(typeof name === 'string', 'must have module name')
+ assert(typeof cb_ === 'function', 'must have callback')
- var key = name + "@" + version
- log.silly("addNamed", key)
+ var key = name + '@' + version
+ log.silly('addNamed', key)
function cb (er, data) {
if (data && !data._fromHosted) data._from = key
@@ -67,29 +66,29 @@ function addNamed (name, version, data, cb_) {
}
function addNameTag (name, tag, data, cb) {
- log.info("addNameTag", [name, tag])
+ log.info('addNameTag', [name, tag])
var explicit = true
if (!tag) {
explicit = false
- tag = npm.config.get("tag")
+ tag = npm.config.get('tag')
}
- getOnceFromRegistry(name, "addNameTag", next, cb)
+ getOnceFromRegistry(name, 'addNameTag', next, cb)
function next (er, data, json, resp) {
if (!er) er = errorResponse(name, resp)
if (er) return cb(er)
- log.silly("addNameTag", "next cb for", name, "with tag", tag)
+ log.silly('addNameTag', 'next cb for', name, 'with tag', tag)
engineFilter(data)
- if (data["dist-tags"] && data["dist-tags"][tag]
- && data.versions[data["dist-tags"][tag]]) {
- var ver = data["dist-tags"][tag]
+ if (data['dist-tags'] && data['dist-tags'][tag] &&
+ data.versions[data['dist-tags'][tag]]) {
+ var ver = data['dist-tags'][tag]
return addNamed(name, ver, data.versions[ver], cb)
}
if (!explicit && Object.keys(data.versions).length) {
- return addNamed(name, "*", data, cb)
+ return addNamed(name, '*', data, cb)
}
er = installTargetsError(tag, data)
@@ -99,17 +98,17 @@ function addNameTag (name, tag, data, cb) {
function engineFilter (data) {
var npmv = npm.version
- , nodev = npm.config.get("node-version")
- , strict = npm.config.get("engine-strict")
+ var nodev = npm.config.get('node-version')
+ var strict = npm.config.get('engine-strict')
- if (!nodev || npm.config.get("force")) return data
+ if (!nodev || npm.config.get('force')) return data
Object.keys(data.versions || {}).forEach(function (v) {
var eng = data.versions[v].engines
if (!eng) return
if (!strict && !data.versions[v].engineStrict) return
- if (eng.node && !semver.satisfies(nodev, eng.node, true)
- || eng.npm && !semver.satisfies(npmv, eng.npm, true)) {
+ if (eng.node && !semver.satisfies(nodev, eng.node, true) ||
+ eng.npm && !semver.satisfies(npmv, eng.npm, true)) {
delete data.versions[v]
}
})
@@ -117,7 +116,7 @@ function engineFilter (data) {
function addNameVersion (name, v, data, cb) {
var ver = semver.valid(v, true)
- if (!ver) return cb(new Error("Invalid version: "+v))
+ if (!ver) return cb(new Error('Invalid version: ' + v))
var response
@@ -126,7 +125,7 @@ function addNameVersion (name, v, data, cb) {
return next()
}
- getOnceFromRegistry(name, "addNameVersion", setData, cb)
+ getOnceFromRegistry(name, 'addNameVersion', setData, cb)
function setData (er, d, json, resp) {
if (!er) {
@@ -135,7 +134,7 @@ function addNameVersion (name, v, data, cb) {
if (er) return cb(er)
data = d && d.versions[ver]
if (!data) {
- er = new Error("version not found: "+name+"@"+ver)
+ er = new Error('version not found: ' + name + '@' + ver)
er.package = name
er.statusCode = 404
return cb(er)
@@ -148,27 +147,30 @@ function addNameVersion (name, v, data, cb) {
deprCheck(data)
var dist = data.dist
- if (!dist) return cb(new Error("No dist in "+data._id+" package"))
+ if (!dist) return cb(new Error('No dist in ' + data._id + ' package'))
- if (!dist.tarball) return cb(new Error(
- "No dist.tarball in " + data._id + " package"))
+ if (!dist.tarball) {
+ return cb(new Error(
+ 'No dist.tarball in ' + data._id + ' package'
+ ))
+ }
- if ((response && response.statusCode !== 304) || npm.config.get("force")) {
+ if ((response && response.statusCode !== 304) || npm.config.get('force')) {
return fetchit()
}
// we got cached data, so let's see if we have a tarball.
- var pkgroot = cachedPackageRoot({name : name, version : ver})
- var pkgtgz = path.join(pkgroot, "package.tgz")
- var pkgjson = path.join(pkgroot, "package", "package.json")
+ var pkgroot = cachedPackageRoot({ name: name, version: ver })
+ var pkgtgz = path.join(pkgroot, 'package.tgz')
+ var pkgjson = path.join(pkgroot, 'package', 'package.json')
fs.stat(pkgtgz, function (er) {
if (!er) {
readJson(pkgjson, function (er, data) {
- if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er)
+ if (er && er.code !== 'ENOENT' && er.code !== 'ENOTDIR') return cb(er)
if (data) {
- if (!data.name) return cb(new Error("No name provided"))
- if (!data.version) return cb(new Error("No version provided"))
+ if (!data.name) return cb(new Error('No name provided'))
+ if (!data.version) return cb(new Error('No version provided'))
// check the SHA of the package we have, to ensure it wasn't installed
// from somewhere other than the registry (eg, a fork)
@@ -200,8 +202,8 @@ function addNameVersion (name, v, data, cb) {
// Only add non-shasum'ed packages if --forced. Only ancient things
// would lack this for good reasons nowadays.
- if (!dist.shasum && !npm.config.get("force")) {
- return cb(new Error("package lacks shasum: " + data._id))
+ if (!dist.shasum && !npm.config.get('force')) {
+ return cb(new Error('package lacks shasum: ' + data._id))
}
addRemoteTarball(tb, data, dist.shasum, auth, cb)
@@ -212,15 +214,17 @@ function addNameVersion (name, v, data, cb) {
function addNameRange (name, range, data, cb) {
range = semver.validRange(range, true)
- if (range === null) return cb(new Error(
- "Invalid version range: " + range
- ))
+ if (range === null) {
+ return cb(new Error(
+ 'Invalid version range: ' + range
+ ))
+ }
- log.silly("addNameRange", {name:name, range:range, hasData:!!data})
+ log.silly('addNameRange', { name: name, range: range, hasData: !!data })
if (data) return next()
- getOnceFromRegistry(name, "addNameRange", setData, cb)
+ getOnceFromRegistry(name, 'addNameRange', setData, cb)
function setData (er, d, json, resp) {
if (!er) {
@@ -232,18 +236,20 @@ function addNameRange (name, range, data, cb) {
}
function next () {
- log.silly( "addNameRange", "number 2"
- , {name:name, range:range, hasData:!!data})
+ log.silly(
+ 'addNameRange',
+ 'number 2', { name: name, range: range, hasData: !!data }
+ )
engineFilter(data)
- log.silly("addNameRange", "versions"
+ log.silly('addNameRange', 'versions'
, [data.name, Object.keys(data.versions || {})])
// if the tagged version satisfies, then use that.
- var tagged = data["dist-tags"][npm.config.get("tag")]
- if (tagged
- && data.versions[tagged]
- && semver.satisfies(tagged, range, true)) {
+ var tagged = data['dist-tags'][npm.config.get('tag')]
+ if (tagged &&
+ data.versions[tagged] &&
+ semver.satisfies(tagged, range, true)) {
return addNamed(name, tagged, data.versions[tagged], cb)
}
@@ -261,20 +267,19 @@ function addNameRange (name, range, data, cb) {
}
function installTargetsError (requested, data) {
- var targets = Object.keys(data["dist-tags"]).filter(function (f) {
+ var targets = Object.keys(data['dist-tags']).filter(function (f) {
return (data.versions || {}).hasOwnProperty(f)
}).concat(Object.keys(data.versions || {}))
- requested = data.name + (requested ? "@'" + requested + "'" : "")
+ requested = data.name + (requested ? "@'" + requested + "'" : '')
targets = targets.length
- ? "Valid install targets:\n" + JSON.stringify(targets) + "\n"
- : "No valid targets found.\n"
- + "Perhaps not compatible with your version of node?"
+ ? 'Valid install targets:\n' + JSON.stringify(targets) + '\n'
+ : 'No valid targets found.\n' +
+ 'Perhaps not compatible with your version of node?'
- var er = new Error( "No compatible version found: "
- + requested + "\n" + targets)
- er.code = "ETARGET"
+ var er = new Error('No compatible version found: ' + requested + '\n' + targets)
+ er.code = 'ETARGET'
return er
}
@@ -283,7 +288,7 @@ function errorResponse (name, response) {
if (response.statusCode >= 400) {
er = new Error(http.STATUS_CODES[response.statusCode])
er.statusCode = response.statusCode
- er.code = "E" + er.statusCode
+ er.code = 'E' + er.statusCode
er.pkgid = name
}
return er