From b84c08b3610ba5553a28e4130158cfa677346a84 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 17 Oct 2020 19:57:50 -0400 Subject: [PATCH 1/3] Used JSON5 for config file parsing --- package-lock.json | 10 ++++++++-- package.json | 3 ++- src/utils.ts | 4 ++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index dbcd1f05f..19082a019 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2970,6 +2970,12 @@ "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", "dev": true }, + "@types/json5": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.30.tgz", + "integrity": "sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==", + "dev": true + }, "@types/lodash": { "version": "4.14.162", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.162.tgz", @@ -7083,7 +7089,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, "requires": { "minimist": "^1.2.5" } @@ -8989,7 +8994,8 @@ "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, "supports-color": { "version": "7.1.0", diff --git a/package.json b/package.json index 307d84aa5..1e6b3e40a 100644 --- a/package.json +++ b/package.json @@ -15,9 +15,9 @@ "cson-parser": "^4.0.5", "eslint-config-prettier": "6.13.0", "glob": "7.1.6", + "json5": "^2.1.3", "lodash": "^4.17.20", "minimatch": "3.0.4", - "strip-json-comments": "3.1.1", "tslint": "6.1.3", "typescript": "4.0.3" }, @@ -30,6 +30,7 @@ "@types/eslint-config-prettier": "6.11.0", "@types/glob": "7.1.3", "@types/jest": "26.0.14", + "@types/json5": "0.0.30", "@types/lodash": "^4.14.162", "@types/minimatch": "3.0.3", "@types/node": "12.12.21", diff --git a/src/utils.ts b/src/utils.ts index 798c4c0e2..391af14f3 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,4 +1,4 @@ -import stripJsonComments from "strip-json-comments"; +import JSON5 from "json5"; export const isDefined = (item: Item | undefined): item is Item => item !== undefined; @@ -55,4 +55,4 @@ export const uniqueFromSources = (...sources: (T | T[] | undefined)[]) => { return Array.from(new Set(items)); }; -export const parseJson = (text: string) => JSON.parse(stripJsonComments(text)); +export const parseJson = (text: string) => JSON5.parse(text); From 8d04cca6b07076d7a1f5d0a8b0b64007ab1b7b0c Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sat, 17 Oct 2020 20:04:45 -0400 Subject: [PATCH 2/3] Corrected test --- src/input/importer.test.ts | 2 +- src/utils.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/input/importer.test.ts b/src/input/importer.test.ts index 861bc37ba..02377971e 100644 --- a/src/input/importer.test.ts +++ b/src/input/importer.test.ts @@ -122,7 +122,7 @@ describe("importer", () => { // Assert expect(imported).toEqual( expect.objectContaining({ - message: "Unexpected token N in JSON at position 0", + message: "JSON5: invalid character 'O' at 1:2", }), ); }); diff --git a/src/utils.ts b/src/utils.ts index 391af14f3..c81e64f1a 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -56,3 +56,5 @@ export const uniqueFromSources = (...sources: (T | T[] | undefined)[]) => { }; export const parseJson = (text: string) => JSON5.parse(text); + +console.log("HI", parseJson(`{ /* hi */ "wat": true }`)); From 7771ab56a375fb4ae0a5d57c24dc677252a22aef Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Sun, 18 Oct 2020 15:22:47 -0400 Subject: [PATCH 3/3] Oops, a console log --- src/utils.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/utils.ts b/src/utils.ts index c81e64f1a..391af14f3 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -56,5 +56,3 @@ export const uniqueFromSources = (...sources: (T | T[] | undefined)[]) => { }; export const parseJson = (text: string) => JSON5.parse(text); - -console.log("HI", parseJson(`{ /* hi */ "wat": true }`));