args-tokens
Version:
parseArgs tokens compatibility and more high-performance parser
72 lines (70 loc) • 2.6 kB
TypeScript
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 };