refactor(export/zip): extract into separate provider

This commit is contained in:
Elian Doran
2025-06-23 16:08:31 +03:00
parent c5196721d4
commit dfd575b6eb
3 changed files with 188 additions and 181 deletions

View File

@@ -0,0 +1,27 @@
import { Archiver } from "archiver";
import type { default as NoteMeta, NoteMetaFile } from "../../meta/note_meta.js";
interface ZipExportProviderData {
getNoteTargetUrl: (targetNoteId: string, sourceMeta: NoteMeta) => string | null;
metaFile: NoteMetaFile;
rootMeta: NoteMeta;
archive: Archiver;
}
export abstract class ZipExportProvider {
metaFile: NoteMetaFile;
getNoteTargetUrl: (targetNoteId: string, sourceMeta: NoteMeta) => string | null;
rootMeta: NoteMeta;
archive: Archiver;
constructor(data: ZipExportProviderData) {
this.metaFile = data.metaFile;
this.getNoteTargetUrl = data.getNoteTargetUrl;
this.rootMeta = data.rootMeta;
this.archive = data.archive;
}
abstract prepareMeta(): void;
abstract afterDone(): void;
}