feat: Stream download, extract and parse datasets

This commit is contained in:
Lucàs
2024-09-28 16:19:43 +02:00
parent 5a00871319
commit ffc1ad3e84
32 changed files with 501 additions and 791 deletions
@@ -1,18 +0,0 @@
import ArchiveExtractor from "./ArchiveExtractor";
import unzipper from "unzipper";
import { pipeline } from "node:stream";
import { promisify } from "node:util";
class ZipExtractor implements ArchiveExtractor {
public static instance: ArchiveExtractor = new ZipExtractor();
async extract(
stream: ReadableStream,
destinationPath: string
): Promise<void> {
const streamPipeline = promisify(pipeline);
await streamPipeline(stream, unzipper.Extract({ path: destinationPath }));
}
}
export default ZipExtractor;