Skip to content

Commit 2b26f96

Browse files
committed
using parse-json for more helpful messages
1 parent 4cc343b commit 2b26f96

5 files changed

Lines changed: 21 additions & 6 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
"micromatch": "^3.0.4",
2727
"mkdirp": "^0.5.1",
2828
"node-libs-browser": "^2.0.0",
29+
"parse-json": "^4.0.0",
2930
"physical-cpu-count": "^2.0.0",
3031
"postcss": "^6.0.10",
3132
"postcss-value-parser": "^3.3.0",

src/FSCache.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const path = require('path');
33
const md5 = require('./utils/md5');
44
const objectHash = require('./utils/objectHash');
55
const pkg = require('../package.json');
6+
const parseJson = require('parse-json');
67

78
// These keys can affect the output, so if they differ, the cache should not match
89
const OPTION_KEYS = ['publicURL', 'minify', 'hmr'];
@@ -55,7 +56,7 @@ class FSCache {
5556
}
5657

5758
let data = await fs.readFile(cacheFile);
58-
return JSON.parse(data);
59+
return parseJson(data);
5960
} catch (err) {
6061
return null;
6162
}

src/utils/config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const fs = require('./fs');
22
const path = require('path');
3+
const parseJson = require('parse-json');
34

45
const existsCache = new Map;
56

@@ -32,7 +33,7 @@ async function load(filepath, filenames, root = path.parse(filepath).root) {
3233
return require(configFile);
3334
}
3435

35-
return JSON.parse(await fs.readFile(configFile));
36+
return parseJson(await fs.readFile(configFile));
3637
}
3738

3839
return null;

test/hmr.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const rimraf = require('rimraf');
55
const promisify = require('../src/utils/promisify');
66
const ncp = promisify(require('ncp'));
77
const WebSocket = require('ws');
8+
const parseJson = require('parse-json');
89

910
describe('hmr', function () {
1011
let b, ws;
@@ -44,7 +45,7 @@ describe('hmr', function () {
4445

4546
fs.writeFileSync(__dirname + '/input/local.js', 'exports.a = 5; exports.b = 5;');
4647

47-
let msg = JSON.parse(await nextEvent(ws, 'message'));
48+
let msg = parseJson(await nextEvent(ws, 'message'));
4849
assert.equal(msg.type, 'update');
4950
assert.equal(msg.assets.length, 1);
5051
assert.equal(msg.assets[0].generated.js, 'exports.a = 5; exports.b = 5;');
@@ -61,7 +62,7 @@ describe('hmr', function () {
6162

6263
fs.writeFileSync(__dirname + '/input/local.js', 'require("fs"); exports.a = 5; exports.b = 5;');
6364

64-
let msg = JSON.parse(await nextEvent(ws, 'message'));
65+
let msg = parseJson(await nextEvent(ws, 'message'));
6566
assert.equal(msg.type, 'update');
6667
assert.equal(msg.assets.length, 2);
6768
});
@@ -130,4 +131,4 @@ describe('hmr', function () {
130131
await sleep(50);
131132
assert.deepEqual(outputs, [3, 10]);
132133
});
133-
});
134+
});

yarn.lock

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1521,7 +1521,7 @@ errno@^0.1.1, errno@^0.1.4:
15211521
dependencies:
15221522
prr "~0.0.0"
15231523

1524-
error-ex@^1.2.0:
1524+
error-ex@^1.2.0, error-ex@^1.3.1:
15251525
version "1.3.1"
15261526
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
15271527
dependencies:
@@ -2476,6 +2476,10 @@ jsesc@~0.5.0:
24762476
version "0.5.0"
24772477
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
24782478

2479+
json-parse-better-errors@^1.0.1:
2480+
version "1.0.1"
2481+
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a"
2482+
24792483
json-schema-traverse@^0.3.0:
24802484
version "0.3.1"
24812485
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
@@ -3234,6 +3238,13 @@ parse-json@^2.2.0:
32343238
dependencies:
32353239
error-ex "^1.2.0"
32363240

3241+
parse-json@^4.0.0:
3242+
version "4.0.0"
3243+
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
3244+
dependencies:
3245+
error-ex "^1.3.1"
3246+
json-parse-better-errors "^1.0.1"
3247+
32373248
parseurl@~1.3.2:
32383249
version "1.3.2"
32393250
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"

0 commit comments

Comments
 (0)