fix(installer): include file path in JSON parse errors
This commit is contained in:
parent
32c2724561
commit
bce48d8139
|
|
@ -405,12 +405,15 @@ async function runTests() {
|
|||
const p = path.join(TMP, 'bad.json');
|
||||
nativeFs.writeFileSync(p, '{ invalid json }');
|
||||
let threw = false;
|
||||
let errorMessage = '';
|
||||
try {
|
||||
fs.readJsonSync(p);
|
||||
} catch {
|
||||
} catch (error) {
|
||||
threw = true;
|
||||
errorMessage = error.message;
|
||||
}
|
||||
assert(threw, 'readJsonSync did not throw on invalid JSON');
|
||||
assert(errorMessage.includes(p), 'readJsonSync error did not include file path');
|
||||
});
|
||||
|
||||
test('readJsonSync strips UTF-8 BOM', () => {
|
||||
|
|
|
|||
|
|
@ -166,5 +166,10 @@ module.exports.move = async function move(src, dest) {
|
|||
*/
|
||||
module.exports.readJsonSync = function readJsonSync(filePath) {
|
||||
const raw = fs.readFileSync(filePath, 'utf8').replace(/^\uFEFF/, '');
|
||||
return JSON.parse(raw);
|
||||
try {
|
||||
return JSON.parse(raw);
|
||||
} catch (error) {
|
||||
error.message = `Failed to parse JSON in ${filePath}: ${error.message}`;
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue