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) => {