diff options
Diffstat (limited to 'deps/npm/node_modules/read-package-json/read-json.js')
-rw-r--r-- | deps/npm/node_modules/read-package-json/read-json.js | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/deps/npm/node_modules/read-package-json/read-json.js b/deps/npm/node_modules/read-package-json/read-json.js index d9a4610d9..5f69c0dcf 100644 --- a/deps/npm/node_modules/read-package-json/read-json.js +++ b/deps/npm/node_modules/read-package-json/read-json.js @@ -19,6 +19,7 @@ var normalizeData = require("normalize-package-data") readJson.extraSet = [ gypfile, serverjs, + scriptpath, authors, readme, mans, @@ -110,6 +111,7 @@ function extras (file, data, log_, strict_, cb_) { else if (typeof arguments[i] === 'function') log = arguments[i] } + if (!log) log = function () {}; cb = arguments[i] var set = readJson.extraSet var n = set.length @@ -125,6 +127,22 @@ function extras (file, data, log_, strict_, cb_) { } } +function scriptpath (file, data, cb) { + if (!data.scripts) return cb(null, data); + var k = Object.keys(data.scripts) + k.forEach(scriptpath_, data.scripts) + cb(null, data); +} +function scriptpath_(key) { + s = this[key] + // This is never allowed, and only causes problems + if (typeof s !== 'string') + return delete this[key] + var spre = /^(\.[\/\\])?node_modules[\/\\].bin[\\\/]/ + if (s.match(spre)) + this[key] = this[key].replace(spre, '') +} + function gypfile (file, data, cb) { var dir = path.dirname(file) var s = data.scripts || {} @@ -318,9 +336,10 @@ function final (file, data, log, strict, cb) { } function makePackageId (data) { - return cleanString(data.name) + "@" + cleanString(data.version) + var name = cleanString(data.name) + var ver = cleanString(data.version) + return name + "@" + ver } - function cleanString(str) { return (!str || typeof(str) !== "string") ? "" : str.trim() } |