Using removeComments from commandLineParser. This is more robust as it removes both single and multiline comments

This commit is contained in:
Jason Ramsay 2016-02-23 13:30:24 -08:00
parent 5cdb97cbfd
commit 0de8f9eeb2
2 changed files with 2 additions and 3 deletions

View File

@ -477,7 +477,7 @@ namespace ts {
*
* This method replace comment content by whitespace rather than completely remove them to keep positions in json parsing error reporting accurate.
*/
function removeComments(jsonText: string): string {
export function removeComments(jsonText: string): string {
let output = "";
const scanner = createScanner(ScriptTarget.ES5, /* skipTrivia */ false, LanguageVariant.Standard, jsonText);
let token: SyntaxKind;

View File

@ -21,8 +21,7 @@ namespace ts.JsTyping {
function tryParseJson(jsonPath: string, host: TypingResolutionHost): any {
if (host.fileExists(jsonPath)) {
try {
// Strip out single-line comments
const contents = host.readFile(jsonPath).replace(/^\s*\/\/(.*)$/gm, "");
const contents = removeComments(host.readFile(jsonPath));
return JSON.parse(contents);
}
catch (e) { }