UNPKG

peowly-commands

Version:

Helper for handling commands with peowly

42 lines (34 loc) 1.15 kB
import type { Package as NormalizedPackageJson } from 'normalize-package-data'; import type { AnyFlags, ExtendedParseArgsConfig, HelpListBasicItem, PackageJsonLike, PeowlyMeta, } from 'peowly'; export type NormalizedPackageJsonLike = PackageJsonLike & NormalizedPackageJson; export interface CliMetaOptions { cwd?: string; importMeta?: ImportMeta; name?: string; } export interface CliMeta extends PeowlyMeta { pkg?: NormalizedPackageJsonLike | undefined; } export interface CliAlias extends HelpListBasicItem { argv: readonly string[]; } export type CliAliases = Readonly<Record<string, Readonly<CliAlias>>>; export type CliCommandRun = (argv: string[], meta: CliMeta, context: { parentName: string; }) => Promise<void> | void; export interface CliCommand extends HelpListBasicItem { run: CliCommandRun; } export type CliCommands = Readonly<Record<string, Readonly<CliCommand>>>; export interface CliOptions<Flags extends AnyFlags> extends CliMetaOptions, Omit<ExtendedParseArgsConfig<Flags>, 'returnRemainderArgs'> { aliases?: CliAliases; args?: string[]; name?: string; showHelpOnNoCommand?: boolean; }