prompt-base中文文档|prompt-base js中文教程|解析
提示基础
用于创建自定义提示的基本提示模块。
请考虑关注该项目的作者Jon Schlinkert,并考虑为该项目加星以表达您的 ❤️ 和支持。
安装
使用npm安装:
$ npm install --save prompt-base
发布历史
有关详细的发布历史记录,请参阅变更日志。
这是什么?
prompt-base 是一个用于创建命令行提示的 node.js 库。您可以直接将 prompt-base 用于简单的输入提示,或作为创建自定义提示的“基础” :
用法
有关其他用法示例,请参阅示例文件夹。
var Prompt = ;var prompt = name: 'color' message: 'What is your favorite color?'; // promiseprompt // or asyncprompt;
您还可以将字符串直接传递给主导出:
var prompt = 'What is your favorite color?'; prompt
自定义提示
继承
var Prompt = ; { Prompt;} Prompt;
应用程序接口
迅速的
使用给定的question
对象answers
和readline-ui 的可选实例创建一个新的 Prompt 。
参数
question
{Object}:普通对象或prompt-question 的实例。answers
{Object}:可选地从提示管理器(如enquirer)传递答案对象。ui
{Object}:可选择传递readline-ui的实例。如果未通过,则会为您创建一个实例。
例子
var prompt = name: 'color' message: 'What is your favorite color?'; prompt;
。转变
在返回之前修改答案值。必须返回一个字符串或承诺。
returns
{细绳}
例子
var answers = {};var Prompt = ;var prompt = name: 'name' message: 'What is your name?' { return input; };
。证实
验证用户对keypress
事件的输入以及事件提交时的答案值line
(当用户点击 Enter 时。这可能会在自定义提示中被覆盖。如果函数返回false
,则使用question.errorMessage
或默认验证错误消息 ( invalid input
)。必须返回一个布尔值、字符串或承诺。
returns
{布尔}
例子
var Prompt = ;var prompt = name: 'first' message: 'What is your name?' errorMessage: 'alphabetical characters only' { var str = input ? input : ''; var isValid = /^[a-z]+$/i; if thisstate === 'submitted' return strlength > 10 && isValid; return isValid; };
。什么时候
.when
可以定义自定义函数来确定是否应该提出问题。必须返回布尔值、未定义或承诺。
returns
{布尔}
例子
var answers = {};var Prompt = ;var prompt = name: 'name' message: 'What is your name?' { return !answersname; };
。问
使用给定的callback
函数运行提示。
参数
callback
{功能}returns
{不明确的}
例子
var Prompt = ;var prompt = name: 'name' message: 'What is your name?'; prompt;
。跑
运行提示并解决答案。如果定义了when并返回false,则提示将被跳过。
参数
answers
{Object}:(可选)提供时,答案值将添加到键为问题名称的属性中。returns
{承诺}
例子
var answers = {};var Prompt = ;var prompt = name: 'name' message: 'What is your name?'; prompt ;
.getDefault
得到答案使用。这可以在自定义提示中被覆盖。
returns
{细绳}
例子
console;
.getError
获取要使用的错误消息。这可以在自定义提示中被覆盖。
returns
{细绳}
例子
console;
。得到帮助
获取要使用的帮助消息。这可以在自定义提示中被覆盖。
returns
{细绳}
例子
console;
.getAnswer
得到答案使用。这可以在自定义提示中被覆盖。
returns
{细绳}
例子
console;
。使成为
(重新)呈现提示消息以及任何帮助或错误消息、用户输入、选项、列表项等。这被调用以呈现初始提示,然后在每次提示更改时再次调用它,例如在按键事件(当用户输入或选择多项选择选项时)。此方法可能会在自定义提示中被覆盖,但建议您改为覆盖更具体的渲染“状态”方法。
returns
{不明确的}
例子
promptui;
.renderMessage
格式化提示信息。
returns
{细绳}
例子
var answers = {};var Prompt = ;var prompt = name: 'name' message: 'What is your name?' { return input; };
.renderBody
由render调用以line
在prompt.status
除 之外的任何内容时呈现 readline answered
,其中包括除错误和帮助消息之外的所有内容。
returns
{细绳}
.renderFooter
由render调用以在消息正文后添加页脚。
returns
{细绳}
.renderHelp
叫通过渲染来渲染帮助消息时,
prompt.status
为initialized
或help
(通常当所述提示第一渲染)。调用此方法会将 更改
prompt.status
为"interacted"
,因此,默认情况下,该消息仅在用户交互之前显示。默认情况下,帮助消息位于提示“问题”的右侧。可以在 上定义自定义帮助消息options.helpMessage
。
参数
valid
{布尔值|字符串|未定义}returns
{细绳}
.renderError
在提示中呈现错误消息,whenvalid
为 false 或字符串。当验证方法返回 时使用false
,表示输入无效,或者方法返回字符串,表示应呈现自定义错误消息。还可以在 上定义自定义错误消息options.errorMessage
。
参数
valid
{布尔值|字符串|未定义}returns
{细绳}
.renderMask
屏蔽用户输入。由renderBody调用,这是一个默认情况下不执行任何操作的标识函数,因为它旨在在自定义提示中被覆盖,例如prompt-password。
returns
{细绳}
.renderAnswer
呈现用户的“答案”。当更改为时由渲染调用。prompt.status
answered
returns
{细绳}
。行动
获取操作name
,或name
使用给定的设置操作fn
。这对于覆盖自定义提示中的操作很有用。动作用于移动指针位置、切换复选框等
参数
name
{细绳}fn
{功能}returns
{Object|Function}:设置时返回提示实例,获取时返回动作函数。
。派遣
发出事件direction
时将光标移动到给定的keypress
位置。
参数
direction
{细绳}event
{目的}
.onError
默认错误事件处理程序。如果error
存在侦听器,error
则会发出事件,否则会记录错误stderr
并退出进程。这可以在自定义提示中被覆盖。
参数
err
{目的}
.提交答案
重新渲染并将最终答案传递给回调。这可以由自定义提示代替。
。只要
确保事件的事件name
只注册一次,并在指定时正确禁用。这与.once
只发出一次的 不同。
例子
prompt;
。沉默的
将用于创建 readline 接口的输出流静音,并返回一个用于取消静音的函数。这在单元测试中很有用。
returns
{功能}
例子
// mute the streamvar unmute = prompt; // unmute the stream;
。结尾
暂停 readline 并取消静音用于创建 readline 接口的输出流,process.stdout
默认情况下。
。恢复
如果已暂停,则恢复readline 输入流。
returns
{不明确的}
.选择
用于从问题中获取选择数组的吸气剂。
returns
{Object} : 选择对象
。信息
question.message
将其传递给format后返回的 Getter 。
returns
{String}:格式化的提示信息。
。象征
用于获取要使用的复选框符号的 Getter/setter。
returns
{String}:格式化的符号。
例子
// customizepromptsymbol = '[ ]';
。字首
Getter/setter 返回要在 before 使用的前缀question.message
。默认值为绿色?
。
returns
{String}:格式化的前缀。
例子
// customizepromptprefix = ' ❤ ';
。问
用于运行.ask方法的静态便捷方法。采用与构造函数相同的参数。
参数
question
{Object}:普通对象或prompt-question 的实例。answers
{Object}:可选地从提示管理器(如enquirer)传递答案对象。ui
{Object}:可选择传递readline-ui的实例。如果未通过,则会为您创建一个实例。callback
{功能}returns
{不明确的}
例子
var prompt = ; ;
。跑
用于运行.run方法的静态便捷方法。采用与构造函数相同的参数。
参数
question
{Object}:普通对象或prompt-question 的实例。answers
{Object}:可选地从提示管理器(如enquirer)传递答案对象。ui
{Object}:可选择传递readline-ui的实例。如果未通过,则会为您创建一个实例。returns
{承诺}
例子
var prompt = ; ;
。问题
创建一个新的Question
. 有关更多详细信息,请参阅提示问题。
参数
options
{目的}returns
{Object} : 返回一个提示问题的实例
例子
var question = name: 'foo';
.选择
创建一个新Choices
对象。有关更多详细信息,请参阅提示选择。
参数
choices
{Array} : 选择数组returns
{Object}:返回选项的实例。
例子
var choices = 'foo' 'bar' 'baz';
。分隔器
创建一个新Separator
对象。有关更多详细信息,请参阅选择分隔符。
参数
separator
{String}:可选地传递一个字符串以用作分隔符。returns
{Object}:返回一个分隔符对象。
例子
'---';
活动
迅速的
在实例化提示(插件)时发出,在创建 readline 接口之后,但在提出实际“问题”之前。
示例用法
enquirer;
问
当提出实际的“问题”时发出。
示例用法
发出keypress
事件以提供答案(如果答案有效,则可能跳过提示):
enquirer;
更改提示信息:
enquirer;
回答
在提交最终(有效)答案时发出,并且自定义验证函数(如果已定义)返回 true。
(“答案”是在readline
发出line
事件时捕获的最终输入值;例如,当用户点击时enter
)
示例用法
enquirer;
在野外
使用此库创建了以下自定义提示:
- prompt-autocomplete:终端中的提示,但具有自动完成功能 | 主页
- prompt-checkbox:多项选择/复选框提示。可以独立使用,也可以与Enquirer等提示系统一起使用。| 主页
- prompt-confirm:确认(是/否)提示。可以独立使用,也可以与Enquirer等提示系统一起使用。| 主页
- prompt-editor:编辑器提示。打开文本编辑器,并等待您在保存您的输入…更多| 主页
- prompt-expand : 展开提示。可用作独立提示,或与提示系统一起使用,例如……更多| 主页
- prompt-list:列表风格的提示。可用作独立提示,或与提示系统一起使用,例如……更多| 主页
- prompt-password:密码提示。可用作独立提示,或用作Enquirer的插件。| 主页
- prompt-radio:无线电提示。可用作独立提示,或用作Enquirer的插件。| 主页
- prompt-rawlist:Rawlist 提示。可用作独立提示,或与提示系统一起使用,例如……更多| 主页
关于
运行测试
运行和审查单元测试是熟悉库及其 API 的好方法。您可以使用以下命令安装依赖项并运行测试:
$ npm install && npm test
构建文档
(本项目的 readme.md 是由verb生成的,请不要直接编辑 readme。对 readme 的任何更改都必须在.verb.md readme 模板中进行。)
要生成自述文件,请运行以下命令:
$ npm install -g verbose/verb#dev verb-generate-readme && verb
相关项目
您可能还对这些项目感兴趣:
- enquirer:用于 node.js 的直观、基于插件的提示系统。| 主页
- prompt-choices:创建用于提示的多项选择对象数组。| 主页
- prompt-question:问题对象,由查询器和提示插件使用。| 主页
- readline-utils:Readline utils,用于移动光标、清除行、创建 readline 界面等。| 主页
贡献者
提交 | 贡献者 |
---|---|
170 | 琼施林克特 |
6 | 豆豆 |
1 | sbj42 |
作者
乔恩·施林克特
执照
版权所有 © 2017,乔恩·施林克特。在MIT 许可下发布。
此文件由verb-generate-readme v0.6.0 于2017 年10 月20 日生成。