UNPKG

args-tokens

Version:

parseArgs tokens compatibility and more high-performance parser

72 lines (70 loc) 2.6 kB
import { ArgToken, ParserOptions, parseArgs } from "./parser-C6MbpZjd.js"; import { ArgExplicitlyProvided, ArgResolveError, ArgResolveErrorType, ArgSchema, ArgValues, Args, ResolveArgs, resolveArgs } from "./resolver-D64nGlCD.js"; //#region src/parse.d.ts /** * Parse options for {@link parse} function. * * @typeParam A - {@link Args | Arguments schema}, which is an object that defines the command line arguments. */ interface ParseOptions<A extends Args> extends ParserOptions, ResolveArgs { /** * Command line arguments. */ args?: A; } /** * Parsed command line arguments. * * @typeParam A - {@link Args | Arguments schema}, which is an object that defines the command line arguments. */ type ParsedArgs<A extends Args> = { /** * Parsed values, same as `values` in {@link resolveArgs}. */ values: ArgValues<A>; /** * Positional arguments, same as `positionals` in {@link resolveArgs}. */ positionals: string[]; /** * Rest arguments, same as `rest` in {@link resolveArgs}. */ rest: string[]; /** * Validation errors, same as `errors` in {@link resolveArgs}. */ error: AggregateError | undefined; /** * Argument tokens, same as `tokens` which is parsed by {@link parseArgs}. */ tokens: ArgToken[]; /** * Explicit provision status, same as `explicit` in {@link resolveArgs}. * * Indicates which arguments were explicitly provided vs using default values. */ explicit: ArgExplicitlyProvided<A>; }; /** * Parse command line arguments. * * This function is a convenient API, that is used {@link parseArgs} and {@link resolveArgs} in internal. * * @typeParam A - {@link Args | Arguments schema}, which is an object that defines the command line arguments. * * @param args - command line arguments * @param options - parse options, about details see {@link ParseOptions} * @returns An object that contains the values of the arguments, positional arguments, {@link AggregateError | validation errors}, and {@link ArgToken | argument tokens}. * * @example * ```js * import { parse } from 'args-tokens' * * const { values, positionals } = parse(process.argv.slice(2)) * console.log('values', values) * console.log('positionals', positionals) * ``` */ declare function parse<A extends Args>(args: string[], options?: ParseOptions<A>): ParsedArgs<A>; //#endregion export { type ArgExplicitlyProvided, ArgResolveError, type ArgResolveErrorType, type ArgSchema, type ArgToken, type ArgValues, type Args, type ParseOptions, type ParsedArgs, type ParserOptions, type ResolveArgs, parse, parseArgs, resolveArgs };