@kba-tools/genesis-tool
Version:
A forked repo from ConsenSys which helps to generate genesis block for Besu Network with xemptyBlockPeriod field.
66 lines (57 loc) • 1.7 kB
text/typescript
export interface AnswerMap {
[index: string]: any;
}
/**
* Represents a tree of questions that can be used to build up a template context
*/
export interface QuestionTree {
/**
* The text that the user is shown before waiting for answer input
*/
prompt: string;
/**
* The name of the question, also used as a variable name in the resulting
* template context
*/
name: string;
/**
* An optional list of options for multiple-choice questions.
*/
options?: QuestionOption[];
/**
* Transformation and validation function that can be used for both free
* form and multiple choice question types.
*
* @param transformerValidator a function that transforms valid input to
* the answer data desired and throws on invalid input. Mutates the given
* AnswerMap as needed. Returns a follow-up question, if necessary. Can be
* async.
*/
transformerValidator?: (rawInput: any, answers: AnswerMap) => Promise<QuestionTree | undefined> | QuestionTree | undefined;
}
/**
* Represents a single option in a list of options for a multiple choice
* question.
*/
export interface QuestionOption {
/**
* The text shown to the user to describe this option.
*/
label: string;
/**
* The value that should be used when this option is selected. If the
* question also contains a transformerValidator, this data will be
* passed as rawInput.
*/
value: any;
/**
* The follow-up question that should be given to the user after this one,
* if applicable.
*/
nextQuestion?: QuestionTree;
/**
* Whether or not this option should be the default if no other option is
* selected.
*/
default?: boolean;
}