prompt-base中文文档|prompt-base js中文教程|解析

npm npmdoc 2年前 (2021-12-24) 463次浏览

prompt-base中文文档|prompt-base js中文教程|解析

安装命令:npm i prompt-base

提示基础 NPM 版本 NPM 每月下载量 NPM 总下载量 Linux 构建状态 Windows 构建状态

用于创建自定义提示的基本提示模块。

请考虑关注该项目的作者Jon Schlinkert,并考虑为该项目加星以表达您的 ❤️ 和支持。

安装

使用npm安装

$ npm install --save prompt-base

发布历史

有关详细的发布历史记录,请参阅变更日志

这是什么?

prompt-base 是一个用于创建命令行提示的 node.js 库。您可以直接将 prompt-base 用于简单的输入提示,或作为创建自定义提示的“基础”

用法

有关其他用法示例,请参阅示例文件夹

var Prompt = require('prompt-base');
var prompt = new Prompt({
  name: 'color',
  message: 'What is your favorite color?'
});
 
// promise
prompt.run()
  .then(function(answer) {
    console.log(answer);
    //=> 'blue'
  })
 
// or async
prompt.ask(function(answer) {
  console.log(answer);
  //=> 'blue'
});

您还可以将字符串直接传递给主导出:

var prompt = require('prompt-base')('What is your favorite color?');
  
prompt.run()
  .then(function(answer) {
    console.log(answer);
  })

自定义提示

继承

var Prompt = require('prompt-base');
 
function CustomPrompt(/*question, answers, rl*/) {
  Prompt.apply(this, arguments);
}
 
Prompt.extend(CustomPrompt);

应用程序接口

迅速的

使用给定的question对象answersreadline-ui 的可选实例创建一个新的 Prompt

