1
+ import { jsonCopy } from "./general" ;
2
+
3
+ export function postProcessRecord ( record : any , attributes : any [ ] ) {
4
+ const prepareRecord = jsonCopy ( record ) ;
5
+ if ( ! prepareRecord . hasOwnProperty ( 'data' ) ) {
6
+ if ( prepareRecord . hasOwnProperty ( 'fullRecordData' ) ) {
7
+ prepareRecord . data = prepareRecord . fullRecordData ;
8
+ }
9
+ else if ( prepareRecord . hasOwnProperty ( 'recordData' ) ) {
10
+ prepareRecord . data = prepareRecord . recordData ;
11
+ } else {
12
+ throw new Error ( "Cant find record data in record object" ) ;
13
+ }
14
+ }
15
+ attributes . forEach ( ( attribute , index ) => {
16
+ if ( typeof prepareRecord . data [ attribute . name ] === 'boolean' ) {
17
+ prepareRecord . data [ attribute . name ] = prepareRecord . data [ attribute . name ] . toString ( ) ;
18
+ }
19
+ } ) ;
20
+ return prepareRecord ;
21
+ }
22
+
23
+ export function postProcessAttributes ( attributes : any [ ] ) {
24
+ const prepareAttributes = jsonCopy ( attributes ) ;
25
+ if ( attributes && attributes . length > 0 ) {
26
+ if ( ! attributes [ 0 ] . hasOwnProperty ( 'key' ) ) {
27
+ prepareAttributes . forEach ( ( attribute , index ) => {
28
+ if ( attribute . id !== null ) {
29
+ attribute . key = attribute . id ;
30
+ } else {
31
+ throw new Error ( "Cant find attribute id in attribute object" ) ;
32
+ }
33
+ } ) ;
34
+ }
35
+ }
36
+ return prepareAttributes ;
37
+ }
38
+
39
+ export function postProcessUpdateAndSortRecords ( prev : any [ ] , newRecords : any [ ] ) {
40
+ const merged = [ ...prev , ...newRecords ] ;
41
+ const uniqueRecords = Array . from (
42
+ new Map ( merged . map ( ( item ) => [ item . data ?. running_id , item ] ) ) . values ( )
43
+ ) ;
44
+ uniqueRecords . sort (
45
+ ( a , b ) => ( a . data ?. running_id || 0 ) - ( b . data ?. running_id || 0 )
46
+ ) ;
47
+ return uniqueRecords ;
48
+ }
0 commit comments