fix: invalid zip after selection of files

Massimo Melina committed May 24, 2022 at 23:30 UTC be42b7bc2ea37faae23f7087dbc768d267220351
1 file changed +7 -4
server/src/zip.ts
+7 -4
@@ -22,10 +22,13 @@ export async function zipStreamFromFolder(node: VfsNode, ctx: Koa.Context) {
22 const subNode = await urlToNode(el, ctx, node)
23 if (!subNode || !hasPermission(subNode,'can_read',ctx))
24 continue
25 - if (await nodeIsDirectory(subNode)) // a directory needs to walked
26 - yield* walkNode(subNode, ctx, Infinity, el+'/')
27 - else
28 - yield { ...subNode, name: prefix('', dirname(el), '/') + getNodeName(subNode) } // reflect relative path in archive, otherwise way may have name-clashes
25 + if (await nodeIsDirectory(subNode)) {// a directory needs to walked
26 + yield* walkNode(subNode, ctx, Infinity, el + '/')
27 + continue
28 + }
29 + let folder = dirname(el)
30 + folder = folder === '.' ? '' : folder + '/'
31 + yield { ...subNode, name: folder + getNodeName(subNode) } // reflect relative path in archive, otherwise way may have name-clashes
32 }
33 })()
34 const mappedWalker = filterMapGenerator(walker, async (el:VfsNode) => {