better zip name if only 1 item is selected

Massimo Melina committed Jan 19, 2023 at 12:25 UTC b0fc67d23ad407083fd7122652e3f124ad5522e0
1 file changed +3 -3
src/zip.ts
+3 -3
@@ -14,11 +14,11 @@ import { HTTP_OK } from './const'
14 export async function zipStreamFromFolder(node: VfsNode, ctx: Koa.Context) {
15 ctx.status = HTTP_OK
16 ctx.mime = 'zip'
17 - const name = getNodeName(node)
18 - ctx.attachment((isWindowsDrive(name) ? name[0] : (name || 'archive')) + '.zip')
19 - const filter = pattern2filter(String(ctx.query.search||''))
17 // ctx.query.list is undefined | string | string[]
18 const list = wantArray(ctx.query.list)[0]?.split('*') // we are using * as separator because it cannot be used in a file name and doesn't need url encoding
19 + const name = list?.length === 1 ? basename(list[0]) : getNodeName(node)
20 + ctx.attachment((isWindowsDrive(name) ? name[0] : (name || 'archive')) + '.zip')
21 + const filter = pattern2filter(String(ctx.query.search||''))
22 const walker = !list ? walkNode(node, ctx, Infinity)
23 : (async function*(): AsyncIterableIterator<VfsNode> {
24 for await (const el of list) {