@@ -21,28 +21,37 @@ const flattenClassNames = (
2121) => previousValue . concat ( currentValue ) ;
2222
2323export const enum FileTypes {
24- scss = 'scss' ,
25- less = 'less' ,
2624 css = 'css' ,
25+ less = 'less' ,
26+ scss = 'scss' ,
2727}
2828
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 ( '/' ) ) ;
3537
36- export const getClasses = ( css : string , fileType : FileTypes ) => {
38+ export const getClasses = ( css : string , fileName : string ) => {
3739 try {
40+ const fileType = getFileType ( fileName ) ;
3841 let transformedCss = '' ;
3942
4043 if ( fileType === FileTypes . less ) {
4144 less . render ( css , { asyncImport : true } as any , ( err , output ) => {
4245 transformedCss = output . css . toString ( ) ;
4346 } ) ;
4447 } 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 ( ) ;
4655 } else {
4756 transformedCss = css ;
4857 }
@@ -88,8 +97,7 @@ export const getDtsSnapshot = (
8897 options : Options ,
8998) => {
9099 const css = scriptSnapshot . getText ( 0 , scriptSnapshot . getLength ( ) ) ;
91- const fileType = getFileType ( fileName ) ;
92- const classes = getClasses ( css , fileType ) ;
100+ const classes = getClasses ( css , fileName ) ;
93101 const dts = createExports ( classes , options ) ;
94102 return ts . ScriptSnapshot . fromString ( dts ) ;
95103} ;
0 commit comments