source: trip-planner-front/node_modules/inquirer/lib/objects/choice.js@ 6c1585f

Last change on this file since 6c1585f was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 1.1 KB
Line 
1'use strict';
2const _ = {
3 isString: require('lodash/isString'),
4 isNumber: require('lodash/isNumber'),
5 extend: require('lodash/extend'),
6 isFunction: require('lodash/isFunction'),
7};
8
9/**
10 * Choice object
11 * Normalize input as choice object
12 * @constructor
13 * @param {Number|String|Object} val Choice value. If an object is passed, it should contains
14 * at least one of `value` or `name` property
15 */
16
17module.exports = class Choice {
18 constructor(val, answers) {
19 // Don't process Choice and Separator object
20 if (val instanceof Choice || val.type === 'separator') {
21 // eslint-disable-next-line no-constructor-return
22 return val;
23 }
24
25 if (_.isString(val) || _.isNumber(val)) {
26 this.name = String(val);
27 this.value = val;
28 this.short = String(val);
29 } else {
30 _.extend(this, val, {
31 name: val.name || val.value,
32 value: 'value' in val ? val.value : val.name,
33 short: val.short || val.name || val.value,
34 });
35 }
36
37 if (_.isFunction(val.disabled)) {
38 this.disabled = val.disabled(answers);
39 } else {
40 this.disabled = val.disabled;
41 }
42 }
43};
Note: See TracBrowser for help on using the repository browser.