diff --git a/src/multiparser.js b/src/multiparser.js index 8c24a1ef0..62963433e 100644 --- a/src/multiparser.js +++ b/src/multiparser.js @@ -14,6 +14,9 @@ function printSubtree(subtreeParser, path, print, options) { next.options = Object.assign({}, options, next.options, { originalText: next.text }); + if (next.options.parser === "json") { + next.options.trailingComma = "none"; + } const ast = require("./parser").parse(next.text, next.options); const astComments = ast.comments; delete ast.comments; diff --git a/tests/multiparser_markdown_json/__snapshots__/jsfmt.spec.js.snap b/tests/multiparser_markdown_json/__snapshots__/jsfmt.spec.js.snap new file mode 100644 index 000000000..0093645dc --- /dev/null +++ b/tests/multiparser_markdown_json/__snapshots__/jsfmt.spec.js.snap @@ -0,0 +1,16 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`trailing_comma.md 1`] = ` +\`\`\`json +{ + "foo": "bar" +} +\`\`\` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\`\`\`json +{ + "foo": "bar" +} +\`\`\` + +`; diff --git a/tests/multiparser_markdown_json/jsfmt.spec.js b/tests/multiparser_markdown_json/jsfmt.spec.js new file mode 100644 index 000000000..c5099cdb8 --- /dev/null +++ b/tests/multiparser_markdown_json/jsfmt.spec.js @@ -0,0 +1 @@ +run_spec(__dirname, { parser: "markdown", trailingComma: "all" }); diff --git a/tests/multiparser_markdown_json/trailing_comma.md b/tests/multiparser_markdown_json/trailing_comma.md new file mode 100644 index 000000000..7c992821b --- /dev/null +++ b/tests/multiparser_markdown_json/trailing_comma.md @@ -0,0 +1,5 @@ +```json +{ + "foo": "bar" +} +```