You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
541 B
JavaScript
22 lines
541 B
JavaScript
6 years ago
|
'use strict';
|
||
|
var path = require('path');
|
||
|
var fs = require('graceful-fs');
|
||
|
var stripBom = require('strip-bom');
|
||
|
var parseJson = require('parse-json');
|
||
|
var Promise = require('pinkie-promise');
|
||
|
var pify = require('pify');
|
||
|
|
||
|
function parse(x, fp) {
|
||
|
return parseJson(stripBom(x), path.relative(process.cwd(), fp));
|
||
|
}
|
||
|
|
||
|
module.exports = function (fp) {
|
||
|
return pify(fs.readFile, Promise)(fp, 'utf8').then(function (data) {
|
||
|
return parse(data, fp);
|
||
|
});
|
||
|
};
|
||
|
|
||
|
module.exports.sync = function (fp) {
|
||
|
return parse(fs.readFileSync(fp, 'utf8'), fp);
|
||
|
};
|