@openzeppelin/cli
Version:
Command-line interface for the OpenZeppelin smart contract platform
43 lines (42 loc) • 1.36 kB
TypeScript
import { Command } from 'commander';
import { Choice } from './prompts/choices';
export declare function generateSignature(name: string, args: Arg[]): string;
export interface ParamDetails {
prompt?: string;
promptType?: 'confirm' | 'list' | 'input';
choices?: readonly Choice[];
preselect?: string | boolean;
validationError?: (value: string | boolean) => string | undefined;
}
declare type Param = ParamSimple | ParamVariadic;
interface ParamSimple {
variadic?: false;
details?: (params: object) => Promise<ParamDetails | undefined>;
after?: (params: object) => Promise<void>;
}
interface ParamVariadic {
variadic: true;
details?: (params: object) => Promise<ParamDetails[]>;
after?: (params: object) => Promise<void>;
}
export declare type Arg = Param & {
name: string;
};
export interface Option extends ParamSimple {
format: string;
description: string;
default?: string | boolean;
}
declare type AbortFunction = () => Promise<void>;
interface Action {
action: (params: object) => Promise<void>;
preAction?: (params: object) => Promise<void | AbortFunction>;
}
interface CommandSpec {
name: string;
description: string;
args: Arg[];
options: Option[];
}
export declare function register(program: Command, spec: CommandSpec, getAction: () => Promise<Action>): void;
export {};