diff --git a/src/language/__tests__/blockString-fuzz.js b/src/language/__tests__/blockString-fuzz.js index dc79f8aeed..3b285933e8 100644 --- a/src/language/__tests__/blockString-fuzz.js +++ b/src/language/__tests__/blockString-fuzz.js @@ -48,15 +48,13 @@ describe('printBlockString', () => { ); const printedMultilineString = lexValue( - printBlockString(testValue, ' ', true), + printBlockString(testValue, true), ); invariant( testValue === printedMultilineString, dedent` - Expected lexValue(printBlockString(${inspectStr( - testValue, - )}, ' ', true)) + Expected lexValue(printBlockString(${inspectStr(testValue)}, true)) to equal ${inspectStr(testValue)} but got ${inspectStr(printedMultilineString)} `, diff --git a/src/language/__tests__/blockString-test.js b/src/language/__tests__/blockString-test.js index 929404eb73..3211dae0fb 100644 --- a/src/language/__tests__/blockString-test.js +++ b/src/language/__tests__/blockString-test.js @@ -134,13 +134,13 @@ describe('printBlockString', () => { it('by default print block strings as single line', () => { const str = 'one liner'; expect(printBlockString(str)).to.equal('"""one liner"""'); - expect(printBlockString(str, '', true)).to.equal('"""\none liner\n"""'); + expect(printBlockString(str, true)).to.equal('"""\none liner\n"""'); }); it('correctly prints single-line with leading space', () => { const str = ' space-led string'; expect(printBlockString(str)).to.equal('""" space-led string"""'); - expect(printBlockString(str, '', true)).to.equal( + expect(printBlockString(str, true)).to.equal( '""" space-led string\n"""', ); }); @@ -152,7 +152,7 @@ describe('printBlockString', () => { '""" space-led value "quoted string"\n"""', ); - expect(printBlockString(str, '', true)).to.equal( + expect(printBlockString(str, true)).to.equal( '""" space-led value "quoted string"\n"""', ); }); @@ -161,7 +161,7 @@ describe('printBlockString', () => { const str = 'backslash \\'; expect(printBlockString(str)).to.equal('"""\nbackslash \\\n"""'); - expect(printBlockString(str, '', true)).to.equal('"""\nbackslash \\\n"""'); + expect(printBlockString(str, true)).to.equal('"""\nbackslash \\\n"""'); }); it('correctly prints string with a first line indentation', () => { diff --git a/src/language/__tests__/printer-test.js b/src/language/__tests__/printer-test.js index d96b3c2bc4..29c653dfb2 100644 --- a/src/language/__tests__/printer-test.js +++ b/src/language/__tests__/printer-test.js @@ -198,7 +198,7 @@ describe('Printer: Query document', () => { size: $size bar: $b obj: {key: "value", block: """ - block string uses \""" + block string uses \""" """} ) } diff --git a/src/language/blockString.js b/src/language/blockString.js index de72108650..08f106005e 100644 --- a/src/language/blockString.js +++ b/src/language/blockString.js @@ -93,7 +93,6 @@ export function getBlockStringIndentation(value: string): number { */ export function printBlockString( value: string, - indentation: string = '', preferMultipleLines: boolean = false, ): string { const isSingleLine = value.indexOf('\n') === -1; @@ -109,9 +108,9 @@ export function printBlockString( let result = ''; // Format a multi-line block quote to account for leading space. if (printAsMultipleLines && !(isSingleLine && hasLeadingSpace)) { - result += '\n' + indentation; + result += '\n'; } - result += indentation ? value.replace(/\n/g, '\n' + indentation) : value; + result += value; if (printAsMultipleLines) { result += '\n'; } diff --git a/src/language/printer.js b/src/language/printer.js index 8ca8fb2dad..4f7cc69b9b 100644 --- a/src/language/printer.js +++ b/src/language/printer.js @@ -84,10 +84,8 @@ const printDocASTReducer: any = { IntValue: ({ value }) => value, FloatValue: ({ value }) => value, - StringValue: ({ value, block: isBlockString }, key) => - isBlockString - ? printBlockString(value, key === 'description' ? '' : ' ') - : JSON.stringify(value), + StringValue: ({ value, block: isBlockString }) => + isBlockString ? printBlockString(value) : JSON.stringify(value), BooleanValue: ({ value }) => (value ? 'true' : 'false'), NullValue: () => 'null', EnumValue: ({ value }) => value, diff --git a/src/utilities/printSchema.js b/src/utilities/printSchema.js index 456af5fa67..eb8427f34a 100644 --- a/src/utilities/printSchema.js +++ b/src/utilities/printSchema.js @@ -314,7 +314,7 @@ function printDescription( } const preferMultipleLines = description.length > 70; - const blockString = printBlockString(description, '', preferMultipleLines); + const blockString = printBlockString(description, preferMultipleLines); const prefix = indentation && !firstInBlock ? '\n' + indentation : indentation;