UNPKG

@google/dscc-gen

Version:

Create component & connector projects with sane defaults.

24 lines (22 loc) 775 B
import * as analytics from './analytics'; import * as inquirer from 'inquirer'; import {setTimeout} from 'timers'; import * as util from './util'; export const prompt = <T>(questions: inquirer.Questions<T>): Promise<T> => { const promptPromise: Promise<T> = inquirer.prompt(questions); // This is a hackey workaround until https://github.com/SBoudrias/Inquirer.js/issues/293 is fixed. const ui = (promptPromise as any).ui; const rl = ui.rl; // remove the original onForceClose listener. rl.removeListener('SIGINT', ui.onForceClose); rl.on('SIGINT', () => { analytics.trackEvent( analytics.Category.EXECUTION, analytics.Action.SIGINT_STOP ); util.pause(200).then(() => { ui.onForceClose(); }); }); return promptPromise; };