@@ -11,14 +11,18 @@ import {
1111
1212const prettier = require ( 'prettier' ) ;
1313
14+ type ParserOption = 'babylon' | 'flow'
15+ type TrailingCommaOption = 'none' | 'es5' | 'all' | boolean /* deprecated boolean*/
16+
1417interface PrettierConfig {
1518 printWidth : number ,
1619 tabWidth : number ,
1720 useFlowParser : boolean , // deprecated
1821 singleQuote : boolean ,
19- trailingComma : boolean ,
22+ trailingComma : TrailingCommaOption ,
2023 bracketSpacing : boolean ,
21- parser : string
24+ jsxBracketSameLine : boolean ,
25+ parser : ParserOption
2226}
2327
2428function format ( text : string ) : string {
@@ -30,14 +34,24 @@ function format(text: string): string {
3034 if ( ! parser ) { // unset config
3135 parser = config . useFlowParser ? 'flow' : 'babylon' ;
3236 }
37+ /*
38+ handle trailingComma changes boolean -> string
39+ */
40+ let trailingComma = config . trailingComma ;
41+ if ( trailingComma === true ) {
42+ trailingComma = 'es5' ;
43+ } else if ( trailingComma === false ) {
44+ trailingComma = 'none' ;
45+ }
3346 let transformed : string ;
3447 try {
3548 return prettier . format ( text , {
3649 printWidth : config . printWidth ,
3750 tabWidth : config . tabWidth ,
3851 singleQuote : config . singleQuote ,
39- trailingComma : config . trailingComma ,
52+ trailingComma,
4053 bracketSpacing : config . bracketSpacing ,
54+ jsxBracketSameLine : config . jsxBracketSameLine ,
4155 parser : parser
4256 } ) ;
4357 } catch ( e ) {
@@ -72,4 +86,4 @@ class PrettierEditProvider implements
7286}
7387
7488export default PrettierEditProvider ;
75- export { PrettierConfig }
89+ export { PrettierConfig }
0 commit comments