it('should handle numbers', () => { assert.equal(keypress('0', { name: '0' }).name, 'number'); assert.equal(keypress('1', { name: '1' }).name, 'number'); assert.equal(keypress('2', { name: '2' }).name, 'number'); assert.equal(keypress('3', { name: '3' }).name, 'number'); assert.equal(keypress('4', { name: '4' }).name, 'number'); assert.equal(keypress('5', { name: '5' }).name, 'number'); assert.equal(keypress('6', { name: '6' }).name, 'number'); assert.equal(keypress('7', { name: '7' }).name, 'number'); assert.equal(keypress('8', { name: '8' }).name, 'number'); assert.equal(keypress('9', { name: '9' }).name, 'number'); });
/* * Use this function to generate a secret that will * be shared with a client app, like Google Authenticator. * Then replace the SECRET constant in `./config.js` with * the generated secret for this prompt example to run correctly. */ function generateSecret(length = 20) { const randomBuffer = crypto.randomBytes(length); return base32.encode(randomBuffer).replace(/=/g, ''); }
prompt.once('run', () => { int = setInterval(() => { if (time-- === 0) { prompt.state.input = ''; prompt.cancel(); } else { prompt.render(); } }, 1000); });
/** * This examples shows how to "play" an array of keypresses. */ const timeout = (fn, ms = 0) => { return new Promise((resolve, reject) => { setTimeout(() => fn().then(resolve).catch(reject), ms); }); }
prompt.on('run', () => { (function heartbeat(ms) { prompt.state.timeout = setTimeout(() => { i++; prompt.render(); heartbeat(ms); }, ms); })(250); });
constructor(options = {}) { super(options); this.emptyError = options.emptyError || 'No items were selected'; this.term = process.env.TERM_PROGRAM; if (!this.options.header) { let header = ['', '4 - Strongly Agree', '3 - Agree', '2 - Neutral', '1 - Disagree', '0 - Strongly Disagree', '']; header = header.map(ele => this.styles.muted(ele)); this.state.header = header.join('\n '); } }
const onExit = (quit, code) => { if (called) return; called = true; fns.forEach(fn => fn()); if (quit === true) { process.exit(128 + code); } }
highlight(code, lang) { let hljs = require('highlight.js'); if (lang && hljs.getLanguage(lang)) { try { return hljs.highlight(lang, code).value; } catch (err) {} } try { return hljs.highlightAuto(code).value; } catch (err) {} return code; }
prompt({ type: 'input', name: 'color', message: 'Favorite color?' }) .then(answers => { console.info(answers); process.exit(0); });
it('should decorate actions for shift+', () => { assert.equal(act({ name: 'down', shift: true }), 'shiftDown'); assert.equal(act({ name: 'left', shift: true }), 'shiftLeft'); assert.equal(act({ name: 'right', shift: true }), 'shiftRight'); assert.equal(act({ name: 'up', shift: true }), 'shiftUp'); assert.equal(act({ name: 'tab', shift: true }), 'prev'); });
it('should decorate actions for ctrl+', () => { assert.equal(act({ name: 'c', ctrl: true }), 'cancel'); assert.equal(act({ name: 'a', ctrl: true }), 'first'); assert.equal(act({ name: 'c', ctrl: true }), 'cancel'); assert.equal(act({ name: 'd', ctrl: true }), 'deleteForward'); assert.equal(act({ name: 'e', ctrl: true }), 'last'); assert.equal(act({ name: 'g', ctrl: true }), 'reset'); assert.equal(act({ name: 'r', ctrl: true }), 'remove'); assert.equal(act({ name: 's', ctrl: true }), 'save'); assert.equal(act({ name: 'u', ctrl: true }), 'undo'); });
const timeout = (fn, ms = 0) => { return new Promise((resolve, reject) => { setTimeout(() => fn().then(resolve).catch(reject), ms); }); }
it('should handle shift+number', () => { assert.equal(keypress('!', { name: '!', shift: true }).name, '!'); assert.equal(keypress('@', { name: '@', shift: true }).name, '@'); assert.equal(keypress('#', { name: '#', shift: true }).name, '#'); assert.equal(keypress('$', { name: '$', shift: true }).name, '$'); assert.equal(keypress('%', { name: '%', shift: true }).name, '%'); assert.equal(keypress('^', { name: '^', shift: true }).name, '^'); assert.equal(keypress('&', { name: '&', shift: true }).name, '&'); assert.equal(keypress('*', { name: '*', shift: true }).name, '*'); assert.equal(keypress('(', { name: '(', shift: true }).name, '('); assert.equal(keypress(')', { name: ')', shift: true }).name, ')'); });