@@ -21,23 +21,39 @@ const flattenClassNames = (
2121) => previousValue . concat ( currentValue ) ;
2222
2323export const enum FileTypes {
24- scss = 'scss ' ,
24+ css = 'css ' ,
2525 less = 'less' ,
26+ scss = 'scss' ,
2627}
2728
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 ( '/' ) ) ;
3037
31- export const getClasses = ( css : string , fileType : FileTypes ) => {
38+ export const getClasses = ( css : string , fileName : string ) => {
3239 try {
40+ const fileType = getFileType ( fileName ) ;
3341 let transformedCss = '' ;
3442
3543 if ( fileType === FileTypes . less ) {
3644 less . render ( css , { asyncImport : true } as any , ( err , output ) => {
3745 transformedCss = output . css . toString ( ) ;
3846 } ) ;
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 ( ) ;
3955 } else {
40- transformedCss = sass . renderSync ( { data : css } ) . css . toString ( ) ;
56+ transformedCss = css ;
4157 }
4258
4359 const processedCss = processor . process ( transformedCss ) ;
@@ -81,8 +97,7 @@ export const getDtsSnapshot = (
8197 options : Options ,
8298) => {
8399 const css = scriptSnapshot . getText ( 0 , scriptSnapshot . getLength ( ) ) ;
84- const fileType = getFileType ( fileName ) ;
85- const classes = getClasses ( css , fileType ) ;
100+ const classes = getClasses ( css , fileName ) ;
86101 const dts = createExports ( classes , options ) ;
87102 return ts . ScriptSnapshot . fromString ( dts ) ;
88103} ;
0 commit comments