Skip to content

Commit 7c46ad7

Browse files
authored
fix(cli): fix index generation (#443)
Fixes #433
1 parent 706df21 commit 7c46ad7

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

packages/cli/src/dirCommand.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export function isCompilable(filename) {
3636
}
3737

3838
function defaultIndexTemplate(filePaths) {
39-
const exportEntries = filePaths.map(filePath => {
39+
const exportEntries = filePaths.map((filePath) => {
4040
const basename = path.basename(filePath, path.extname(filePath))
4141
const exportName = /^\d/.test(basename) ? `Svg${basename}` : basename
4242
return `export { default as ${exportName} } from './${basename}'`
@@ -54,7 +54,7 @@ export default async function dirCommand(
5454
{ ext, filenameCase = CASE.PASCAL, ...options },
5555
) {
5656
async function write(src, dest) {
57-
if (!isCompilable(src)) return null
57+
if (!isCompilable(src)) return { transformed: false, dest: null }
5858

5959
ext = ext || getDefaultExtension(options)
6060
dest = rename(dest, ext, filenameCase)
@@ -64,12 +64,12 @@ export default async function dirCommand(
6464

6565
if (program.ignoreExisting && (await exists(dest))) {
6666
politeWrite(program, chalk.grey(logOutput))
67-
return null
67+
return { transformed: false, dest }
6868
}
6969

7070
outputFileSync(dest, code)
7171
politeWrite(program, chalk.white(logOutput))
72-
return dest
72+
return { transformed: true, dest }
7373
}
7474

7575
async function generateIndex(dest, files) {
@@ -86,28 +86,29 @@ export default async function dirCommand(
8686
const dirname = filename
8787
const files = await readdir(dirname)
8888
const results = await Promise.all(
89-
files.map(async relativeFile => {
89+
files.map(async (relativeFile) => {
9090
const absFile = path.join(dirname, relativeFile)
9191
return handle(absFile, root)
9292
}),
9393
)
94-
const transformed = results.filter(Boolean)
94+
const transformed = results.filter((result) => result.transformed)
9595
if (transformed.length) {
96+
const destFiles = results.map((result) => result.dest).filter(Boolean)
9697
const dest = path.resolve(program.outDir, path.relative(root, dirname))
97-
await generateIndex(dest, transformed)
98+
await generateIndex(dest, destFiles)
9899
}
99-
return null
100+
return { transformed: false, dest: null }
100101
}
101102

102103
const dest = path.resolve(program.outDir, path.relative(root, filename))
103104
return write(filename, dest)
104105
}
105106

106107
await Promise.all(
107-
filenames.map(async file => {
108+
filenames.map(async (file) => {
108109
const stats = await stat(file)
109110
const root = stats.isDirectory() ? file : path.dirname(file)
110-
return handle(file, root)
111+
await handle(file, root)
111112
}),
112113
)
113114
}

0 commit comments

Comments
 (0)