@@ -312,7 +312,7 @@ export const useImageStore = defineStore<
312
312
const zname = `${ bname } .zip`
313
313
const folder = zip . folder ( bname )
314
314
315
- generateSummaryFiles ( this . summary ) . map ( ( [ fileName , data ] ) =>
315
+ generateSummaryFiles ( this . summary ) . map ( ( { fileName, data} ) =>
316
316
folder ! . file ( fileName , data ) ,
317
317
)
318
318
@@ -371,47 +371,44 @@ export const useImageStore = defineStore<
371
371
} ,
372
372
} )
373
373
374
- const generateSummaryFiles = ( summary : Summary ) => {
375
- const files : [ string , string ] [ ] = [ ]
376
- // summary json
377
- files . push ( [ 'summary.json' , JSON . stringify ( summary ) ] )
374
+ // summary totals csv
375
+ const sTotalsHeaders = [ 'total_detections' , 'unique_detections' ]
376
+ const summaryTotalsToCsv = objectToCsv ( sTotalsHeaders , ( o : Summary ) => [
377
+ [ o . total_detections , o . unique_detections ] ,
378
+ ] )
378
379
379
- // summary totals csv
380
- const sTotalsHeaders = [ 'total_detections' , 'unique_detections' ]
381
- const summaryTotalsCsv = objectToCsv ( sTotalsHeaders , ( o : Summary ) => [
382
- [ o . total_detections , o . unique_detections ] ,
383
- ] ) ( summary )
384
- files . push ( [ 'summary_totals.csv' , summaryTotalsCsv ] )
380
+ // summary detected objects csv
381
+ const detectedHeaders = getCsvHeadersFromJsonSchema (
382
+ summarySchema . properties . detected_objects as JSONSchema7 ,
383
+ )
384
+ const detectedToCsv = objectToCsv ( detectedHeaders , ( obj : Summary ) =>
385
+ obj . detected_objects . map ( ( v ) => [ v . name , v . count , v . hashes . join ( ',' ) ] ) ,
386
+ )
385
387
386
- // summary detected objects csv
387
- const detectedHeaders = getCsvHeadersFromJsonSchema (
388
- summarySchema . properties . detected_objects as JSONSchema7 ,
389
- )
390
- const detectedCsv = objectToCsv (
391
- detectedHeaders ,
392
- ( obj : Summary ) =>
393
- obj . detected_objects . map ( ( v ) => [
394
- v . name ,
395
- v . count ,
396
- v . hashes . join ( ',' ) ,
397
- ] ) ,
398
- ';' ,
399
- ) ( summary )
400
- files . push ( [ 'summary_detected.csv' , detectedCsv ] )
388
+ // summary gps objects csv
389
+ const gpsHeaders = getCsvHeadersFromJsonSchema (
390
+ summarySchema . properties . gps . properties . list . items as JSONSchema7 ,
391
+ )
392
+ const gpsToCsv = objectToCsv ( gpsHeaders , ( obj : Summary ) =>
393
+ obj . gps . list . map ( ( v ) => [
394
+ v ?. coordinate ?. lat ?? '' ,
395
+ v ?. coordinate ?. lng ?? '' ,
396
+ v . hash ,
397
+ ] ) ,
398
+ )
401
399
402
- // summary gps objects csv
403
- if ( summary . gps . list . length > 0 ) {
404
- const gpsHeaders = getCsvHeadersFromJsonSchema (
405
- summarySchema . properties . gps . properties . list . items as JSONSchema7 ,
406
- )
407
- const gpsCsv = objectToCsv ( gpsHeaders , ( obj : Summary ) =>
408
- obj . gps . list . map ( ( v ) => [
409
- v ?. coordinate ?. lat ?? '' ,
410
- v ?. coordinate ?. lng ?? '' ,
411
- v . hash ,
412
- ] ) ,
413
- ) ( summary )
414
- files . push ( [ 'summary_gps.csv' , gpsCsv ] )
415
- }
416
- return files
400
+ const generateSummaryFiles = ( summary : Summary ) => {
401
+ const filesToGenerate = [
402
+ { fileName : 'summary.json' , dataFn : JSON . stringify } ,
403
+ { fileName : 'summary_totals.csv' , dataFn : summaryTotalsToCsv } ,
404
+ { fileName : 'summary_detected.csv' , dataFn : detectedToCsv } ,
405
+ ...( summary . gps . list . length > 0
406
+ ? [ { fileName : 'summary_gps.csv' , dataFn : gpsToCsv } ]
407
+ : [ ] ) ,
408
+ ]
409
+
410
+ return filesToGenerate . map ( ( { fileName, dataFn } ) => ( {
411
+ fileName,
412
+ data : dataFn ( summary ) ,
413
+ } ) )
417
414
}
0 commit comments