forked from krakenjs/shush
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
34 lines (26 loc) · 685 Bytes
/
index.js
File metadata and controls
34 lines (26 loc) · 685 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
'use strict';
var fs = require('fs'),
path = require('path'),
caller = require('caller'),
strip = require('strip-json-comments');
function tryParse(file, json) {
var err;
try {
return JSON.parse(json);
} catch (e) {
err = new Error(e.message + ' in ' + file);
err.__proto__ = e.__proto__;
throw err;
}
}
function shush(file) {
var root, abs, json;
root = path.resolve(caller());
root = path.dirname(root);
abs = path.resolve(root, file);
abs = require.resolve(abs);
json = fs.readFileSync(abs, 'utf8');
json = strip(json, false);
return tryParse(abs, json);
}
module.exports = shush;