35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | /** | ||
|  |  * @license | ||
|  |  * Copyright Google Inc. 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
 | ||
|  |  */ | ||
|  | 
 | ||
|  | type Inquirer = typeof import('inquirer'); | ||
|  | 
 | ||
|  | let resolvedInquirerModule: Inquirer|null; | ||
|  | 
 | ||
|  | try { | ||
|  |   // "inquirer" is the prompt module also used by the devkit schematics CLI
 | ||
|  |   // in order to show prompts for schematics. We transitively depend on this
 | ||
|  |   // module, but don't want to throw an exception if the module is not
 | ||
|  |   // installed for some reason. In that case prompts are just not supported.
 | ||
|  |   resolvedInquirerModule = require('inquirer'); | ||
|  | } catch (e) { | ||
|  |   resolvedInquirerModule = null; | ||
|  | } | ||
|  | 
 | ||
|  | /** Whether prompts are currently supported. */ | ||
|  | export function supportsPrompt(): boolean { | ||
|  |   return !!resolvedInquirerModule && !!process.stdin.isTTY; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Gets the resolved instance of "inquirer" which can be used to programmatically | ||
|  |  * create prompts. | ||
|  |  */ | ||
|  | export function getInquirer(): Inquirer { | ||
|  |   return resolvedInquirerModule !; | ||
|  | } |