diff options
Diffstat (limited to 'deps/npm/lib/cache.js')
-rw-r--r-- | deps/npm/lib/cache.js | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/deps/npm/lib/cache.js b/deps/npm/lib/cache.js index 4f8fbc4fee..2007442249 100644 --- a/deps/npm/lib/cache.js +++ b/deps/npm/lib/cache.js @@ -140,6 +140,7 @@ function read (name, ver, forceBypass, cb) { } readJson(jsonFile, function (er, data) { + er = needName(er, data) er = needVersion(er, data) if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) if (er) return addNamed(name, ver, c) @@ -722,6 +723,7 @@ function addNameVersion (name, ver, data, cb) { if (!er) readJson( path.join( npm.cache, name, ver , "package", "package.json" ) , function (er, data) { + er = needName(er, data) er = needVersion(er, data) if (er && er.code !== "ENOENT" && er.code !== "ENOTDIR") return cb(er) if (er) return fetchit() @@ -1011,6 +1013,7 @@ function addPlacedTarball_ (p, name, uid, gid, resolvedSum, cb) { return cb(er) } readJson(path.join(folder, "package.json"), function (er, data) { + er = needName(er, data) er = needVersion(er, data) if (er) { log.error("addPlacedTarball", "Couldn't read json in %j" @@ -1057,6 +1060,7 @@ function addLocalDirectory (p, name, shasum, cb) { if (p.indexOf(npm.cache) === 0) return cb(new Error( "Adding a cache directory to the cache will make the world implode.")) readJson(path.join(p, "package.json"), function (er, data) { + er = needName(er, data) er = needVersion(er, data) if (er) return cb(er) deprCheck(data) @@ -1183,6 +1187,12 @@ function unlock (u, cb) { lockFile.unlock(lockFileName(u), cb) } +function needName(er, data) { + return er ? er + : (data && !data.name) ? new Error("No name provided") + : null +} + function needVersion(er, data) { return er ? er : (data && !data.version) ? new Error("No version provided") |