yapm
Version:
package manager for io.js (npm fork)
41 lines (36 loc) • 1.06 kB
JavaScript
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)
})
}