mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-07 08:23:55 +00:00
32 lines
876 B
TypeScript
32 lines
876 B
TypeScript
import { stringify } from 'csv-stringify/browser/esm/sync';
|
|
import { OntimeEntry, ProjectRundowns } from 'ontime-types';
|
|
|
|
/**
|
|
* Converts an array of arrays to a CSV file
|
|
*/
|
|
export function makeCSVFromArrayOfArrays(arrayOfArrays: string[][]): string {
|
|
return stringify(arrayOfArrays);
|
|
}
|
|
|
|
/**
|
|
* Receives an object of rundowns, and flattens them into a single, linear rundown
|
|
* Used for CSV export
|
|
*/
|
|
export function aggregateRundowns(rundowns: ProjectRundowns): OntimeEntry[] {
|
|
const rundownKeys = Object.keys(rundowns);
|
|
if (rundownKeys.length === 0) return [];
|
|
const flatRundown: OntimeEntry[] = [];
|
|
|
|
for (const key of rundownKeys) {
|
|
const { order, entries } = rundowns[key];
|
|
|
|
for (let i = 0; i < order.length; i++) {
|
|
const entryId = order[i];
|
|
const entry = entries[entryId];
|
|
|
|
flatRundown.push(entry);
|
|
}
|
|
}
|
|
return flatRundown;
|
|
}
|