prompt-question
Advanced tools
Comparing version 4.0.3 to 5.0.0
68
index.js
@@ -59,6 +59,2 @@ 'use strict'; | ||
}); | ||
if (!utils.isString(this.name)) { | ||
throw new TypeError('expected name to be a non-empty string'); | ||
} | ||
} | ||
@@ -219,7 +215,38 @@ | ||
/** | ||
* Getter that returns the list of choices for the | ||
* current question, if applicable. | ||
* Getter/setter for the checkbox symbols to use. | ||
* | ||
* ```js | ||
* var question = new Question({ | ||
* name: 'foo', | ||
* checkbox: {off: '[ ]', on: '[x]', disabled: 'X'} | ||
* }); | ||
* // or | ||
* question.checkbox = {off: '[ ]', on: '[x]', disabled: 'X'}; | ||
* ``` | ||
* @name .checkbox | ||
* @return {Object} Checkbox object with `.on`, `.off` and `.disabled` properties. | ||
* @api public | ||
*/ | ||
Object.defineProperty(Question.prototype, 'checkbox', { | ||
set: function(checkbox) { | ||
if (isObject(checkbox)) { | ||
throw new TypeError('expected checkbox symbols to be an object'); | ||
} | ||
this.choices.checkbox = checkbox; | ||
}, | ||
get: function() { | ||
return this.choices.checkbox; | ||
} | ||
}); | ||
/** | ||
* Getter/setter for getting and setting choices (if applicable). | ||
* | ||
* ```js | ||
* var question = new Question(); | ||
* question.choices = ['a', 'b', 'c']; | ||
* ``` | ||
* @name .choices | ||
* @return {Array} | ||
* @return {Object} Returns an instance of [prompt-choices] | ||
* @api public | ||
@@ -232,8 +259,14 @@ */ | ||
set: function(choices) { | ||
define(this, '_choices', new Choices(choices, this)); | ||
define(this, '_choices', choices); | ||
}, | ||
get: function() { | ||
if (typeof this._choices === 'function') { | ||
this._choices = this._choices.call(this); | ||
} | ||
if (this._choices == null) { | ||
define(this, '_choices', new Choices(this.options.choices, this)); | ||
define(this, '_choices', this.options.choices); | ||
} | ||
if (!(this._choices instanceof Choices)) { | ||
this._choices = new Choices(this._choices, this); | ||
} | ||
return this._choices; | ||
@@ -244,4 +277,11 @@ } | ||
/** | ||
* Returns true if `question` is a valid question object. | ||
* Static method that returns true if `question` is a valid question object. | ||
* | ||
* ```js | ||
* console.log(Question.isQuestion('foo')); | ||
* //=> false | ||
* console.log(Question.isQuestion(new Question('What is your name?'))); | ||
* //=> true | ||
* ``` | ||
* @name Question.isQuestion | ||
* @param {Object} `question` | ||
@@ -257,3 +297,3 @@ * @return {Boolean} | ||
/** | ||
* Create a new `Choices` object. See [prompt-choices][] | ||
* Static method for creating a new `Choices` object. See [prompt-choices][] | ||
* for more details. | ||
@@ -264,2 +304,3 @@ * | ||
* ``` | ||
* @name Question.choices | ||
* @param {Array} `choices` Array of choices | ||
@@ -273,4 +314,4 @@ * @return {Object} Returns an intance of Choices. | ||
/** | ||
* Create a new `Separator` object. See [choices-separator][] | ||
* for more details. | ||
* Static method for creating a new `Separator` object. | ||
* See [choices-separator][] for more details. | ||
* | ||
@@ -280,2 +321,3 @@ * ```js | ||
* ``` | ||
* @name Question.Separator | ||
* @param {String} `separator` Optionally pass a string to use as the separator. | ||
@@ -282,0 +324,0 @@ * @return {Object} Returns a separator object. |
{ | ||
"name": "prompt-question", | ||
"description": "Question object, used by Enquirer and prompt plugins.", | ||
"version": "4.0.3", | ||
"version": "5.0.0", | ||
"homepage": "https://github.com/enquirer/prompt-question", | ||
@@ -6,0 +6,0 @@ "author": "Jon Schlinkert (https://github.com/jonschlinkert)", |
216
README.md
@@ -34,4 +34,218 @@ # prompt-question [![NPM version](https://img.shields.io/npm/v/prompt-question.svg?style=flat)](https://www.npmjs.com/package/prompt-question) [![NPM monthly downloads](https://img.shields.io/npm/dm/prompt-question.svg?style=flat)](https://npmjs.org/package/prompt-question) [![NPM total downloads](https://img.shields.io/npm/dt/prompt-question.svg?style=flat)](https://npmjs.org/package/prompt-question) [![Linux Build Status](https://img.shields.io/travis/enquirer/prompt-question.svg?style=flat&label=Travis)](https://travis-ci.org/enquirer/prompt-question) | ||
## API | ||
### [Question](index.js#L29) | ||
Create a new question with the given `name`, `message` and `options`. | ||
**Params** | ||
* `name` **{String|Object}**: Question name or options. | ||
* `message` **{String|Object}**: Question message or options. | ||
* `options` **{String|Object}**: Question options. | ||
**Example** | ||
```js | ||
var question = new Question('first', 'What is your first name?'); | ||
console.log(question); | ||
// { | ||
// type: 'input', | ||
// name: 'color', | ||
// message: 'What is your favorite color?' | ||
// } | ||
``` | ||
### [.clone](index.js#L71) | ||
Clone the question instance. | ||
* `returns` **{Object}**: Returns the cloned question | ||
**Example** | ||
```js | ||
var clonedQuestion = question.clone(); | ||
``` | ||
### [.addChoices](index.js#L95) | ||
Add formatted choice objects to the `question.choices` array. See [prompt-choices](https://github.com/enquirer/prompt-choices) for more details. | ||
**Params** | ||
* `choices` **{String|Array}**: One or more choices to add. | ||
* `returns` **{Object}**: Returns the question instance for chaining | ||
**Example** | ||
```js | ||
question.addChoices(['foo', 'bar', 'baz']); | ||
``` | ||
### [.addChoice](index.js#L112) | ||
Add a choice to `question.choices` array. See [prompt-choices](https://github.com/enquirer/prompt-choices) for more details. | ||
**Params** | ||
* `choice` **{String|Object}** | ||
* `returns` **{Object}**: Returns the question instance for chaining | ||
**Example** | ||
```js | ||
question.addChoice('foo'); | ||
``` | ||
### [.getDefault](index.js#L142) | ||
Returns the given `val` or `question.default` if `val` is undefined or null. | ||
**Params** | ||
* `val` **{any}** | ||
* `returns` **{any}** | ||
**Example** | ||
```js | ||
var question = new Question({ | ||
name: 'first', | ||
message: 'First name'?, | ||
default: 'Bob' | ||
}); | ||
console.log(question.getAnswer()); | ||
//=> 'Bob' | ||
console.log(question.getAnswer('Joe')); | ||
//=> 'Joe' | ||
console.log(question.getAnswer(false)); | ||
//=> false | ||
console.log(question.getAnswer(0)); | ||
//=> 0 | ||
``` | ||
### [.getChoice](index.js#L186) | ||
Get the given choice from `questions.choices`. | ||
**Params** | ||
* `val` **{any}** | ||
* `returns` **{any}** | ||
**Example** | ||
```js | ||
var Question = require('prompt-question'); | ||
var question = new Question('color', 'What is your favorite color?', { | ||
choices: ['red', 'blue', 'yellow'] | ||
}); | ||
console.log(question.getChoice('red')); | ||
//=> Choice { name: 'red', short: 'red', value: 'red', checked: false } | ||
``` | ||
### [.separator](index.js#L195) | ||
Create a separator using [choices-separator](https://github.com/enquirer/choices-separator). | ||
### [.hasDefault](index.js#L207) | ||
Getter that returns true if a `default` value has been defined. | ||
* `returns` **{Boolean}**: True if a default value is defined. | ||
### [.checkbox](index.js#L229) | ||
Getter/setter for the checkbox symbols to use. | ||
* `returns` **{Object}**: Checkbox object with `.on`, `.off` and `.disabled` properties. | ||
**Example** | ||
```js | ||
var question = new Question({ | ||
name: 'foo', | ||
checkbox: {off: '[ ]', on: '[x]', disabled: 'X'} | ||
}); | ||
// or | ||
question.checkbox = {off: '[ ]', on: '[x]', disabled: 'X'}; | ||
``` | ||
### [.choices](index.js#L253) | ||
Getter/setter for getting and setting choices (if applicable). | ||
* `returns` **{Object}**: Returns an instance of [prompt-choices](https://github.com/enquirer/prompt-choices) | ||
**Example** | ||
```js | ||
var question = new Question(); | ||
question.choices = ['a', 'b', 'c']; | ||
``` | ||
### [.Question.isQuestion](index.js#L288) | ||
Static method that returns true if `question` is a valid question object. | ||
**Params** | ||
* `question` **{Object}** | ||
* `returns` **{Boolean}** | ||
**Example** | ||
```js | ||
console.log(Question.isQuestion('foo')); | ||
//=> false | ||
console.log(Question.isQuestion(new Question('What is your name?'))); | ||
//=> true | ||
``` | ||
### [.Question.choices](index.js#L305) | ||
Static method for creating a new `Choices` object. See [prompt-choices](https://github.com/enquirer/prompt-choices) for more details. | ||
**Params** | ||
* `choices` **{Array}**: Array of choices | ||
* `returns` **{Object}**: Returns an intance of Choices. | ||
**Example** | ||
```js | ||
var choices = new Question.Choices(['foo', 'bar', 'baz']); | ||
``` | ||
### [.Question.Separator](index.js#L320) | ||
Static method for creating a new `Separator` object. See [choices-separator](https://github.com/enquirer/choices-separator) for more details. | ||
**Params** | ||
* `separator` **{String}**: Optionally pass a string to use as the separator. | ||
* `returns` **{Object}**: Returns a separator object. | ||
**Example** | ||
```js | ||
new Question.Separator(); | ||
``` | ||
## Release history | ||
### v5.0.0 | ||
* Support `.choices` as a function | ||
### v4.0.0 | ||
* bumps [prompt-choices](https://github.com/enquirer/prompt-choices) | ||
### v3.0.0 | ||
* bumps [prompt-choices](https://github.com/enquirer/prompt-choices) | ||
### v2.0.0 | ||
@@ -88,2 +302,2 @@ | ||
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 04, 2017._ | ||
_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on July 08, 2017._ |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
20462
349
301