fix: unclosed file

This commit is contained in:
monoid 2025-05-01 23:56:01 +09:00
parent 589a9acd3c
commit 1f79f36dfc

View file

@ -1,6 +1,6 @@
import { type FileHandle, open } from "node:fs/promises";
import { orderBy } from "natural-orderby";
import { ZipReader, Reader, type Entry } from "@zip.js/zip.js";
import { ZipReader, Reader, type Entry, ZipReaderConstructorOptions } from "@zip.js/zip.js";
import EventEmitter from "node:events";
class FileReader extends Reader<string> {
@ -55,10 +55,20 @@ class FileReader extends Reader<string> {
}
}
class FileZipReader extends ZipReader<FileHandle> {
constructor(private reader: FileReader, options?: ZipReaderConstructorOptions) {
super(reader, options);
}
override async close(): Promise<void> {
super.close();
await this.reader.close();
}
}
export async function readZip(path: string): Promise<{
reader: ZipReader<FileHandle>
}> {
const reader = new ZipReader(new FileReader(path), {
const reader = new FileZipReader(new FileReader(path), {
useCompressionStream: true,
preventClose: false,
});