1
1
import { writeFileSync } from "fs" ;
2
2
import { resolve } from "path" ;
3
+ import * as prettier from "prettier" ;
4
+
3
5
import { Platform } from "../../../../types/platform.js" ;
4
6
import { Options } from "../../../../types/styleDictionary/options.js" ;
5
7
import { DeepKeyTokenMap } from "../../../../types/tokenStudio/designTokenTypes.js" ;
@@ -14,6 +16,8 @@ export function formatExtraOutput(
14
16
const ensureIfArray = ( x : any ) => ( Array . isArray ( x ) ? ( x as any [ ] ) : x ) ;
15
17
16
18
if ( index ) {
19
+ let parser ;
20
+ // Set output
17
21
switch ( args . platform ) {
18
22
case "css" :
19
23
case "scss" :
@@ -29,14 +33,14 @@ export function formatExtraOutput(
29
33
const classes = index . class
30
34
? index . class . map ( ( cls ) => {
31
35
const c = ensureIfArray ( outputObject [ `${ cls [ 1 ] } .${ args . platform } ` ] ) ;
32
- return cls && Array . isArray ( c ) ? `.${ cls [ 0 ] } {\n\t ${ c . join ( "\n\t " ) } \n }` : "" ;
36
+ return cls && Array . isArray ( c ) ? `.${ cls [ 0 ] } {${ c . join ( "" ) } }` : "" ;
33
37
} )
34
38
: [ ] ;
35
39
const mixins = index . mixin
36
40
? index . mixin . map ( ( [ mixinName , output ] ) => {
37
41
const m = ensureIfArray ( outputObject [ `${ output } .${ args . platform } ` ] ) ;
38
42
return Array . isArray ( m )
39
- ? `@mixin ${ mixinName } {\n\t ${ m . map ( ( o ) => `${ o } ` . replaceAll ( "$" , "--" ) ) . join ( "\n\t " ) } \n }`
43
+ ? `@mixin ${ mixinName } {${ m . map ( ( o ) => `${ o } ` . replaceAll ( "$" , "--" ) ) . join ( "" ) } }`
40
44
: "" ;
41
45
} )
42
46
: [ ] ;
@@ -45,9 +49,8 @@ export function formatExtraOutput(
45
49
const m = ensureIfArray ( outputObject [ `${ output } .${ args . platform } ` ] ) ;
46
50
const cssProps = m . map ( ( o ) => `${ o } ` . replaceAll ( "$" , "--" ) ) ;
47
51
return Array . isArray ( m )
48
- ? `${
49
- output === "light" ? `:root {\n\t${ cssProps . join ( "\n\t" ) } \n}\n` : ""
50
- } @media (${ mediaSchemed } ) {\n\t.calcite-mode-auto {\n\t\t${ cssProps . join ( "\n\t\t" ) } \n\t}\n}`
52
+ ? `${ output === "light" ? `:root {${ cssProps . join ( "" ) } }` : ""
53
+ } @media (${ mediaSchemed } ) {.calcite-mode-auto {${ cssProps . join ( "" ) } }}`
51
54
: "" ;
52
55
} )
53
56
: [ ] ;
@@ -72,32 +75,55 @@ export function formatExtraOutput(
72
75
break ;
73
76
}
74
77
75
- writeFileSync ( resolve ( args . buildPath , index . name ) , `${ args . header } ${ outputFiles [ index . name ] . join ( "\n\n" ) } \n` ) ;
78
+ // Set Parser
79
+ switch ( args . platform ) {
80
+ case "css" :
81
+ case "scss" :
82
+ parser = args . platform ;
83
+ break ;
84
+ case "sass" :
85
+ parser = "scss" ;
86
+ case "es6" :
87
+ case "js" :
88
+ parser = "babel" ;
89
+ break ;
90
+ case "docs" :
91
+ parser = "json" ;
92
+ default :
93
+ break ;
94
+ }
95
+
96
+ writeFileSync (
97
+ resolve ( args . buildPath , index . name ) ,
98
+ prettier . format ( `${ args . header } ${ outputFiles [ index . name ] . join ( " " ) } ` , { parser } )
99
+ ) ;
76
100
}
77
101
78
102
Object . entries ( outputObject ) . forEach ( ( [ fileName , outputList ] ) => {
79
103
const absoluteFilePath = resolve ( args . buildPath , `${ fileName } ` ) ;
80
104
switch ( args . platform ) {
81
105
case Platform . CSS :
82
106
if ( typeof outputList [ 0 ] === "string" && outputList [ 0 ] . slice ( 0 , 2 ) === "--" ) {
83
- writeFileSync ( absoluteFilePath , `${ args . header } :root{\n\t${ outputList . join ( "\n\t" ) } \n}\n` ) ;
107
+ writeFileSync (
108
+ absoluteFilePath ,
109
+ prettier . format ( `${ args . header } :root{${ outputList . join ( "" ) } }` , { parser : "css" } )
110
+ ) ;
84
111
} else {
85
- writeFileSync ( absoluteFilePath , `${ args . header } ${ outputList . join ( "\n\n " ) } \n` ) ;
112
+ writeFileSync ( absoluteFilePath , prettier . format ( `${ args . header } ${ outputList . join ( "" ) } ` , { parser : "css" } ) ) ;
86
113
}
87
114
break ;
88
115
case Platform . SCSS :
89
116
case Platform . SASS :
90
- if ( typeof outputList [ 0 ] === "string" && outputList [ 0 ] [ 0 ] === "$" ) {
91
- writeFileSync ( absoluteFilePath , `${ args . header } ${ outputList . join ( "\n" ) } \n` ) ;
92
- } else {
93
- writeFileSync ( absoluteFilePath , `${ args . header } ${ outputList . join ( "\n\n" ) } \n` ) ;
94
- }
117
+ writeFileSync ( absoluteFilePath , prettier . format ( `${ args . header } ${ outputList . join ( "" ) } ` , { parser : "scss" } ) ) ;
95
118
break ;
96
119
case Platform . JS :
97
- writeFileSync ( absoluteFilePath , args . header + "export default " + outputList [ 0 ] + "\n" ) ;
120
+ writeFileSync (
121
+ absoluteFilePath ,
122
+ prettier . format ( args . header + "export default " + outputList [ 0 ] + "" , { parser : "babel" } )
123
+ ) ;
98
124
break ;
99
125
case Platform . DOCS :
100
- writeFileSync ( absoluteFilePath , outputList [ 0 ] ) ;
126
+ writeFileSync ( absoluteFilePath , prettier . format ( outputList [ 0 ] . join ( "" ) , { parser : "json" } ) ) ;
101
127
break ;
102
128
default :
103
129
break ;
0 commit comments