appium
Version: 
Automation for Apps.
89 lines • 3.43 kB
TypeScript
export const EXTRA_ARGS: "extraArgs";
export type DriverType = import("@appium/types").DriverType;
export type PluginType = import("@appium/types").PluginType;
/**
 * Creates a {@link ArgParser} instance; finalizes the config schema.
 *
 * @constructs ArgParser
 * @param {boolean} [debug] - If `true`, throw instead of exit upon parsing error
 * @returns {ArgParser}
 */
export function getParser(debug?: boolean): ArgParser;
/**
 * A wrapper around `argparse`
 *
 * - Handles instantiation, configuration, and monkeypatching of an
 *    `ArgumentParser` instance for Appium server and its extensions
 * - Handles error conditions, messages, and exit behavior
 */
export class ArgParser {
    /**
     * Given an object full of arguments as returned by `argparser.parse_args`,
     * expand the ones for extensions into a nested object structure and rename
     * keys to match the intended destination.
     *
     * E.g., `{'driver-foo-bar': baz}` becomes `{driver: {foo: {bar: 'baz'}}}`
     * @param {object} args
     * @param {string[]} [unknownArgs]
     * @returns {object}
     */
    static _transformParsedArgs(args: object, unknownArgs?: string[]): object;
    /**
     * Patches the `exit()` method of the parser to throw an error, so we can handle it manually.
     * @param {ArgumentParser} parser
     */
    static _patchExit(parser: ArgumentParser): void;
    /**
     *
     * @param {import('argparse').SubParser} subParser
     * @returns {import('./args').ArgumentDefinitions}
     */
    static _addServerToParser(subParser: import("argparse").SubParser): import("./args").ArgumentDefinitions;
    /**
     * Adds extension sub-sub-commands to `driver`/`plugin` subcommands
     * @param {import('argparse').SubParser} subParsers
     */
    static _addExtensionCommandsToParser(subParsers: import("argparse").SubParser): void;
    /**
     * Add subcommand and sub-sub commands for 'setup' subcommand.
     * @param {import('argparse').SubParser} subParser
     */
    static _addSetupToParser(subParser: import("argparse").SubParser): void;
    /**
     * @param {boolean} [debug] - If true, throw instead of exit on error.
     */
    constructor(debug?: boolean);
    /**
     * Program name (typically `appium`)
     * @type {string}
     */
    prog: string;
    /**
     * If `true`, throw an error on parse failure instead of printing help
     * @type {boolean}
     */
    debug: boolean;
    /**
     * Wrapped `ArgumentParser` instance
     * @type {ArgumentParser}
     */
    parser: ArgumentParser;
    rawArgs: import("./args").ArgumentDefinitions;
    /**
     * @type {ArgParser['parseArgs']}
     */
    parse_args: ArgParser["parseArgs"];
    /**
     * Parse arguments from the command line.
     *
     * If no subcommand is passed in, this method will inject the `server` subcommand.
     *
     * `ArgParser.prototype.parse_args` is an alias of this method.
     * @template {import('appium/types').CliCommand} [Cmd=import('appium/types').CliCommandServer]
     * @param {string[]} [args] - Array of arguments, ostensibly from `process.argv`. Gathers args from `process.argv` if not provided.
     * @returns {import('appium/types').Args<Cmd>} - The parsed arguments
     */
    parseArgs<Cmd extends import("appium/types").CliCommand = "server">(args?: string[]): import("appium/types").Args<Cmd>;
}
import { ArgumentParser } from 'argparse';
//# sourceMappingURL=parser.d.ts.map