@google/dscc-gen
Version:
Create component & connector projects with sane defaults.
25 lines (23 loc) • 753 B
text/typescript
import * as inquirer from 'inquirer';
import * as analytics from './analytics';
import * as util from './util';
export const prompt = <T>(
questions: inquirer.QuestionCollection<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;
};