Skip to content

Commit

Permalink
feat: add typescript definitions
Browse files Browse the repository at this point in the history
  • Loading branch information
lukeed committed Dec 31, 2021
1 parent cb05689 commit 9171cbf
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
37 changes: 37 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import type * as mri from 'mri';

type Arrayable<T> = T | T[];

declare function sade(usage: string, isSingle?: boolean): sade.Sade;

declare namespace sade {
export type Value = number | string | boolean | null;
export type Handler<T extends readonly Value[] = Value[]> = (...args: [...T, mri.Argv]) => any;

export interface LazyOutput<T extends any[]> {
name: string;
handler: Handler<T>;
args: string[];
}

export interface Sade {
command(usage: string, description?: string, options?: {
alias?: Arrayable<string>;
default?: boolean;
}): Sade;

option(flag: string, description?: string, value?: Value): Sade;
action<T extends Value[]>(handler: Handler<T>): Sade;
describe(text: Arrayable<string>): Sade;
alias(...names: string[]): Sade;
example(usage: string): Sade;

parse<T extends Value[]>(arr: string[], opts: { lazy: true } & mri.Options): LazyOutput<T>;
parse(arr: string[], opts?: { lazy?: boolean } & mri.Options): void;

version(value: string): Sade;
help(cmd?: string): void;
}
}

export = sade;
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@
"repository": "lukeed/sade",
"module": "lib/index.mjs",
"main": "lib/index.js",
"types": "index.d.ts",
"license": "MIT",
"files": [
"*.d.ts",
"lib"
],
"author": {
Expand Down

0 comments on commit 9171cbf

Please sign in to comment.