X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.maps.server%2Fnode%2Fnode-v4.8.0-win-x64%2Fnode_modules%2Fnpm%2Flib%2Frebuild.js;fp=org.simantics.maps.server%2Fnode%2Fnode-v4.8.0-win-x64%2Fnode_modules%2Fnpm%2Flib%2Frebuild.js;h=ab372c6ec07c7e7b252c5e81844813721d8db986;hb=2529be6d456deeb07c128603ce4971f1dc29b695;hp=0000000000000000000000000000000000000000;hpb=2636fc31c16c23711cf2b06a4ae8537bba9c1d35;p=simantics%2Fdistrict.git diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/rebuild.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/rebuild.js new file mode 100644 index 00000000..ab372c6e --- /dev/null +++ b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/lib/rebuild.js @@ -0,0 +1,73 @@ + +module.exports = rebuild + +var readInstalled = require("read-installed") + , semver = require("semver") + , log = require("npmlog") + , npm = require("./npm.js") + , npa = require("npm-package-arg") + +rebuild.usage = "npm rebuild [[@] [name[@] ...]]" + +rebuild.completion = require("./utils/completion/installed-deep.js") + +function rebuild (args, cb) { + var opt = { depth: npm.config.get("depth"), dev: true } + readInstalled(npm.prefix, opt, function (er, data) { + log.info("readInstalled", typeof data) + if (er) return cb(er) + var set = filter(data, args) + , folders = Object.keys(set).filter(function (f) { + return f !== npm.prefix + }) + if (!folders.length) return cb() + log.silly("rebuild set", folders) + cleanBuild(folders, set, cb) + }) +} + +function cleanBuild (folders, set, cb) { + npm.commands.build(folders, function (er) { + if (er) return cb(er) + console.log(folders.map(function (f) { + return set[f] + " " + f + }).join("\n")) + cb() + }) +} + +function filter (data, args, set, seen) { + if (!set) set = {} + if (!seen) seen = {} + if (set.hasOwnProperty(data.path)) return set + if (seen.hasOwnProperty(data.path)) return set + seen[data.path] = true + var pass + if (!args.length) pass = true // rebuild everything + else if (data.name && data._id) { + for (var i = 0, l = args.length; i < l; i ++) { + var arg = args[i] + , nv = npa(arg) + , n = nv.name + , v = nv.rawSpec + if (n !== data.name) continue + if (!semver.satisfies(data.version, v, true)) continue + pass = true + break + } + } + if (pass && data._id) { + log.verbose("rebuild", "path, id", [data.path, data._id]) + set[data.path] = data._id + } + // need to also dive through kids, always. + // since this isn't an install these won't get auto-built unless + // they're not dependencies. + Object.keys(data.dependencies || {}).forEach(function (d) { + // return + var dep = data.dependencies[d] + if (typeof dep === "string") return + filter(dep, args, set, seen) + }) + return set +}