brocolito
Version:
Create type-safe CLIs to align local development and pipeline workflows
18 lines (17 loc) • 752 B
TypeScript
import type { ArgType, ArgumentToName, Command, OptionMeta, SnakeToCamelCase } from "./types.ts";
export type ParseResult = {
positionals: string[];
values: Record<string, string | boolean | (string | boolean)[]>;
};
export declare const Arguments: {
camelize: <S extends string>(str: S) => SnakeToCamelCase<S>;
deriveInfo: <S extends `<${string}${string}>`>(usage: S) => ArgType & {
name: ArgumentToName<S>;
};
deriveOptionInfo: (usage: string) => Pick<OptionMeta, "name" | "type" | "multi" | "mandatory" | "short">;
parse: (command: Command<Record<string, unknown>>, args: string[]) => ParseResult;
parseGlobalOptions: (args: string[]) => {
wantsHelp: boolean;
wantsVersion: boolean;
};
};