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