1
1
import {
2
- isArray , unset , set , forEach ,
2
+ isArray , unset , set , forEach , isObjectLike , isEmpty ,
3
3
} from 'lodash' ;
4
4
import { plainToClass } from 'class-transformer' ;
5
5
import { RdiPipeline } from 'src/modules/rdi/models' ;
@@ -21,10 +21,21 @@ export const convertApiDataToRdiJobs = (jobs?: [Record<string, any>]): Record<st
21
21
return jobsMap ;
22
22
} ;
23
23
24
- export const convertApiDataToRdiPipeline = ( data : { config ?: Record < string , any > } = { } ) : RdiPipeline => {
24
+ export const convertApiDataToRdiPipeline = ( data : Record < string , any > = { } ) : RdiPipeline => {
25
+ const entries = data ;
26
+
27
+ // ignore empty root-level entries for pipeline
28
+ forEach ( data , ( entry , key ) => {
29
+ if ( entry && isObjectLike ( entry ) && isEmpty ( entry ) ) {
30
+ entries [ key ] = undefined ;
31
+ }
32
+ } ) ;
33
+
25
34
const pipeline = {
26
- ...data ,
27
- jobs : convertApiDataToRdiJobs ( data . config . jobs ) ,
35
+ config : {
36
+ ...entries ,
37
+ } ,
38
+ jobs : convertApiDataToRdiJobs ( data . jobs ) ,
28
39
} ;
29
40
30
41
// do not show jobs in the config area
@@ -46,12 +57,11 @@ export const convertRdiJobsToApiPayload = (jobs: Record<string, any>): Record<st
46
57
return payload ;
47
58
} ;
48
59
49
- export const convertRdiPipelineToApiPayload = ( pipeline : RdiPipeline ) : { config ?: Record < string , any > } => {
60
+ export const convertRdiPipelineToApiPayload = ( pipeline : RdiPipeline ) : Record < string , any > => {
50
61
const payload = {
51
- ...pipeline ,
52
- jobs : undefined ,
62
+ ...pipeline . config ,
53
63
} ;
54
64
55
- set ( payload , 'config. jobs' , convertRdiJobsToApiPayload ( pipeline . jobs ) ) ;
65
+ set ( payload , 'jobs' , convertRdiJobsToApiPayload ( pipeline . jobs ) ) ;
56
66
return payload ;
57
67
} ;
0 commit comments