async function serviceQuestions()

in provider-utils/awscloudformation/service-walkthroughs/ivs-push.js [9:86]


async function serviceQuestions(context, options, defaultValuesFilename, resourceName) {
  const { amplify } = context;
  const projectMeta = context.amplify.getProjectMeta();
  // const projectDetails = context.amplify.getProjectDetails();
  // const defaultLocation =
  // path.resolve(`${__dirname}/../default-values/${defaultValuesFilename}`);
  // const defaults = JSON.parse(fs.readFileSync(`${defaultLocation}`));
  // const targetDir = amplify.pathManager.getBackendDirPath();
  const props = {};
  let nameDict = {};

  const { payload } = context.parameters.options;
  const args = payload ? JSON.parse(payload) : {};

  const nameProject = [
    {
      type: question.resourceName.type,
      name: question.resourceName.key,
      message: question.resourceName.question,
      validate: amplify.inputValidation(question.resourceName),
      default: question.resourceName.default,
      when(answers) {
        return headlessMode.autoAnswer({
          context,
          answers,
          key: question.resourceName.key,
          value: args.resourceName ? args.resourceName : question.resourceName.default,
        });
      },
    },
  ];

  if (resourceName) {
    nameDict.resourceName = resourceName;
    props.shared = nameDict;
  } else {
    nameDict = await inquirer.prompt(nameProject);
    props.shared = nameDict;
  }
  props.shared.bucket = projectMeta.providers.awscloudformation.DeploymentBucketName;
  const createChannel = [
    {
      type: question.channelQuality.type,
      name: question.channelQuality.key,
      message: question.channelQuality.question,
      choices: question.channelQuality.options,
      default: question.channelQuality.default,
      when(answers) {
        return headlessMode.autoAnswer({
          context,
          answers,
          key: question.channelQuality.key,
          value: args.channelQuality ? args.channelQuality : question.channelQuality.default,
        });
      },
    },
    {
      type: question.channelLatency.type,
      name: question.channelLatency.key,
      message: question.channelLatency.question,
      choices: question.channelLatency.options,
      default: question.channelLatency.default,
      when(answers) {
        return headlessMode.autoAnswer({
          context,
          answers,
          key: question.channelLatency.key,
          value: args.channelLatency ? args.channelLatency : question.channelLatency.default,
        });
      },
    },
  ];

  const channelQuestions = await inquirer.prompt(createChannel);
  props.channel = channelQuestions;

  return props;
}