@@ -183,6 +183,7 @@ export async function exportActorProfile({
183
183
* Imports an ActivityPub profile from a .tar archive stream.
184
184
* @param tarStream - A ReadableStream containing the .tar archive.
185
185
* @param options - Options for the import process.
186
+ * @param options - Options for the import process.
186
187
* @returns A promise that resolves to the parsed profile data.
187
188
*/
188
189
export async function importActorProfile (
@@ -191,7 +192,13 @@ export async function importActorProfile(
191
192
console ?: Pick < Console , 'log' | 'warn' | 'error' >
192
193
onError ?: ( error : Error , context : { fileName ?: string } ) => void
193
194
} = { }
195
+ tarStream : Readable ,
196
+ options : {
197
+ console ?: Pick < Console , 'log' | 'warn' | 'error' >
198
+ onError ?: ( error : Error , context : { fileName ?: string } ) => void
199
+ } = { }
194
200
) : Promise < Record < string , any > > {
201
+ const { console = undefined } = options
195
202
const { console = undefined } = options
196
203
const extract = tar . extract ( )
197
204
const result : Record < string , any > = { }
@@ -210,6 +217,7 @@ export async function importActorProfile(
210
217
return
211
218
}
212
219
220
+ console ?. log ( `Processing file: ${ fileName } ` )
213
221
console ?. log ( `Processing file: ${ fileName } ` )
214
222
let content = ''
215
223
@@ -222,12 +230,14 @@ export async function importActorProfile(
222
230
if ( fileName . endsWith ( '.json' ) ) {
223
231
result [ fileName ] = JSON . parse ( content )
224
232
console ?. log ( 'Parsed JSON file successfully:' , fileName )
233
+ console ?. log ( 'Parsed JSON file successfully:' , fileName )
225
234
} else if ( fileName . endsWith ( '.yaml' ) || fileName . endsWith ( '.yml' ) ) {
226
235
result [ fileName ] = YAML . parse ( content )
227
236
} else if ( fileName . endsWith ( '.csv' ) ) {
228
237
result [ fileName ] = content
229
238
} else {
230
239
console ?. warn ( `Unsupported file type: ${ fileName } , skipping...` )
240
+ console ?. warn ( `Unsupported file type: ${ fileName } , skipping...` )
231
241
}
232
242
} catch ( error : any ) {
233
243
const errorMessage = `Error processing file ${ fileName } : ${ error . message } `
@@ -244,20 +254,25 @@ export async function importActorProfile(
244
254
stream . on ( 'error' , ( error : any ) => {
245
255
console ?. error ( `Stream error on file ${ fileName } :` , error . message )
246
256
next ( error ) // Continue even on stream error
257
+ console ?. error ( `Stream error on file ${ fileName } :` , error . message )
258
+ next ( error ) // Continue even on stream error
247
259
} )
248
260
} )
249
261
250
262
extract . on ( 'finish' , ( ) => {
263
+ console ?. log ( 'All files processed successfully.' )
251
264
console ?. log ( 'All files processed successfully.' )
252
265
resolve ( result )
253
266
} )
254
267
255
268
extract . on ( 'error' , ( error ) => {
269
+ console ?. error ( 'Error during tar extraction:' , error . message )
256
270
console ?. error ( 'Error during tar extraction:' , error . message )
257
271
reject ( new Error ( 'Failed to extract tar file.' ) )
258
272
} )
259
273
260
274
tarStream . on ( 'error' , ( error ) => {
275
+ console ?. error ( 'Error in tar stream:' , error . message )
261
276
console ?. error ( 'Error in tar stream:' , error . message )
262
277
reject ( new Error ( 'Failed to process tar stream.' ) )
263
278
} )
0 commit comments