mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-14 11:50:31 +00:00
35 lines
733 B
TypeScript
35 lines
733 B
TypeScript
import { get } from 'lodash';
|
|
import { IColumnMapperMeta, ITableRow } from '@/interfaces';
|
|
|
|
export function tableMapper(
|
|
data: Object[],
|
|
columns: IColumnMapperMeta[],
|
|
rowsMeta
|
|
): ITableRow[] {
|
|
return data.map((object) => tableRowMapper(object, columns, rowsMeta));
|
|
}
|
|
|
|
function getAccessor(object, accessor) {
|
|
return typeof accessor === 'function'
|
|
? accessor(object)
|
|
: get(object, accessor);
|
|
}
|
|
|
|
export function tableRowMapper(
|
|
object: Object,
|
|
columns: IColumnMapperMeta[],
|
|
rowMeta
|
|
): ITableRow {
|
|
const cells = columns.map((column) => ({
|
|
key: column.key,
|
|
value: column.value
|
|
? column.value
|
|
: getAccessor(object, column.accessor) || '',
|
|
}));
|
|
|
|
return {
|
|
cells,
|
|
...rowMeta,
|
|
};
|
|
}
|