@@ -35,11 +35,16 @@ export const isCompilable = (filename: string): boolean => {
35
35
}
36
36
37
37
export interface IndexTemplate {
38
- ( paths : string [ ] ) : string
38
+ ( paths : FileInfo [ ] ) : string
39
39
}
40
40
41
- const defaultIndexTemplate : IndexTemplate = ( paths ) => {
42
- const exportEntries = paths . map ( ( filePath ) => {
41
+ interface FileInfo {
42
+ path : string
43
+ originalPath : string
44
+ }
45
+
46
+ const defaultIndexTemplate : IndexTemplate = ( paths : FileInfo [ ] ) => {
47
+ const exportEntries = paths . map ( ( { path : filePath } ) => {
43
48
const basename = path . basename ( filePath , path . extname ( filePath ) )
44
49
const exportName = formatExportName ( basename )
45
50
return `export { default as ${ exportName } } from './${ basename } '`
@@ -92,7 +97,7 @@ export const dirCommand: SvgrCommand = async (
92
97
93
98
const generateIndex = async (
94
99
dest : string ,
95
- files : string [ ] ,
100
+ files : FileInfo [ ] ,
96
101
opts : Options ,
97
102
) => {
98
103
const ext = resolveExtension ( opts , extOpt , false )
@@ -119,17 +124,27 @@ export const dirCommand: SvgrCommand = async (
119
124
if ( stats . isDirectory ( ) ) {
120
125
const dirname = filename
121
126
const files = await fs . readdir ( dirname )
122
- const results = await Promise . all (
127
+ const results = ( await Promise . all (
123
128
files . map ( async ( relativeFile ) => {
124
129
const absFile = path . join ( dirname , relativeFile )
125
- return handle ( absFile , root )
130
+ return [ absFile , await handle ( absFile , root ) ]
126
131
} ) ,
127
- )
128
- const transformed = results . filter ( ( result ) => result . transformed )
132
+ ) ) as [
133
+ string ,
134
+ {
135
+ dest : string | null
136
+ transformed : boolean
137
+ } ,
138
+ ] [ ]
139
+ const transformed = results . filter ( ( [ , result ] ) => result . transformed )
129
140
if ( transformed . length ) {
130
141
const destFiles = results
131
- . map ( ( result ) => result . dest )
132
- . filter ( Boolean ) as string [ ]
142
+ . filter ( ( [ , result ] ) => result . dest )
143
+ . map ( ( [ originalPath , result ] ) => ( {
144
+ path : result . dest ,
145
+ originalPath,
146
+ } ) )
147
+ . filter ( ( { path } ) => path ) as FileInfo [ ]
133
148
const dest = path . resolve (
134
149
outDir as string ,
135
150
path . relative ( root , dirname ) ,
0 commit comments