Files
Trilium/apps/server/src/services/export/zip/abstract_provider.ts

28 lines
820 B
TypeScript
Raw Normal View History

import { Archiver } from "archiver";
import type { default as NoteMeta, NoteMetaFile } from "../../meta/note_meta.js";
export 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;
}