gpt4 book ai didi

javascript - 使用 API 调用创建 yeoman 生成器

转载 作者:行者123 更新时间:2023-12-03 06:55:21 24 4
gpt4 key购买 nike

我已经创建了一个运行良好的 Yeoman 生成器,现在我需要用另外两个问题来扩展它。
这个问题我已经有了

async prompting() {
const prompts = [
{
name: "appName",
message: "Project name: ",
type: "input",
default: this.props!.appName,
validate(input: string) {
const appName = validateAppName(input);
return !appName[1] ? appName[0] : true;
},
},
{
type: "list",
name: "tech",
message: "Which tech?”,
default: “cloud”,
choices: [{ name: “cloud”}, { name: “onPrem” }}],
},
},
];
现在我需要添加其他问题,例如您要创建项目的命名空间
{
type: “list”,
name: "namespace",
suggestOnly: false,
message: "which namespace: ",
source: Namespace.searchNS,
when: () => !isEmpty(this.namespace!.namespaceInstances),
validate(val: boolean) {
return val
? true
: "choose a namespace where services are provisioned ";
},
},
并且用户应该选择一个命名空间(这里的技巧是我需要运行一些逻辑,即休息调用以取回命名空间列表),并且对于这个命名空间,我需要添加另一个问题。即对于用户选择的命名空间,我需要提供服务列表。
使用服务列表,类似这样。
{
name: "serviceInstanceName",
type: "rawlist",
message:
"Choose a service instance ",
default: this.props!.namespace,
choices: srvInstanceList,
when: () =>
srvInstanceList !== undefined && !isEmpty(srvInstanceList),
},
我需要做的:
  1. Run an API (rest) call to get the namespace list, show it to the user as list

  1. When the user choose a specific namespace, I need to do an new rest call to get all the services in this namespace
  2. User choose service

我应该将每个问题的逻辑放在哪里并将其传递给下一个问题

最佳答案

我没有任何代码示例来支持答案,但如果我是你,我会:

  1. Run an API (rest) call to get the namespace list, show it to the user as list
  2. When the user choose a specific namespace, I need to do an new rest call to get all the services in this namespace
  3. User choose service

对于命名空间相关的问题,请使用 choices将加载所有命名空间的属性和返回函数。同样,对于服务相关问题,请使用 choices属性和返回函数,它将加载命名空间中的所有服务。
这是关于 choices 的文档:

choices: (Array|Function) Choices array or a function returning a choices array. If defined as a function, the first parameter will be the current inquirer session answers. Array values can be simple numbers, strings, or objects containing a name (to display in list), a value (to save in the answers hash), and a short (to display after selection) properties.


在该函数中,您将获得第一个参数,其中包含用户对先前问题给出的答案。
此外,您可以使用 when属性,以确定是否应该根据以前的答案提出或跳过该问题。
引用: https://github.com/SBoudrias/Inquirer.js/blob/master/README.md

关于javascript - 使用 API 调用创建 yeoman 生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63924172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com