@jondotsoy/flags
Version:
A Javascript arguments processor
34 lines (33 loc) • 1.36 kB
TypeScript
import type { Builder } from "./builders/Builder.js";
import type { Spec } from "./builders/Spec.js";
import { type HelpMessageOptions } from "./utils/help-message.js";
type ExtractBuilderResult<B> = B extends Builder<Spec<infer I, infer P>> ? I extends never ? P : I | P : never;
export declare class FlagsParser<T extends Record<string, Builder<any>>> {
private schema;
readonly metadata: {
readonly program: string;
readonly description?: string;
readonly version?: string;
readonly combineShortFlags?: boolean;
};
constructor(schema: T, metadata?: {
readonly program: string;
readonly description?: string;
readonly version?: string;
readonly combineShortFlags?: boolean;
});
program(name: string): FlagsParser<T>;
describe(description: string): FlagsParser<T>;
version(version: string): FlagsParser<T>;
combineShortFlags(): FlagsParser<T>;
helpMessage: (options?: HelpMessageOptions) => string;
parse(args: string[]): {
[K in keyof T]: ExtractBuilderResult<T[K]>;
};
formatError(error: unknown): string;
safeParse(args: string[]): [ok: true, error: undefined, output: {
[K in keyof T]: ExtractBuilderResult<T[K]>;
}] | [ok: false, error: unknown, output: undefined];
private expandCombinedShortFlags;
}
export {};