node/deps/npm/lib/install/read-shrinkwrap.js
Rebecca Turner 41923c0c07 deps: upgrade npm to 3.3.6
PR-URL: https://github.com/nodejs/node/pull/3310
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-10-22 13:56:09 -04:00

33 lines
884 B
JavaScript

'use strict'
var path = require('path')
var fs = require('graceful-fs')
var iferr = require('iferr')
var inflateShrinkwrap = require('./inflate-shrinkwrap.js')
var parseJSON = require('../utils/parse-json.js')
var readShrinkwrap = module.exports = function (child, next) {
fs.readFile(path.join(child.path, 'npm-shrinkwrap.json'), function (er, data) {
if (er) {
child.package._shrinkwrap = null
return next()
}
try {
child.package._shrinkwrap = parseJSON(data)
} catch (ex) {
child.package._shrinkwrap = null
return next(ex)
}
return next()
})
}
module.exports.andInflate = function (child, next) {
readShrinkwrap(child, iferr(next, function () {
if (child.package._shrinkwrap) {
return inflateShrinkwrap(child, child.package._shrinkwrap.dependencies || {}, next)
} else {
return next()
}
}))
}