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