| 
									
										
										
										
											2021-12-23 18:10:05 +00:00
										 |  |  | import { Input } from '../..'; | 
					
						
							|  |  |  | import ImageEnvironmentFactory from '../../image-environment-factory'; | 
					
						
							| 
									
										
										
										
											2021-12-29 23:42:06 +00:00
										 |  |  | import CloudRunnerEnvironmentVariable from './cloud-runner-environment-variable'; | 
					
						
							|  |  |  | import { CloudRunnerState } from '../state/cloud-runner-state'; | 
					
						
							| 
									
										
										
										
											2021-12-23 18:10:05 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | export class TaskParameterSerializer { | 
					
						
							|  |  |  |   public static readBuildEnvironmentVariables(): CloudRunnerEnvironmentVariable[] { | 
					
						
							| 
									
										
										
										
											2021-12-30 17:49:16 +00:00
										 |  |  |     TaskParameterSerializer.setupDefaultSecrets(); | 
					
						
							| 
									
										
										
										
											2021-12-30 21:19:01 +00:00
										 |  |  |     return [ | 
					
						
							| 
									
										
										
										
											2021-12-23 18:10:05 +00:00
										 |  |  |       { | 
					
						
							|  |  |  |         name: 'ContainerMemory', | 
					
						
							|  |  |  |         value: CloudRunnerState.buildParams.cloudRunnerMemory, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         name: 'ContainerCpu', | 
					
						
							|  |  |  |         value: CloudRunnerState.buildParams.cloudRunnerCpu, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         name: 'BUILD_TARGET', | 
					
						
							|  |  |  |         value: CloudRunnerState.buildParams.platform, | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |       ...TaskParameterSerializer.serializeBuildParamsAndInput, | 
					
						
							|  |  |  |     ]; | 
					
						
							| 
									
										
										
										
											2021-12-30 21:19:01 +00:00
										 |  |  |   } | 
					
						
							|  |  |  |   private static get serializeBuildParamsAndInput() { | 
					
						
							|  |  |  |     let array = new Array(); | 
					
						
							|  |  |  |     array = TaskParameterSerializer.readBuildParameters(array); | 
					
						
							|  |  |  |     array = TaskParameterSerializer.readInput(array); | 
					
						
							| 
									
										
										
										
											2021-12-30 20:41:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-30 17:49:16 +00:00
										 |  |  |     array = array.filter((x) => x.value !== undefined && x.name !== '0' && x.value !== ''); | 
					
						
							| 
									
										
										
										
											2021-12-30 18:20:05 +00:00
										 |  |  |     array = array.map((x) => { | 
					
						
							| 
									
										
										
										
											2021-12-30 18:57:53 +00:00
										 |  |  |       x.name = Input.ToEnvVarFormat(x.name); | 
					
						
							| 
									
										
										
										
											2021-12-30 21:00:38 +00:00
										 |  |  |       x.value = `${x.value}`; | 
					
						
							| 
									
										
										
										
											2021-12-30 18:20:05 +00:00
										 |  |  |       return x; | 
					
						
							|  |  |  |     }); | 
					
						
							| 
									
										
										
										
											2021-12-29 18:25:09 +00:00
										 |  |  |     return array; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   private static readBuildParameters(array: any[]) { | 
					
						
							| 
									
										
										
										
											2021-12-23 18:10:05 +00:00
										 |  |  |     const keys = Object.keys(CloudRunnerState.buildParams); | 
					
						
							|  |  |  |     for (const element of keys) { | 
					
						
							| 
									
										
										
										
											2021-12-30 21:30:38 +00:00
										 |  |  |       array.push({ | 
					
						
							|  |  |  |         name: element, | 
					
						
							|  |  |  |         value: CloudRunnerState.buildParams[element], | 
					
						
							|  |  |  |       }); | 
					
						
							| 
									
										
										
										
											2021-12-23 18:10:05 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-12-30 22:31:04 +00:00
										 |  |  |     array.push({ name: 'buildParameters', value: JSON.stringify(CloudRunnerState.buildParams) }); | 
					
						
							| 
									
										
										
										
											2021-12-29 18:25:09 +00:00
										 |  |  |     return array; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   private static readInput(array: any[]) { | 
					
						
							| 
									
										
										
										
											2021-12-23 18:10:05 +00:00
										 |  |  |     const input = Object.getOwnPropertyNames(Input); | 
					
						
							|  |  |  |     for (const element of input) { | 
					
						
							| 
									
										
										
										
											2021-12-30 21:30:38 +00:00
										 |  |  |       if (typeof Input[element] !== 'function' && array.filter((x) => x.name === element).length === 0) { | 
					
						
							|  |  |  |         array.push({ | 
					
						
							|  |  |  |           name: element, | 
					
						
							|  |  |  |           value: `${Input[element]}`, | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2021-12-23 18:36:30 +00:00
										 |  |  |       } | 
					
						
							| 
									
										
										
										
											2021-12-23 18:10:05 +00:00
										 |  |  |     } | 
					
						
							|  |  |  |     return array; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-30 17:49:16 +00:00
										 |  |  |   private static setupDefaultSecrets() { | 
					
						
							|  |  |  |     if (CloudRunnerState.defaultSecrets === undefined) | 
					
						
							|  |  |  |       CloudRunnerState.defaultSecrets = ImageEnvironmentFactory.getEnvironmentVariables( | 
					
						
							|  |  |  |         CloudRunnerState.buildParams, | 
					
						
							|  |  |  |       ).map((x) => { | 
					
						
							| 
									
										
										
										
											2021-12-23 18:10:05 +00:00
										 |  |  |         return { | 
					
						
							|  |  |  |           ParameterKey: x.name, | 
					
						
							|  |  |  |           EnvironmentVariable: x.name, | 
					
						
							|  |  |  |           ParameterValue: x.value, | 
					
						
							|  |  |  |         }; | 
					
						
							| 
									
										
										
										
											2021-12-30 17:49:16 +00:00
										 |  |  |       }); | 
					
						
							| 
									
										
										
										
											2021-12-23 18:10:05 +00:00
										 |  |  |   } | 
					
						
							|  |  |  | } |