mirror of
				https://github.com/arduino/arduino-ide.git
				synced 2025-10-31 14:08:32 +00:00 
			
		
		
		
	Use eslint&prettier for code linting&formatting
This commit is contained in:
		 Francesco Stasi
					Francesco Stasi
				
			
				
					committed by
					
						 Francesco Stasi
						Francesco Stasi
					
				
			
			
				
	
			
			
			 Francesco Stasi
						Francesco Stasi
					
				
			
						parent
						
							2a3873a923
						
					
				
				
					commit
					0592199858
				
			| @@ -1,7 +1,11 @@ | ||||
| import { injectable, inject } from 'inversify'; | ||||
| import { MessageService } from '@theia/core/lib/common/message-service'; | ||||
| import { FrontendApplicationContribution } from '@theia/core/lib/browser/frontend-application'; | ||||
| import { BoardsService, BoardsPackage, Board } from '../../common/protocol/boards-service'; | ||||
| import { | ||||
|     BoardsService, | ||||
|     BoardsPackage, | ||||
|     Board, | ||||
| } from '../../common/protocol/boards-service'; | ||||
| import { BoardsServiceProvider } from './boards-service-provider'; | ||||
| import { BoardsListWidgetFrontendContribution } from './boards-widget-frontend-contribution'; | ||||
| import { BoardsConfig } from './boards-config'; | ||||
| @@ -14,7 +18,6 @@ import { ResponseServiceImpl } from '../response-service-impl'; | ||||
|  */ | ||||
| @injectable() | ||||
| export class BoardsAutoInstaller implements FrontendApplicationContribution { | ||||
|  | ||||
|     @inject(MessageService) | ||||
|     protected readonly messageService: MessageService; | ||||
|  | ||||
| @@ -34,57 +37,92 @@ export class BoardsAutoInstaller implements FrontendApplicationContribution { | ||||
|     protected notifications: Board[] = []; | ||||
|  | ||||
|     onStart(): void { | ||||
|         this.boardsServiceClient.onBoardsConfigChanged(this.ensureCoreExists.bind(this)); | ||||
|         this.boardsServiceClient.onBoardsConfigChanged( | ||||
|             this.ensureCoreExists.bind(this) | ||||
|         ); | ||||
|         this.ensureCoreExists(this.boardsServiceClient.boardsConfig); | ||||
|     } | ||||
|  | ||||
|     protected ensureCoreExists(config: BoardsConfig.Config): void { | ||||
|         const { selectedBoard } = config; | ||||
|         if (selectedBoard && !this.notifications.find(board => Board.sameAs(board, selectedBoard))) { | ||||
|         if ( | ||||
|             selectedBoard && | ||||
|             !this.notifications.find((board) => | ||||
|                 Board.sameAs(board, selectedBoard) | ||||
|             ) | ||||
|         ) { | ||||
|             this.notifications.push(selectedBoard); | ||||
|             this.boardsService.search({}).then(packages => { | ||||
|  | ||||
|             this.boardsService.search({}).then((packages) => { | ||||
|                 // filter packagesForBoard selecting matches from the cli (installed packages) | ||||
|                 // and matches based on the board name | ||||
|                 // NOTE: this ensures the Deprecated & new packages are all in the array | ||||
|                 // so that we can check if any of the valid packages is already installed | ||||
|                 const packagesForBoard = packages.filter(pkg => BoardsPackage.contains(selectedBoard, pkg) || pkg.boards.some(board => board.name === selectedBoard.name)); | ||||
|                 const packagesForBoard = packages.filter( | ||||
|                     (pkg) => | ||||
|                         BoardsPackage.contains(selectedBoard, pkg) || | ||||
|                         pkg.boards.some( | ||||
|                             (board) => board.name === selectedBoard.name | ||||
|                         ) | ||||
|                 ); | ||||
|  | ||||
|                 // check if one of the packages for the board is already installed. if so, no hint | ||||
|                 if (packagesForBoard.some(({ installedVersion }) => !!installedVersion)) { return; } | ||||
|                 if ( | ||||
|                     packagesForBoard.some( | ||||
|                         ({ installedVersion }) => !!installedVersion | ||||
|                     ) | ||||
|                 ) { | ||||
|                     return; | ||||
|                 } | ||||
|  | ||||
|                 // filter the installable (not installed) packages, | ||||
|                 // CLI returns the packages already sorted with the deprecated ones at the end of the list | ||||
|                 // in order to ensure the new ones are preferred | ||||
|                 const candidates = packagesForBoard | ||||
|                     .filter(({ installable, installedVersion }) => installable && !installedVersion); | ||||
|                 const candidates = packagesForBoard.filter( | ||||
|                     ({ installable, installedVersion }) => | ||||
|                         installable && !installedVersion | ||||
|                 ); | ||||
|  | ||||
|                 const candidate = candidates[0]; | ||||
|                 if (candidate) { | ||||
|                     const version = candidate.availableVersions[0] ? `[v ${candidate.availableVersions[0]}]` : ''; | ||||
|                     const version = candidate.availableVersions[0] | ||||
|                         ? `[v ${candidate.availableVersions[0]}]` | ||||
|                         : ''; | ||||
|                     // tslint:disable-next-line:max-line-length | ||||
|                     this.messageService.info(`The \`"${candidate.name} ${version}"\` core has to be installed for the currently selected \`"${selectedBoard.name}"\` board. Do you want to install it now?`, 'Install Manually', 'Yes').then(async answer => { | ||||
|                         const index = this.notifications.findIndex(board => Board.sameAs(board, selectedBoard)); | ||||
|                         if (index !== -1) { | ||||
|                             this.notifications.splice(index, 1); | ||||
|                         } | ||||
|                         if (answer === 'Yes') { | ||||
|                             await Installable.installWithProgress({ | ||||
|                                 installable: this.boardsService, | ||||
|                                 item: candidate, | ||||
|                                 messageService: this.messageService, | ||||
|                                 responseService: this.responseService, | ||||
|                                 version: candidate.availableVersions[0] | ||||
|                             }); | ||||
|                             return | ||||
|                         } | ||||
|                         if (answer) { | ||||
|                             this.boardsManagerFrontendContribution.openView({ reveal: true }).then(widget => widget.refresh(candidate.name.toLocaleLowerCase())); | ||||
|                         } | ||||
|                     }); | ||||
|                     this.messageService | ||||
|                         .info( | ||||
|                             `The \`"${candidate.name} ${version}"\` core has to be installed for the currently selected \`"${selectedBoard.name}"\` board. Do you want to install it now?`, | ||||
|                             'Install Manually', | ||||
|                             'Yes' | ||||
|                         ) | ||||
|                         .then(async (answer) => { | ||||
|                             const index = this.notifications.findIndex( | ||||
|                                 (board) => Board.sameAs(board, selectedBoard) | ||||
|                             ); | ||||
|                             if (index !== -1) { | ||||
|                                 this.notifications.splice(index, 1); | ||||
|                             } | ||||
|                             if (answer === 'Yes') { | ||||
|                                 await Installable.installWithProgress({ | ||||
|                                     installable: this.boardsService, | ||||
|                                     item: candidate, | ||||
|                                     messageService: this.messageService, | ||||
|                                     responseService: this.responseService, | ||||
|                                     version: candidate.availableVersions[0], | ||||
|                                 }); | ||||
|                                 return; | ||||
|                             } | ||||
|                             if (answer) { | ||||
|                                 this.boardsManagerFrontendContribution | ||||
|                                     .openView({ reveal: true }) | ||||
|                                     .then((widget) => | ||||
|                                         widget.refresh( | ||||
|                                             candidate.name.toLocaleLowerCase() | ||||
|                                         ) | ||||
|                                     ); | ||||
|                             } | ||||
|                         }); | ||||
|                 } | ||||
|             }) | ||||
|             }); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user