breadc 0.6.5 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -3,22 +3,18 @@
3
3
  const minimist = require('minimist');
4
4
  const kolorist = require('kolorist');
5
5
 
6
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
7
-
8
- function _interopNamespace(e) {
9
- if (e && e.__esModule) return e;
6
+ function _interopNamespaceDefault(e) {
10
7
  const n = Object.create(null);
11
8
  if (e) {
12
9
  for (const k in e) {
13
10
  n[k] = e[k];
14
11
  }
15
12
  }
16
- n["default"] = e;
13
+ n.default = e;
17
14
  return n;
18
15
  }
19
16
 
20
- const minimist__default = /*#__PURE__*/_interopDefaultLegacy(minimist);
21
- const kolorist__namespace = /*#__PURE__*/_interopNamespace(kolorist);
17
+ const kolorist__namespace = /*#__PURE__*/_interopNamespaceDefault(kolorist);
22
18
 
23
19
  function twoColumn(texts, split = " ") {
24
20
  const left = padRight(texts.map((t) => t[0]));
@@ -219,6 +215,7 @@ const _Command = class {
219
215
  }
220
216
  }
221
217
  return {
218
+ // @ts-ignore
222
219
  command: this,
223
220
  arguments: args,
224
221
  options,
@@ -255,6 +252,7 @@ class InternalCommand extends Command {
255
252
  delete options["help"];
256
253
  delete options["version"];
257
254
  return {
255
+ // @ts-ignore
258
256
  command: this,
259
257
  arguments: argumentss,
260
258
  options: args,
@@ -459,7 +457,7 @@ class Breadc {
459
457
  map[o.name] = o.default;
460
458
  return map;
461
459
  }, {});
462
- const argv = minimist__default(args, {
460
+ const argv = minimist(args, {
463
461
  string: allowOptions.filter((o) => o.type === "string").map((o) => o.name),
464
462
  boolean: allowOptions.filter((o) => o.type === "boolean").map((o) => o.name).concat(["help", "version"]),
465
463
  default: defaultValue,
package/dist/index.d.ts CHANGED
@@ -1,138 +1,138 @@
1
1
  import kolorist from 'kolorist';
2
2
  import { ParsedArgs } from 'minimist';
3
3
 
4
- interface OptionConfig<F extends string, T = never, O = ExtractOptionType<F>> {
5
- /**
6
- * Option description
7
- */
8
- description?: string;
9
- /**
10
- * Option string default value
11
- */
12
- default?: O extends boolean ? boolean : string;
13
- /**
14
- * Transform option text
15
- */
16
- construct?: (rawText: ExtractOptionType<F>) => T;
17
- }
18
- /**
19
- * Option
20
- *
21
- * Option format must follow:
22
- * + --option
23
- * + -o, --option
24
- * + --option <arg>
25
- * + --option [arg]
26
- */
27
- declare class Option<F extends string = string, T = string, O = ExtractOptionType<F>> {
28
- private static OptionRE;
29
- readonly name: string;
30
- readonly shortcut?: string;
31
- readonly default?: O extends boolean ? boolean : string;
32
- readonly format: string;
33
- readonly description: string;
34
- readonly type: 'string' | 'boolean';
35
- readonly required: boolean;
36
- readonly construct?: (rawText: ExtractOptionType<F>) => T;
37
- constructor(format: F, config?: OptionConfig<F, T, O>);
4
+ interface OptionConfig<F extends string, T = never, O = ExtractOptionType<F>> {
5
+ /**
6
+ * Option description
7
+ */
8
+ description?: string;
9
+ /**
10
+ * Option string default value
11
+ */
12
+ default?: O extends boolean ? boolean : string;
13
+ /**
14
+ * Transform option text
15
+ */
16
+ construct?: (rawText: ExtractOptionType<F>) => T;
17
+ }
18
+ /**
19
+ * Option
20
+ *
21
+ * Option format must follow:
22
+ * + --option
23
+ * + -o, --option
24
+ * + --option <arg>
25
+ * + --option [arg]
26
+ */
27
+ declare class Option<F extends string = string, T = string, O = ExtractOptionType<F>> {
28
+ private static OptionRE;
29
+ readonly name: string;
30
+ readonly shortcut?: string;
31
+ readonly default?: O extends boolean ? boolean : string;
32
+ readonly format: string;
33
+ readonly description: string;
34
+ readonly type: 'string' | 'boolean';
35
+ readonly required: boolean;
36
+ readonly construct?: (rawText: ExtractOptionType<F>) => T;
37
+ constructor(format: F, config?: OptionConfig<F, T, O>);
38
38
  }
39
39
 
40
- interface CommandConfig {
41
- description?: string;
42
- }
43
- declare class Command<F extends string = string, CommandOption extends object = {}> {
44
- protected static MaxDep: number;
45
- protected readonly logger: Logger;
46
- readonly format: string;
47
- readonly description: string;
48
- readonly prefix: string[][];
49
- readonly arguments: string[];
50
- readonly default: boolean;
51
- readonly options: Option[];
52
- private actionFn?;
53
- constructor(format: F, config: CommandConfig & {
54
- logger: Logger;
55
- });
56
- get isInternal(): boolean;
57
- alias(command: string): this;
58
- option<OF extends string, T = undefined>(format: OF, description: string, config?: Omit<OptionConfig<OF, T>, 'description'>): Command<F, CommandOption & ExtractOption<OF, T>>;
59
- option<OF extends string, T = undefined>(format: OF, config?: OptionConfig<OF, T>): Command<F, CommandOption & ExtractOption<OF, T>>;
60
- hasPrefix(parsedArgs: ParsedArgs): boolean;
61
- shouldRun(parsedArgs: ParsedArgs): boolean;
62
- parseArgs(argv: ParsedArgs, globalOptions: Option[]): ParseResult;
63
- action(fn: ActionFn<ExtractCommand<F>, CommandOption>): void;
64
- run(...args: any[]): Promise<any>;
40
+ interface CommandConfig {
41
+ description?: string;
42
+ }
43
+ declare class Command<F extends string = string, CommandOption extends object = {}> {
44
+ protected static MaxDep: number;
45
+ protected readonly logger: Logger;
46
+ readonly format: string;
47
+ readonly description: string;
48
+ readonly prefix: string[][];
49
+ readonly arguments: string[];
50
+ readonly default: boolean;
51
+ readonly options: Option[];
52
+ private actionFn?;
53
+ constructor(format: F, config: CommandConfig & {
54
+ logger: Logger;
55
+ });
56
+ get isInternal(): boolean;
57
+ alias(command: string): this;
58
+ option<OF extends string, T = undefined>(format: OF, description: string, config?: Omit<OptionConfig<OF, T>, 'description'>): Command<F, CommandOption & ExtractOption<OF, T>>;
59
+ option<OF extends string, T = undefined>(format: OF, config?: OptionConfig<OF, T>): Command<F, CommandOption & ExtractOption<OF, T>>;
60
+ hasPrefix(parsedArgs: ParsedArgs): boolean;
61
+ shouldRun(parsedArgs: ParsedArgs): boolean;
62
+ parseArgs(argv: ParsedArgs, globalOptions: Option[]): ParseResult;
63
+ action(fn: ActionFn<ExtractCommand<F>, CommandOption>): void;
64
+ run(...args: any[]): Promise<any>;
65
65
  }
66
66
 
67
- interface AppOption {
68
- version?: string;
69
- description?: string | string[];
70
- help?: string | string[] | (() => string | string[]);
71
- logger?: Partial<Logger> | LoggerFn;
72
- }
73
- declare type LoggerFn = (message: string, ...args: any[]) => void;
74
- interface Logger {
75
- println: LoggerFn;
76
- info: LoggerFn;
77
- warn: LoggerFn;
78
- error: LoggerFn;
79
- debug: LoggerFn;
80
- }
81
- interface ParseResult {
82
- command: Command | undefined;
83
- arguments: any[];
84
- options: Record<string, string>;
85
- '--': string[];
86
- }
87
- declare type ExtractOption<T extends string, D = undefined> = {
88
- [k in ExtractOptionName<T>]: D extends undefined ? ExtractOptionType<T> : D;
89
- };
90
- /**
91
- * Extract option name type
92
- *
93
- * Examples:
94
- * + const t1: ExtractOption<'--option' | '--hello'> = 'hello'
95
- * + const t2: ExtractOption<'-r, --root'> = 'root'
96
- */
97
- declare type ExtractOptionName<T extends string> = T extends `-${Letter}, --${infer R} [${infer U}]` ? R : T extends `-${Letter}, --${infer R} <${infer U}>` ? R : T extends `-${Letter}, --${infer R}` ? R : T extends `--${infer R} [${infer U}]` ? R : T extends `--${infer R} <${infer U}>` ? R : T extends `--${infer R}` ? R : never;
98
- declare type ExtractOptionType<T extends string> = T extends `-${Letter}, --${infer R} [${infer U}]` ? string | undefined : T extends `-${Letter}, --${infer R} <${infer U}>` ? string | boolean : T extends `-${Letter}, --${infer R}` ? boolean : T extends `--${infer R} [${infer U}]` ? string | undefined : T extends `--${infer R} <${infer U}>` ? string | boolean : T extends `--${infer R}` ? boolean : never;
99
- declare type Lowercase = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z';
100
- declare type Uppercase = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z';
101
- declare type Letter = Lowercase | Uppercase;
102
- declare type Push<T extends any[], U, R> = [...T, U, R];
103
- declare type Context = {
104
- logger: Logger;
105
- color: typeof kolorist;
106
- };
107
- declare type ActionFn<T extends any[], Option extends object = {}, R = any> = (...arg: Push<T, Option & {
108
- '--': string[];
109
- }, Context>) => R | Promise<R>;
110
- /**
111
- * Max Dep: 5
112
- *
113
- * Generated by: npx tsx examples/genType.ts 5
114
- */
115
- declare type ExtractCommand<T extends string> = T extends `<${infer P1}> <${infer P2}> <${infer P3}> <${infer P4}> [...${infer P5}]` ? [string, string, string, string, string[]] : T extends `<${infer P1}> <${infer P2}> <${infer P3}> <${infer P4}> [${infer P5}]` ? [string, string, string, string, string | undefined] : T extends `<${infer P1}> <${infer P2}> <${infer P3}> <${infer P4}> <${infer P5}>` ? [string, string, string, string, string] : T extends `${infer P1} <${infer P2}> <${infer P3}> <${infer P4}> [...${infer P5}]` ? [string, string, string, string[]] : T extends `${infer P1} <${infer P2}> <${infer P3}> <${infer P4}> [${infer P5}]` ? [string, string, string, string | undefined] : T extends `${infer P1} <${infer P2}> <${infer P3}> <${infer P4}> <${infer P5}>` ? [string, string, string, string] : T extends `${infer P1} ${infer P2} <${infer P3}> <${infer P4}> [...${infer P5}]` ? [string, string, string[]] : T extends `${infer P1} ${infer P2} <${infer P3}> <${infer P4}> [${infer P5}]` ? [string, string, string | undefined] : T extends `${infer P1} ${infer P2} <${infer P3}> <${infer P4}> <${infer P5}>` ? [string, string, string] : T extends `${infer P1} ${infer P2} ${infer P3} <${infer P4}> [...${infer P5}]` ? [string, string[]] : T extends `${infer P1} ${infer P2} ${infer P3} <${infer P4}> [${infer P5}]` ? [string, string | undefined] : T extends `${infer P1} ${infer P2} ${infer P3} <${infer P4}> <${infer P5}>` ? [string, string] : T extends `<${infer P1}> <${infer P2}> <${infer P3}> [...${infer P4}]` ? [string, string, string, string[]] : T extends `<${infer P1}> <${infer P2}> <${infer P3}> [${infer P4}]` ? [string, string, string, string | undefined] : T extends `<${infer P1}> <${infer P2}> <${infer P3}> <${infer P4}>` ? [string, string, string, string] : T extends `${infer P1} <${infer P2}> <${infer P3}> [...${infer P4}]` ? [string, string, string[]] : T extends `${infer P1} <${infer P2}> <${infer P3}> [${infer P4}]` ? [string, string, string | undefined] : T extends `${infer P1} <${infer P2}> <${infer P3}> <${infer P4}>` ? [string, string, string] : T extends `${infer P1} ${infer P2} <${infer P3}> [...${infer P4}]` ? [string, string[]] : T extends `${infer P1} ${infer P2} <${infer P3}> [${infer P4}]` ? [string, string | undefined] : T extends `${infer P1} ${infer P2} <${infer P3}> <${infer P4}>` ? [string, string] : T extends `${infer P1} ${infer P2} ${infer P3} [...${infer P4}]` ? [string[]] : T extends `${infer P1} ${infer P2} ${infer P3} [${infer P4}]` ? [string | undefined] : T extends `${infer P1} ${infer P2} ${infer P3} <${infer P4}>` ? [string] : T extends `<${infer P1}> <${infer P2}> [...${infer P3}]` ? [string, string, string[]] : T extends `<${infer P1}> <${infer P2}> [${infer P3}]` ? [string, string, string | undefined] : T extends `<${infer P1}> <${infer P2}> <${infer P3}>` ? [string, string, string] : T extends `${infer P1} <${infer P2}> [...${infer P3}]` ? [string, string[]] : T extends `${infer P1} <${infer P2}> [${infer P3}]` ? [string, string | undefined] : T extends `${infer P1} <${infer P2}> <${infer P3}>` ? [string, string] : T extends `${infer P1} ${infer P2} [...${infer P3}]` ? [string[]] : T extends `${infer P1} ${infer P2} [${infer P3}]` ? [string | undefined] : T extends `${infer P1} ${infer P2} <${infer P3}>` ? [string] : T extends `${infer P1} ${infer P2} ${infer P3}` ? [] : T extends `<${infer P1}> [...${infer P2}]` ? [string, string[]] : T extends `<${infer P1}> [${infer P2}]` ? [string, string | undefined] : T extends `<${infer P1}> <${infer P2}>` ? [string, string] : T extends `${infer P1} [...${infer P2}]` ? [string[]] : T extends `${infer P1} [${infer P2}]` ? [string | undefined] : T extends `${infer P1} <${infer P2}>` ? [string] : T extends `${infer P1} ${infer P2}` ? [] : T extends `[...${infer P1}]` ? [string[]] : T extends `[${infer P1}]` ? [string | undefined] : T extends `<${infer P1}>` ? [string] : T extends `${infer P1}` ? [] : T extends `` ? [] : never;
67
+ interface AppOption {
68
+ version?: string;
69
+ description?: string | string[];
70
+ help?: string | string[] | (() => string | string[]);
71
+ logger?: Partial<Logger> | LoggerFn;
72
+ }
73
+ type LoggerFn = (message: string, ...args: any[]) => void;
74
+ interface Logger {
75
+ println: LoggerFn;
76
+ info: LoggerFn;
77
+ warn: LoggerFn;
78
+ error: LoggerFn;
79
+ debug: LoggerFn;
80
+ }
81
+ interface ParseResult {
82
+ command: Command | undefined;
83
+ arguments: any[];
84
+ options: Record<string, string>;
85
+ '--': string[];
86
+ }
87
+ type ExtractOption<T extends string, D = undefined> = {
88
+ [k in ExtractOptionName<T>]: D extends undefined ? ExtractOptionType<T> : D;
89
+ };
90
+ /**
91
+ * Extract option name type
92
+ *
93
+ * Examples:
94
+ * + const t1: ExtractOption<'--option' | '--hello'> = 'hello'
95
+ * + const t2: ExtractOption<'-r, --root'> = 'root'
96
+ */
97
+ type ExtractOptionName<T extends string> = T extends `-${Letter}, --${infer R} [${infer U}]` ? R : T extends `-${Letter}, --${infer R} <${infer U}>` ? R : T extends `-${Letter}, --${infer R}` ? R : T extends `--${infer R} [${infer U}]` ? R : T extends `--${infer R} <${infer U}>` ? R : T extends `--${infer R}` ? R : never;
98
+ type ExtractOptionType<T extends string> = T extends `-${Letter}, --${infer R} [${infer U}]` ? string | undefined : T extends `-${Letter}, --${infer R} <${infer U}>` ? string | boolean : T extends `-${Letter}, --${infer R}` ? boolean : T extends `--${infer R} [${infer U}]` ? string | undefined : T extends `--${infer R} <${infer U}>` ? string | boolean : T extends `--${infer R}` ? boolean : never;
99
+ type Lowercase = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z';
100
+ type Uppercase = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z';
101
+ type Letter = Lowercase | Uppercase;
102
+ type Push<T extends any[], U, R> = [...T, U, R];
103
+ type Context = {
104
+ logger: Logger;
105
+ color: typeof kolorist;
106
+ };
107
+ type ActionFn<T extends any[], Option extends object = {}, R = any> = (...arg: Push<T, Option & {
108
+ '--': string[];
109
+ }, Context>) => R | Promise<R>;
110
+ /**
111
+ * Max Dep: 5
112
+ *
113
+ * Generated by: npx tsx examples/genType.ts 5
114
+ */
115
+ type ExtractCommand<T extends string> = T extends `<${infer P1}> <${infer P2}> <${infer P3}> <${infer P4}> [...${infer P5}]` ? [string, string, string, string, string[]] : T extends `<${infer P1}> <${infer P2}> <${infer P3}> <${infer P4}> [${infer P5}]` ? [string, string, string, string, string | undefined] : T extends `<${infer P1}> <${infer P2}> <${infer P3}> <${infer P4}> <${infer P5}>` ? [string, string, string, string, string] : T extends `${infer P1} <${infer P2}> <${infer P3}> <${infer P4}> [...${infer P5}]` ? [string, string, string, string[]] : T extends `${infer P1} <${infer P2}> <${infer P3}> <${infer P4}> [${infer P5}]` ? [string, string, string, string | undefined] : T extends `${infer P1} <${infer P2}> <${infer P3}> <${infer P4}> <${infer P5}>` ? [string, string, string, string] : T extends `${infer P1} ${infer P2} <${infer P3}> <${infer P4}> [...${infer P5}]` ? [string, string, string[]] : T extends `${infer P1} ${infer P2} <${infer P3}> <${infer P4}> [${infer P5}]` ? [string, string, string | undefined] : T extends `${infer P1} ${infer P2} <${infer P3}> <${infer P4}> <${infer P5}>` ? [string, string, string] : T extends `${infer P1} ${infer P2} ${infer P3} <${infer P4}> [...${infer P5}]` ? [string, string[]] : T extends `${infer P1} ${infer P2} ${infer P3} <${infer P4}> [${infer P5}]` ? [string, string | undefined] : T extends `${infer P1} ${infer P2} ${infer P3} <${infer P4}> <${infer P5}>` ? [string, string] : T extends `<${infer P1}> <${infer P2}> <${infer P3}> [...${infer P4}]` ? [string, string, string, string[]] : T extends `<${infer P1}> <${infer P2}> <${infer P3}> [${infer P4}]` ? [string, string, string, string | undefined] : T extends `<${infer P1}> <${infer P2}> <${infer P3}> <${infer P4}>` ? [string, string, string, string] : T extends `${infer P1} <${infer P2}> <${infer P3}> [...${infer P4}]` ? [string, string, string[]] : T extends `${infer P1} <${infer P2}> <${infer P3}> [${infer P4}]` ? [string, string, string | undefined] : T extends `${infer P1} <${infer P2}> <${infer P3}> <${infer P4}>` ? [string, string, string] : T extends `${infer P1} ${infer P2} <${infer P3}> [...${infer P4}]` ? [string, string[]] : T extends `${infer P1} ${infer P2} <${infer P3}> [${infer P4}]` ? [string, string | undefined] : T extends `${infer P1} ${infer P2} <${infer P3}> <${infer P4}>` ? [string, string] : T extends `${infer P1} ${infer P2} ${infer P3} [...${infer P4}]` ? [string[]] : T extends `${infer P1} ${infer P2} ${infer P3} [${infer P4}]` ? [string | undefined] : T extends `${infer P1} ${infer P2} ${infer P3} <${infer P4}>` ? [string] : T extends `<${infer P1}> <${infer P2}> [...${infer P3}]` ? [string, string, string[]] : T extends `<${infer P1}> <${infer P2}> [${infer P3}]` ? [string, string, string | undefined] : T extends `<${infer P1}> <${infer P2}> <${infer P3}>` ? [string, string, string] : T extends `${infer P1} <${infer P2}> [...${infer P3}]` ? [string, string[]] : T extends `${infer P1} <${infer P2}> [${infer P3}]` ? [string, string | undefined] : T extends `${infer P1} <${infer P2}> <${infer P3}>` ? [string, string] : T extends `${infer P1} ${infer P2} [...${infer P3}]` ? [string[]] : T extends `${infer P1} ${infer P2} [${infer P3}]` ? [string | undefined] : T extends `${infer P1} ${infer P2} <${infer P3}>` ? [string] : T extends `${infer P1} ${infer P2} ${infer P3}` ? [] : T extends `<${infer P1}> [...${infer P2}]` ? [string, string[]] : T extends `<${infer P1}> [${infer P2}]` ? [string, string | undefined] : T extends `<${infer P1}> <${infer P2}>` ? [string, string] : T extends `${infer P1} [...${infer P2}]` ? [string[]] : T extends `${infer P1} [${infer P2}]` ? [string | undefined] : T extends `${infer P1} <${infer P2}>` ? [string] : T extends `${infer P1} ${infer P2}` ? [] : T extends `[...${infer P1}]` ? [string[]] : T extends `[${infer P1}]` ? [string | undefined] : T extends `<${infer P1}>` ? [string] : T extends `${infer P1}` ? [] : T extends `` ? [] : never;
116
116
 
117
- declare class Breadc<GlobalOption extends object = {}> {
118
- private readonly name;
119
- private readonly _version;
120
- private readonly description?;
121
- readonly logger: Logger;
122
- private readonly options;
123
- private readonly commands;
124
- private defaultCommand?;
125
- constructor(name: string, option: AppOption);
126
- version(): string;
127
- help(commands?: Command[]): string[];
128
- option<F extends string, T = undefined>(format: F, description: string, config?: Omit<OptionConfig<F, T>, 'description'>): Breadc<GlobalOption & ExtractOption<F, T>>;
129
- option<F extends string, T = undefined>(format: F, config?: OptionConfig<F, T>): Breadc<GlobalOption & ExtractOption<F, T>>;
130
- command<F extends string>(format: F, description: string, config?: Omit<CommandConfig, 'description'>): Command<F, GlobalOption>;
131
- command<F extends string>(format: F, config?: CommandConfig): Command<F, GlobalOption>;
132
- parse(args: string[]): ParseResult;
133
- private readonly callbacks;
134
- on(event: 'pre' | 'post', fn: (option: GlobalOption) => void | Promise<void>): void;
135
- run<T>(args: string[]): Promise<T | undefined>;
117
+ declare class Breadc<GlobalOption extends object = {}> {
118
+ private readonly name;
119
+ private readonly _version;
120
+ private readonly description?;
121
+ readonly logger: Logger;
122
+ private readonly options;
123
+ private readonly commands;
124
+ private defaultCommand?;
125
+ constructor(name: string, option: AppOption);
126
+ version(): string;
127
+ help(commands?: Command[]): string[];
128
+ option<F extends string, T = undefined>(format: F, description: string, config?: Omit<OptionConfig<F, T>, 'description'>): Breadc<GlobalOption & ExtractOption<F, T>>;
129
+ option<F extends string, T = undefined>(format: F, config?: OptionConfig<F, T>): Breadc<GlobalOption & ExtractOption<F, T>>;
130
+ command<F extends string>(format: F, description: string, config?: Omit<CommandConfig, 'description'>): Command<F, GlobalOption>;
131
+ command<F extends string>(format: F, config?: CommandConfig): Command<F, GlobalOption>;
132
+ parse(args: string[]): ParseResult;
133
+ private readonly callbacks;
134
+ on(event: 'pre' | 'post', fn: (option: GlobalOption) => void | Promise<void>): void;
135
+ run<T>(args: string[]): Promise<T | undefined>;
136
136
  }
137
137
 
138
138
  declare function breadc<T extends object = {}>(name: string, option?: AppOption): Breadc<T>;
package/dist/index.mjs CHANGED
@@ -201,6 +201,7 @@ const _Command = class {
201
201
  }
202
202
  }
203
203
  return {
204
+ // @ts-ignore
204
205
  command: this,
205
206
  arguments: args,
206
207
  options,
@@ -237,6 +238,7 @@ class InternalCommand extends Command {
237
238
  delete options["help"];
238
239
  delete options["version"];
239
240
  return {
241
+ // @ts-ignore
240
242
  command: this,
241
243
  arguments: argumentss,
242
244
  options: args,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "breadc",
3
- "version": "0.6.5",
3
+ "version": "0.7.0",
4
4
  "description": "Yet another Command Line Application Framework with fully strong TypeScript support",
5
5
  "keywords": [
6
6
  "breadc",
@@ -36,19 +36,19 @@
36
36
  ],
37
37
  "dependencies": {
38
38
  "kolorist": "^1.6.0",
39
- "minimist": "^1.2.6"
39
+ "minimist": "^1.2.7"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/minimist": "^1.2.2",
43
- "@types/node": "^18.0.0",
43
+ "@types/node": "^18.11.18",
44
44
  "cac": "^6.7.14",
45
- "prettier": "^2.7.1",
46
- "typescript": "^4.8.3",
47
- "unbuild": "^0.8.10",
48
- "vite": "^3.1.0",
49
- "vitest": "^0.23.2"
45
+ "prettier": "^2.8.3",
46
+ "typescript": "^4.9.5",
47
+ "unbuild": "^1.1.1",
48
+ "vite": "^4.0.4",
49
+ "vitest": "^0.28.3"
50
50
  },
51
- "packageManager": "pnpm@7.5.2",
51
+ "packageManager": "pnpm@7.26.3",
52
52
  "scripts": {
53
53
  "build": "unbuild",
54
54
  "build:all": "unbuild && pnpm -r build",