1
0
Fork 0
mirror of synced 2024-08-08 06:37:55 +12:00

Fix importing

This commit is contained in:
Adria Navarro 2023-10-10 13:37:59 +02:00
parent b966ed221d
commit d3e8e1f4f8
2 changed files with 19 additions and 3 deletions

View file

@ -44,6 +44,6 @@ export function isFormat(format: any): format is Format {
return Object.values(Format).includes(format as Format)
}
export function parseCsvExport(value: string) {
return JSON.parse(value?.replace(/'/g, '"'))
export function parseCsvExport<T>(value: string) {
return JSON.parse(value?.replace(/'/g, '"')) as T
}

View file

@ -153,6 +153,7 @@ export function parse(rows: Rows, schema: Schema): Rows {
}
const columnType = schema[columnName].type
const columnSubtype = schema[columnName].subtype
if (columnType === FieldTypes.NUMBER) {
// If provided must be a valid number
@ -163,7 +164,22 @@ export function parse(rows: Rows, schema: Schema): Rows {
? new Date(columnData).toISOString()
: columnData
} else if (columnType === FieldTypes.BB_REFERENCE) {
parsedRow[columnName] = columnData && parseCsvExport(columnData)
const parsedValues =
!!columnData && parseCsvExport<{ _id: string }[]>(columnData)
if (!parsedValues) {
parsedRow[columnName] = undefined
} else {
switch (columnSubtype) {
case FieldSubtype.USER:
parsedRow[columnName] = parsedValues[0]?._id
break
case FieldSubtype.USERS:
parsedRow[columnName] = parsedValues.map(u => u._id)
break
default:
utils.unreachable(columnSubtype)
}
}
} else {
parsedRow[columnName] = columnData
}