@@ -21,23 +21,39 @@ const flattenClassNames = (
21
21
) => previousValue . concat ( currentValue ) ;
22
22
23
23
export const enum FileTypes {
24
- scss = 'scss ' ,
24
+ css = 'css ' ,
25
25
less = 'less' ,
26
+ scss = 'scss' ,
26
27
}
27
28
28
- export const getFileType = ( fileName : string ) =>
29
- fileName . endsWith ( 'less' ) ? FileTypes . less : FileTypes . scss ;
29
+ export const getFileType = ( fileName : string ) => {
30
+ if ( fileName . endsWith ( '.css' ) ) return FileTypes . css ;
31
+ if ( fileName . endsWith ( '.less' ) ) return FileTypes . less ;
32
+ return FileTypes . scss ;
33
+ } ;
34
+
35
+ const getFilePath = ( fileName : string ) =>
36
+ fileName . substring ( 0 , fileName . lastIndexOf ( '/' ) ) ;
30
37
31
- export const getClasses = ( css : string , fileType : FileTypes ) => {
38
+ export const getClasses = ( css : string , fileName : string ) => {
32
39
try {
40
+ const fileType = getFileType ( fileName ) ;
33
41
let transformedCss = '' ;
34
42
35
43
if ( fileType === FileTypes . less ) {
36
44
less . render ( css , { asyncImport : true } as any , ( err , output ) => {
37
45
transformedCss = output . css . toString ( ) ;
38
46
} ) ;
47
+ } else if ( fileType === FileTypes . scss ) {
48
+ const filePath = getFilePath ( fileName ) ;
49
+ transformedCss = sass
50
+ . renderSync ( {
51
+ data : css ,
52
+ includePaths : [ filePath ] ,
53
+ } )
54
+ . css . toString ( ) ;
39
55
} else {
40
- transformedCss = sass . renderSync ( { data : css } ) . css . toString ( ) ;
56
+ transformedCss = css ;
41
57
}
42
58
43
59
const processedCss = processor . process ( transformedCss ) ;
@@ -81,8 +97,7 @@ export const getDtsSnapshot = (
81
97
options : Options ,
82
98
) => {
83
99
const css = scriptSnapshot . getText ( 0 , scriptSnapshot . getLength ( ) ) ;
84
- const fileType = getFileType ( fileName ) ;
85
- const classes = getClasses ( css , fileType ) ;
100
+ const classes = getClasses ( css , fileName ) ;
86
101
const dts = createExports ( classes , options ) ;
87
102
return ts . ScriptSnapshot . fromString ( dts ) ;
88
103
} ;
0 commit comments