45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google LLC All Rights Reserved.
 | |
|  *
 | |
|  * Use of this source code is governed by an MIT-style license that can be
 | |
|  * found in the LICENSE file at https://angular.io/license
 | |
|  */
 | |
| 
 | |
| import {GitClient} from '../../utils/git/index';
 | |
| import {getCaretakerConfig} from '../config';
 | |
| 
 | |
| import {CiModule} from './ci';
 | |
| import {G3Module} from './g3';
 | |
| import {GithubQueriesModule} from './github';
 | |
| import {ServicesModule} from './services';
 | |
| 
 | |
| /** List of modules checked for the caretaker check command. */
 | |
| const moduleList = [
 | |
|   GithubQueriesModule,
 | |
|   ServicesModule,
 | |
|   CiModule,
 | |
|   G3Module,
 | |
| ];
 | |
| 
 | |
| /** Check the status of services which Angular caretakers need to monitor. */
 | |
| export async function checkServiceStatuses(githubToken: string) {
 | |
|   /** The configuration for the caretaker commands. */
 | |
|   const config = getCaretakerConfig();
 | |
|   /** The GitClient for interacting with git and Github. */
 | |
|   const git = new GitClient(githubToken, config);
 | |
|   // Prevent logging of the git commands being executed during the check.
 | |
|   GitClient.LOG_COMMANDS = false;
 | |
|   /** List of instances of Caretaker Check modules */
 | |
|   const caretakerCheckModules = moduleList.map(module => new module(git, config));
 | |
| 
 | |
|   // Module's `data` is casted as Promise<unknown> because the data types of the `module`'s `data`
 | |
|   // promises do not match typings, however our usage here is only to determine when the promise
 | |
|   // resolves.
 | |
|   await Promise.all(caretakerCheckModules.map(module => module.data as Promise<unknown>));
 | |
| 
 | |
|   for (const module of caretakerCheckModules) {
 | |
|     await module.printToTerminal();
 | |
|   }
 | |
| }
 |