UNPKG

yapm

Version:

package manager for io.js (npm fork)

41 lines (36 loc) 1.06 kB
var Path = require('path') var jju = require('jju') var read = require('../utils').read var write = require('../utils').write var stat = require('../utils').fs.stat module.exports.read = function(path, cb) { read(Path.join(path, 'package.json'), 'utf8', function(err, data) { if (err) return cb(err) try { data = JSON.parse(data) } catch(err) { return cb(err) } cb(null, data) }) } module.exports.write = function(path, object, cb) { read(Path.join(path, 'package.json'), 'utf8', function(err, data) { if (err) { data = jju.stringify(object, {mode: 'json', indent: 2}) + '\n' } else { try { data = jju.update(data, object, {mode: 'json'}) } catch(_) { data = jju.stringify(object, {mode: 'json', indent: 2}) + '\n' } } write(Path.join(path, 'package.json'), data, cb) }) } module.exports.stat = function(path, cb) { stat(Path.join(path, 'package.json'), function(er, stat) { if (stat) stat.file = Path.join(path, 'package.json') cb(er, stat) }) }