Spaces:
Build error
Build error
File size: 802 Bytes
d9494a5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import { hasRecordFieldValue } from 'src/engine/api/graphql/graphql-query-runner/utils/has-record-field-value.util';
type RecordWithValue<T> = { value: T; recordId: string };
export const mergeArrayFieldValues = <T>(
recordsWithValues: RecordWithValue<T>[],
): T[] | null => {
const allValues: T[] = [];
recordsWithValues.forEach((record) => {
if (record.value === null || record.value === undefined) {
return;
}
if (!Array.isArray(record.value)) {
throw new Error(
`Expected array value but received ${typeof record.value}`,
);
}
allValues.push(
...record.value.filter((value) => hasRecordFieldValue(value)),
);
});
const uniqueValues = Array.from(new Set(allValues));
return uniqueValues.length > 0 ? uniqueValues : null;
};
|