@@ -3,15 +3,11 @@ import fsExtra from "fs-extra";
33import path from "path" ;
44import type { NoteMetaFile } from "@triliumnext/server/src/services/meta/note_meta.js" ;
55import { initializeTranslations } from "@triliumnext/server/src/services/i18n.js" ;
6- import archiver , { type Archiver } from "archiver" ;
7- import type { WriteStream } from "fs" ;
86import debounce from "@triliumnext/client/src/services/debounce.js" ;
9- import { extractZip , initializeDatabase , startElectron } from "./utils.js" ;
7+ import { extractZip , importData , initializeDatabase , startElectron } from "./utils.js" ;
108import cls from "@triliumnext/server/src/services/cls.js" ;
119import type { AdvancedExportOptions } from "@triliumnext/server/src/services/export/zip.js" ;
12- import TaskContext from "@triliumnext/server/src/services/task_context.js" ;
1310import { parseNoteMetaFile } from "@triliumnext/server/src/services/in_app_help.js" ;
14- import { resolve } from "path" ;
1511import type NoteMeta from "@triliumnext/server/src/services/meta/note_meta.js" ;
1612
1713interface NoteMapping {
@@ -79,49 +75,6 @@ async function setOptions() {
7975 optionsService . setOption ( "compressImages" , "false" ) ;
8076}
8177
82- async function importData ( path : string ) {
83- const buffer = await createImportZip ( path ) ;
84- const importService = ( await import ( "@triliumnext/server/src/services/import/zip.js" ) ) . default ;
85- const context = new TaskContext ( "no-progress-reporting" , "import" , false ) ;
86- const becca = ( await import ( "@triliumnext/server/src/becca/becca.js" ) ) . default ;
87-
88- const rootNote = becca . getRoot ( ) ;
89- if ( ! rootNote ) {
90- throw new Error ( "Missing root note for import." ) ;
91- }
92- await importService . importZip ( context , buffer , rootNote , {
93- preserveIds : true
94- } ) ;
95- }
96-
97- async function createImportZip ( path : string ) {
98- const inputFile = "input.zip" ;
99- const archive = archiver ( "zip" , {
100- zlib : { level : 0 }
101- } ) ;
102-
103- console . log ( "Archive path is " , resolve ( path ) )
104- archive . directory ( path , "/" ) ;
105-
106- const outputStream = fsExtra . createWriteStream ( inputFile ) ;
107- archive . pipe ( outputStream ) ;
108- await waitForEnd ( archive , outputStream ) ;
109-
110- try {
111- return await fsExtra . readFile ( inputFile ) ;
112- } finally {
113- await fsExtra . rm ( inputFile ) ;
114- }
115- }
116-
117- function waitForEnd ( archive : Archiver , stream : WriteStream ) {
118- return new Promise < void > ( async ( res , rej ) => {
119- stream . on ( "finish" , ( ) => res ( ) ) ;
120- await archive . finalize ( ) ;
121- } ) ;
122-
123- }
124-
12578async function exportData ( noteId : string , format : "html" | "markdown" , outputPath : string , ignoredFiles ?: Set < string > ) {
12679 const zipFilePath = "output.zip" ;
12780
0 commit comments