refactor(docker-run-converter): improved converter
* fix(docker-run-to-docker-compose-converter): use different version of converter which suppports more options and is mor failsafe * chore(docker-run-to-docker-compose-converter): add pnpm-lock.yaml again which was accidently removed in last commit * chore(docker-run-to-docker-compose-converter): add fixed version of composerize-ts
This commit is contained in:
		
							parent
							
								
									fb8a3a0fee
								
							
						
					
					
						commit
						4872d71165
					
				| @ -46,7 +46,7 @@ | |||||||
|     "bcryptjs": "^2.4.3", |     "bcryptjs": "^2.4.3", | ||||||
|     "change-case": "^4.1.2", |     "change-case": "^4.1.2", | ||||||
|     "colord": "^2.9.3", |     "colord": "^2.9.3", | ||||||
|     "composerize": "^1.2.0", |     "composerize-ts": "^0.6.2", | ||||||
|     "cron-validator": "^1.3.1", |     "cron-validator": "^1.3.1", | ||||||
|     "cronstrue": "^2.24.0", |     "cronstrue": "^2.24.0", | ||||||
|     "crypto-js": "^4.1.1", |     "crypto-js": "^4.1.1", | ||||||
|  | |||||||
							
								
								
									
										1169
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1169
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -18,6 +18,30 @@ | |||||||
|     <n-space justify="center"> |     <n-space justify="center"> | ||||||
|       <n-button :disabled="dockerCompose === ''" secondary @click="download"> Download docker-compose.yml </n-button> |       <n-button :disabled="dockerCompose === ''" secondary @click="download"> Download docker-compose.yml </n-button> | ||||||
|     </n-space> |     </n-space> | ||||||
|  | 
 | ||||||
|  |     <div v-if="notComposable.length > 0"> | ||||||
|  |       <br /> | ||||||
|  |       <n-alert title="This options are not translatable to docker-compose" type="info"> | ||||||
|  |         {{ notComposable }} | ||||||
|  |       </n-alert> | ||||||
|  |     </div> | ||||||
|  | 
 | ||||||
|  |     <div v-if="notImplemented.length > 0"> | ||||||
|  |       <br /> | ||||||
|  |       <n-alert | ||||||
|  |         title="This options are not yet implemented and therefore haven't been translated to docker-compose" | ||||||
|  |         type="warning" | ||||||
|  |       > | ||||||
|  |         {{ notImplemented }} | ||||||
|  |       </n-alert> | ||||||
|  |     </div> | ||||||
|  | 
 | ||||||
|  |     <div v-if="errors.length > 0"> | ||||||
|  |       <br /> | ||||||
|  |       <n-alert title="The following errors occured" type="error"> | ||||||
|  |         {{ errors }} | ||||||
|  |       </n-alert> | ||||||
|  |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
| @ -28,12 +52,34 @@ import { useDownloadFileFromBase64 } from '@/composable/downloadBase64'; | |||||||
| import { textToBase64 } from '@/utils/base64'; | import { textToBase64 } from '@/utils/base64'; | ||||||
| import TextareaCopyable from '@/components/TextareaCopyable.vue'; | import TextareaCopyable from '@/components/TextareaCopyable.vue'; | ||||||
| 
 | 
 | ||||||
| import composerize from 'composerize'; | import { composerize, MessageType } from 'composerize-ts'; | ||||||
| 
 | 
 | ||||||
| const dockerRun = ref( | const dockerRun = ref( | ||||||
|   'docker run -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro --restart always --log-opt max-size=1g nginx', |   'docker run -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro --restart always --log-opt max-size=1g nginx', | ||||||
| ); | ); | ||||||
| const dockerCompose = computed(() => withDefaultOnError(() => composerize(dockerRun.value), '')); | 
 | ||||||
|  | const conversionResult = computed(() => | ||||||
|  |   withDefaultOnError(() => composerize(dockerRun.value), { yaml: '', messages: [] }), | ||||||
|  | ); | ||||||
|  | const dockerCompose = computed(() => conversionResult.value.yaml); | ||||||
|  | const notImplemented = computed(() => | ||||||
|  |   conversionResult.value.messages | ||||||
|  |     .filter((msg) => msg.type === MessageType.notImplemented) | ||||||
|  |     .map((msg) => msg.value) | ||||||
|  |     .join('<br>'), | ||||||
|  | ); | ||||||
|  | const notComposable = computed(() => | ||||||
|  |   conversionResult.value.messages | ||||||
|  |     .filter((msg) => msg.type === MessageType.notTranslatable) | ||||||
|  |     .map((msg) => msg.value) | ||||||
|  |     .join('<br>'), | ||||||
|  | ); | ||||||
|  | const errors = computed(() => | ||||||
|  |   conversionResult.value.messages | ||||||
|  |     .filter((msg) => msg.type === MessageType.errorDuringConversion) | ||||||
|  |     .map((msg) => msg.value) | ||||||
|  |     .join('<br>'), | ||||||
|  | ); | ||||||
| const dockerComposeBase64 = computed(() => 'data:application/yaml;base64,' + textToBase64(dockerCompose.value)); | const dockerComposeBase64 = computed(() => 'data:application/yaml;base64,' + textToBase64(dockerCompose.value)); | ||||||
| const { download } = useDownloadFileFromBase64({ source: dockerComposeBase64, filename: 'docker-compose.yml' }); | const { download } = useDownloadFileFromBase64({ source: dockerComposeBase64, filename: 'docker-compose.yml' }); | ||||||
| </script> | </script> | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user