allow importing csv with 2 columns #2412

pull/2465/head
Mikael Finstad 1 year ago
parent 2505050410
commit 250506ce4f
No known key found for this signature in database
GPG Key ID: 25AB36E3E81CBC26

@ -244,6 +244,15 @@ it('parses csv with timestamps', async () => {
]);
});
it('parses csv with 2 only columns', async () => {
const parsed = await parseCsv('1,2\n3,4\n', parseCsvTime);
expect(parsed).toEqual([
{ start: 1, end: 2 },
{ start: 3, end: 4 },
]);
});
const cutlistStr = `
[General]
Application=SomeApplication.exe

@ -47,16 +47,15 @@ export const getFrameValParser = (fps: number) => (str: string) => {
};
export async function parseCsv(csvStr: string, parseTimeFn: (a: string) => number | undefined) {
const rows = csvParse(csvStr, {}) as [string, string, string][];
const rows = csvParse(csvStr, {}) as ([string, string] | [string, string, string])[];
if (rows.length === 0) throw new Error(i18n.t('No rows found'));
if (!rows.every((row) => row.length === 3)) throw new Error(i18n.t('One or more rows does not have 3 columns'));
const mapped = rows
.map(([start, end, name]) => ({
start: parseTimeFn(start) ?? 0,
end: parseTimeFn(end),
name: name.trim(),
}));
if (!rows.every((row) => row.length >= 2 && row.length <= 3)) throw new Error(i18n.t('One or more rows does not have 3 columns'));
const mapped = rows.map(([start, end, name]) => ({
start: parseTimeFn(start) ?? 0,
end: parseTimeFn(end),
name: name?.trim(),
}));
if (!mapped.every(({ start, end }) => (
!Number.isNaN(start)

Loading…
Cancel
Save