@google/dscc-gen
Version:
Create component & connector projects with sane defaults.
24 lines (22 loc) • 775 B
text/typescript
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;
};