添加filesystem

This commit is contained in:
2025-04-14 18:04:04 +08:00
parent 3b2e72127f
commit b76a685988
18 changed files with 1173 additions and 25 deletions

View File

@@ -0,0 +1,32 @@
/* eslint-disable max-classes-per-file */
/* eslint-disable import/prefer-default-export */
import JSZip, { JSZipObject } from "jszip";
import { FileReader, FileWriter } from "../filesystem";
export class ZipFileReader implements FileReader {
zipObject: JSZipObject;
constructor(zipObject: JSZipObject) {
this.zipObject = zipObject;
}
read(type?: "string" | "blob"): Promise<string | Blob> {
return this.zipObject.async(type || "string");
}
}
export class ZipFileWriter implements FileWriter {
zip: JSZip;
path: string;
constructor(zip: JSZip, path: string) {
this.zip = zip;
this.path = path;
}
write(content: string): Promise<void> {
this.zip.file(this.path, content);
return Promise.resolve();
}
}