参数

  • question {Object}:普通对象或prompt-question 的实例
  • answers {Object}:可选地从提示管理器(如enquirer传递答案对象
  • ui {Object}:可选择传递readline-ui的实例如果未通过,则会为您创建一个实例。

例子

var prompt = new Prompt({
  name: 'color',
  message: 'What is your favorite color?'
});
 
prompt.ask(function(answer) {
  console.log(answer);
  //=> 'blue'
});

。转变

在返回之前修改答案值。必须返回一个字符串或承诺。

  • returns {细绳}

例子

var answers = {};
var Prompt = require('prompt-base');
var prompt = new Prompt({
  name: 'name',
  message: 'What is your name?',
  transform: function(input) {
    return input.toUpperCase();
  }
});

。证实

验证用户对keypress事件的输入以及事件提交时的答案值line(当用户点击 Enter 时。这可能会在自定义提示中被覆盖。如果函数返回false,则使用question.errorMessage或默认验证错误消息 ( invalid input)。必须返回一个布尔值、字符串或承诺。

  • returns {布尔}

例子

var Prompt = require('prompt-base');
var prompt = new Prompt({
  name: 'first',
  message: 'What is your name?',
  errorMessage: 'alphabetical characters only',
  validate: function(input) {
    var str = input ? input.trim() : '';
    var isValid = /^[a-z]+$/i.test(str);
    if (this.state === 'submitted') {
      return str.length > 10 && isValid;
    }
    return isValid;
  }
});

。什么时候

.when可以定义自定义函数来确定是否应该提出问题。必须返回布尔值、未定义或承诺。

  • returns {布尔}

例子

var answers = {};
var Prompt = require('prompt-base');
var prompt = new Prompt({
  name: 'name',
  message: 'What is your name?',
  when: function(answers) {
    return !answers.name;
  }
});

。问

使用给定的callback函数运行提示

参数

  • callback {功能}
  • returns {不明确的}

例子

var Prompt = require('prompt-base');
var prompt = new Prompt({
  name: 'name',
  message: 'What is your name?'
});
 
prompt.ask(function(answer) {
  console.log(answer);
});

。跑

运行提示并解决答案。如果定义了when并返回false,则提示将被跳过。

参数

  • answers {Object}:(可选)提供时,答案值将添加到键为问题名称的属性中。
  • returns {承诺}

例子

var answers = {};
var Prompt = require('prompt-base');
var prompt = new Prompt({
  name: 'name',
  message: 'What is your name?'
});
 
prompt.run(answers)
  .then(function(answer) {
    console.log(answer);
    console.log(answers);
  });

.getDefault

得到答案使用。这可以在自定义提示中被覆盖。

  • returns {细绳}

例子

console.log(prompt.getDefault());

.getError

获取要使用的错误消息。这可以在自定义提示中被覆盖。

  • returns {细绳}

例子

console.log(prompt.getError());

。得到帮助

获取要使用的帮助消息。这可以在自定义提示中被覆盖。

  • returns {细绳}

例子

console.log(prompt.getHelp());

.getAnswer

得到答案使用。这可以在自定义提示中被覆盖。

  • returns {细绳}

例子

console.log(prompt.getAnswer());

。使成为

(重新)呈现提示消息以及任何帮助或错误消息、用户输入、选项、列表项等。这被调用以呈现初始提示,然后在每次提示更改时再次调用它,例如在按键事件(当用户输入或选择多项选择选项时)。此方法可能会在自定义提示中被覆盖,但建议您改为覆盖更具体的渲染“状态”方法。

  • returns {不明确的}

例子

prompt.ui.on('keypress', prompt.render.bind(prompt));

.renderMessage

格式化提示信息。

  • returns {细绳}

例子

var answers = {};
var Prompt = require('prompt-base');
var prompt = new Prompt({
  name: 'name',
  message: 'What is your name?',
  transform: function(input) {
    return input.toUpperCase();
  }
});

.renderBody

render调用以line
prompt.status除 之外的任何内容呈现 readline answered,其中包括除错误和帮助消息之外的所有内容。

  • returns {细绳}

.renderFooter

render调用以在消息正文后添加页脚。

  • returns {细绳}

.renderHelp

叫通过渲染来渲染帮助消息时,
prompt.statusinitializedhelp(通常当所述提示第一渲染)。调用此方法会将 更改
prompt.status"interacted",因此,默认情况下,该消息仅在用户交互之前显示。默认情况下,帮助消息位于提示“问题”的右侧。可以在 上定义自定义帮助消息options.helpMessage

参数

  • valid {布尔值|字符串|未定义}
  • returns {细绳}

.renderError

在提示中呈现错误消息,whenvalid为 false 或字符串。当验证方法返回 时使用false,表示输入无效,或者方法返回字符串,表示应呈现自定义错误消息。还可以在 上定义自定义错误消息options.errorMessage

参数

  • valid {布尔值|字符串|未定义}
  • returns {细绳}

.renderMask

屏蔽用户输入。renderBody调用,这是一个默认情况下不执行任何操作的标识函数,因为它旨在在自定义提示中被覆盖,例如prompt-password

  • returns {细绳}

.renderAnswer

呈现用户的“答案”。更改为渲染调用prompt.statusanswered

  • returns {细绳}

。行动

获取操作name,或name使用给定的设置操作fn这对于覆盖自定义提示中的操作很有用。动作用于移动指针位置、切换复选框等

参数

  • name {细绳}
  • fn {功能}
  • returns {Object|Function}:设置时返回提示实例,获取时返回动作函数。

。派遣


发出事件
direction将光标移动到给定keypress位置。

参数

  • direction {细绳}
  • event {目的}

.onError

默认错误事件处理程序。如果error存在侦听器,error
则会发出事件,否则会记录错误
stderr并退出进程。这可以在自定义提示中被覆盖。

参数

  • err {目的}

.提交答案

重新渲染并将最终答案传递给回调。这可以由自定义提示代替。

。只要

确保事件的事件name注册一次,并在指定时正确禁用。这与.once发出一次的 不同。

例子

prompt.only('keypress', function() {
  // do keypress stuff
});

。沉默的

将用于创建 readline 接口的输出流静音,并返回一个用于取消静音的函数。这在单元测试中很有用。

  • returns {功能}

例子

// mute the stream
var unmute = prompt.mute();
 
// unmute the stream
unmute();

。结尾

暂停 readline 并取消静音用于创建 readline 接口的输出流,process.stdout
默认情况下。

。恢复

如果已暂停,则恢复readline 输入流。

  • returns {不明确的}

.选择

用于从问题中获取选择数组的吸气剂。

  • returns {Object} : 选择对象

。信息

question.message将其传递给format返回的 Getter

  • returns {String}:格式化的提示信息。

。象征

用于获取要使用的复选框符号的 Getter/setter。

  • returns {String}:格式化的符号。

例子

// customize
prompt.symbol = '[ ]';

。字首

Getter/setter 返回要在 before 使用的前缀question.message默认值为绿色?

  • returns {String}:格式化的前缀。

例子

// customize
prompt.prefix = ' ❤ ';

。问

用于运行.ask方法的静态便捷方法。采用与构造函数相同的参数。

参数

  • question {Object}:普通对象或prompt-question 的实例
  • answers {Object}:可选地从提示管理器(如enquirer传递答案对象
  • ui {Object}:可选择传递readline-ui的实例如果未通过,则会为您创建一个实例。
  • callback {功能}
  • returns {不明确的}

例子

var prompt = require('prompt-base');
  .ask('What is your favorite color?', function(answer) {
    console.log({color: answer});
    //=> { color: 'blue' }
  });

。跑

用于运行.run方法的静态便捷方法。采用与构造函数相同的参数。

参数

  • question {Object}:普通对象或prompt-question 的实例
  • answers {Object}:可选地从提示管理器(如enquirer传递答案对象
  • ui {Object}:可选择传递readline-ui的实例如果未通过,则会为您创建一个实例。
  • returns {承诺}

例子

var prompt = require('prompt-base');
  .run('What is your favorite color?')
  .then(function(answer) {
    console.log({color: answer});
    //=> { color: 'blue' }
  });

。问题

创建一个新的Question. 有关更多详细信息,请参阅提示问题

参数

  • options {目的}
  • returns {Object} : 返回一个提示问题的实例

例子

var question = new Prompt.Question({name: 'foo'});

.选择

创建一个新Choices对象。有关更多详细信息,请参阅提示选择

参数

  • choices {Array} : 选择数组
  • returns {Object}:返回选项的实例。

例子

var choices = new Prompt.Choices(['foo', 'bar', 'baz']);

。分隔器

创建一个新Separator对象。有关更多详细信息,请参阅选择分隔符

参数

  • separator {String}:可选地传递一个字符串以用作分隔符。
  • returns {Object}:返回一个分隔符对象。

例子

new Prompt.Separator('---');

活动

迅速的

在实例化提示(插件)时发出,在创建 readline 接口之后,但在提出实际“问题”之前

示例用法

enquirer.on('prompt', function(prompt) {
  // do stuff with "prompt" instance
});

当提出实际的“问题”时发出。

示例用法

发出keypress事件以提供答案(如果答案有效,则可能跳过提示):

enquirer.on('ask', function(prompt) {
  prompt.rl.input.emit('keypress', 'foo');
  prompt.rl.input.emit('keypress', '\n');
});

更改提示信息:

enquirer.on('ask', function(prompt) {
  prompt.message = 'I..\'m Ron Burgundy...?';
});

回答

在提交最终(有效)答案时发出,并且自定义验证函数(如果已定义)返回 true。

(“答案”是在readline发出line事件时捕获的最终输入值;例如,当用户点击时enter

示例用法

enquirer.on('answer', function(answer) {
  // do stuff with answer
});

在野外

使用此库创建了以下自定义提示:

关于

贡献

拉取请求和星星总是受欢迎的。对于错误和功能请求,请创建问题

请阅读贡献指南以获取有关开放问题、拉取请求和编码标准的建议。

运行测试

运行和审查单元测试是熟悉库及其 API 的好方法。您可以使用以下命令安装依赖项并运行测试:

$ npm install && npm test
构建文档

(本项目的 readme.md 是由verb生成的,请不要直接编辑 readme。对 readme 的任何更改都必须在.verb.md readme 模板中进行。)

要生成自述文件,请运行以下命令:

$ npm install -g verbose/verb#dev verb-generate-readme && verb

相关项目

您可能还对这些项目感兴趣:

贡献者

提交 贡献者
170 琼施林克特
6 豆豆
1 sbj42

作者

乔恩·施林克特

执照

版权所有 © 2017,乔恩·施林克特MIT 许可发布


此文件由verb-generate-readme v0.6.0 于2017 年10 月20 日生成。

项目贡献人员列表:


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:prompt-base中文文档|prompt-base js中文教程|解析
喜欢 (0)
.excerpt .focus {display:none}