@boneskull/bargs 0.1.1 → 2.0.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/README.md +100 -11
- package/dist/bargs.cjs +22 -10
- package/dist/bargs.cjs.map +1 -1
- package/dist/bargs.d.cts +6 -6
- package/dist/bargs.d.cts.map +1 -1
- package/dist/bargs.d.ts +6 -6
- package/dist/bargs.d.ts.map +1 -1
- package/dist/bargs.js +23 -11
- package/dist/bargs.js.map +1 -1
- package/dist/help.cjs.map +1 -1
- package/dist/help.d.cts +2 -2
- package/dist/help.d.cts.map +1 -1
- package/dist/help.d.ts +2 -2
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -7
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/opt.cjs +51 -7
- package/dist/opt.cjs.map +1 -1
- package/dist/opt.d.cts +50 -10
- package/dist/opt.d.cts.map +1 -1
- package/dist/opt.d.ts +50 -10
- package/dist/opt.d.ts.map +1 -1
- package/dist/opt.js +51 -7
- package/dist/opt.js.map +1 -1
- package/dist/parser.cjs +118 -29
- package/dist/parser.cjs.map +1 -1
- package/dist/parser.d.cts +37 -10
- package/dist/parser.d.cts.map +1 -1
- package/dist/parser.d.ts +37 -10
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +113 -26
- package/dist/parser.js.map +1 -1
- package/dist/types.d.cts +207 -35
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +207 -35
- package/dist/types.d.ts.map +1 -1
- package/dist/validate.cjs +28 -17
- package/dist/validate.cjs.map +1 -1
- package/dist/validate.d.cts.map +1 -1
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +28 -17
- package/dist/validate.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -32,12 +32,12 @@ import { bargsAsync as bargsAsyncBase, bargs as bargsBase } from "./bargs.cjs";
|
|
|
32
32
|
export declare const bargs: typeof bargsBase & {
|
|
33
33
|
array: (items: "number" | "string", props?: Omit<import("./types.js").ArrayOption, "items" | "type">) => import("./types.js").ArrayOption;
|
|
34
34
|
boolean: <P extends Omit<import("./types.js").BooleanOption, "type"> = Omit<import("./types.js").BooleanOption, "type">>(props?: P) => import("./types.js").BooleanOption & P;
|
|
35
|
-
command:
|
|
35
|
+
command: import("./opt.js").CommandBuilder;
|
|
36
36
|
count: (props?: Omit<import("./types.js").CountOption, "type">) => import("./types.js").CountOption;
|
|
37
37
|
enum: <const T extends readonly string[], P extends Omit<import("./types.js").EnumOption<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumOption<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumOption<T[number]> & P;
|
|
38
38
|
enumPos: <const T extends readonly string[], P extends Omit<import("./types.js").EnumPositional<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumPositional<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumPositional<T[number]> & P;
|
|
39
39
|
number: <P extends Omit<import("./types.js").NumberOption, "type"> = Omit<import("./types.js").NumberOption, "type">>(props?: P) => import("./types.js").NumberOption & P;
|
|
40
|
-
numberPos:
|
|
40
|
+
numberPos: <P extends Omit<import("./types.js").NumberPositional, "type"> = Omit<import("./types.js").NumberPositional, "type">>(props?: P) => import("./types.js").NumberPositional & P;
|
|
41
41
|
options: {
|
|
42
42
|
<A extends import("./types.js").OptionsSchema>(a: A): A;
|
|
43
43
|
<A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema>(a: A, b: B): A & B;
|
|
@@ -53,7 +53,7 @@ export declare const bargs: typeof bargsBase & {
|
|
|
53
53
|
(...positionals: import("./types.js").PositionalDef[]): import("./types.js").PositionalsSchema;
|
|
54
54
|
};
|
|
55
55
|
string: <P extends Omit<import("./types.js").StringOption, "type"> = Omit<import("./types.js").StringOption, "type">>(props?: P) => P & import("./types.js").StringOption;
|
|
56
|
-
stringPos:
|
|
56
|
+
stringPos: <P extends Omit<import("./types.js").StringPositional, "type"> = Omit<import("./types.js").StringPositional, "type">>(props?: P) => P & import("./types.js").StringPositional;
|
|
57
57
|
variadic: (items: "number" | "string", props?: Omit<import("./types.js").VariadicPositional, "items" | "type">) => import("./types.js").VariadicPositional;
|
|
58
58
|
};
|
|
59
59
|
/**
|
|
@@ -63,12 +63,12 @@ export declare const bargs: typeof bargsBase & {
|
|
|
63
63
|
export declare const bargsAsync: typeof bargsAsyncBase & {
|
|
64
64
|
array: (items: "number" | "string", props?: Omit<import("./types.js").ArrayOption, "items" | "type">) => import("./types.js").ArrayOption;
|
|
65
65
|
boolean: <P extends Omit<import("./types.js").BooleanOption, "type"> = Omit<import("./types.js").BooleanOption, "type">>(props?: P) => import("./types.js").BooleanOption & P;
|
|
66
|
-
command:
|
|
66
|
+
command: import("./opt.js").CommandBuilder;
|
|
67
67
|
count: (props?: Omit<import("./types.js").CountOption, "type">) => import("./types.js").CountOption;
|
|
68
68
|
enum: <const T extends readonly string[], P extends Omit<import("./types.js").EnumOption<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumOption<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumOption<T[number]> & P;
|
|
69
69
|
enumPos: <const T extends readonly string[], P extends Omit<import("./types.js").EnumPositional<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumPositional<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumPositional<T[number]> & P;
|
|
70
70
|
number: <P extends Omit<import("./types.js").NumberOption, "type"> = Omit<import("./types.js").NumberOption, "type">>(props?: P) => import("./types.js").NumberOption & P;
|
|
71
|
-
numberPos:
|
|
71
|
+
numberPos: <P extends Omit<import("./types.js").NumberPositional, "type"> = Omit<import("./types.js").NumberPositional, "type">>(props?: P) => import("./types.js").NumberPositional & P;
|
|
72
72
|
options: {
|
|
73
73
|
<A extends import("./types.js").OptionsSchema>(a: A): A;
|
|
74
74
|
<A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema>(a: A, b: B): A & B;
|
|
@@ -84,13 +84,14 @@ export declare const bargsAsync: typeof bargsAsyncBase & {
|
|
|
84
84
|
(...positionals: import("./types.js").PositionalDef[]): import("./types.js").PositionalsSchema;
|
|
85
85
|
};
|
|
86
86
|
string: <P extends Omit<import("./types.js").StringOption, "type"> = Omit<import("./types.js").StringOption, "type">>(props?: P) => P & import("./types.js").StringOption;
|
|
87
|
-
stringPos:
|
|
87
|
+
stringPos: <P extends Omit<import("./types.js").StringPositional, "type"> = Omit<import("./types.js").StringPositional, "type">>(props?: P) => P & import("./types.js").StringPositional;
|
|
88
88
|
variadic: (items: "number" | "string", props?: Omit<import("./types.js").VariadicPositional, "items" | "type">) => import("./types.js").VariadicPositional;
|
|
89
89
|
};
|
|
90
90
|
export { BargsError, HelpError, ValidationError } from "./errors.cjs";
|
|
91
91
|
export { generateCommandHelp, generateHelp } from "./help.cjs";
|
|
92
|
+
export type { CommandBuilder } from "./opt.cjs";
|
|
92
93
|
export { link, linkifyUrls, supportsHyperlinks } from "./osc.cjs";
|
|
93
94
|
export { ansi, createStyler, defaultTheme, stripAnsi, themes, } from "./theme.cjs";
|
|
94
95
|
export type { StyleFn, Styler, Theme, ThemeColors, ThemeInput, } from "./theme.cjs";
|
|
95
|
-
export type { AnyCommandConfig, ArrayOption, BargsConfig, BargsConfigWithCommands, BargsOptions, BargsResult, BooleanOption, CommandConfig, CommandConfigInput, CountOption, EnumOption, Handler, HandlerFn, InferOption, InferOptions, InferPositional, InferPositionals, NumberOption, NumberPositional, OptionDef, OptionsSchema, PositionalDef, PositionalsSchema, StringOption, StringPositional, VariadicPositional, } from "./types.cjs";
|
|
96
|
+
export type { AnyCommandConfig, ArrayOption, BargsConfig, BargsConfigWithCommands, BargsOptions, BargsResult, BooleanOption, CommandConfig, CommandConfigInput, CountOption, EnumOption, EnumPositional, Handler, HandlerFn, InferCommandResult, InferOption, InferOptions, InferPositional, InferPositionals, InferredCommands, InferTransformedPositionals, InferTransformedValues, NumberOption, NumberPositional, OptionDef, OptionsSchema, PositionalDef, PositionalsSchema, PositionalsTransformFn, StringOption, StringPositional, TransformsConfig, ValuesTransformFn, VariadicPositional, } from "./types.cjs";
|
|
96
97
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,oBAAmB;AAG9E;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,oBAAmB;AAG9E;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;SA2EuxQ,GAAG;;;;;;;SAAo1B,GAAG;;;;;CA3EjlS,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;SAqEkxQ,GAAG;;;;;;;SAAo1B,GAAG;;;;;CArEvkS,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,qBAAoB;AAGrE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAkB;AAG9D,YAAY,EAAE,cAAc,EAAE,kBAAiB;AAG/C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAiB;AAGjE,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,MAAM,GACP,oBAAmB;AAGpB,YAAY,EACV,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,UAAU,GACX,oBAAmB;AAGpB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,cAAc,EACd,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,oBAAmB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -32,12 +32,12 @@ import { bargsAsync as bargsAsyncBase, bargs as bargsBase } from "./bargs.js";
|
|
|
32
32
|
export declare const bargs: typeof bargsBase & {
|
|
33
33
|
array: (items: "number" | "string", props?: Omit<import("./types.js").ArrayOption, "items" | "type">) => import("./types.js").ArrayOption;
|
|
34
34
|
boolean: <P extends Omit<import("./types.js").BooleanOption, "type"> = Omit<import("./types.js").BooleanOption, "type">>(props?: P) => import("./types.js").BooleanOption & P;
|
|
35
|
-
command:
|
|
35
|
+
command: import("./opt.js").CommandBuilder;
|
|
36
36
|
count: (props?: Omit<import("./types.js").CountOption, "type">) => import("./types.js").CountOption;
|
|
37
37
|
enum: <const T extends readonly string[], P extends Omit<import("./types.js").EnumOption<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumOption<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumOption<T[number]> & P;
|
|
38
38
|
enumPos: <const T extends readonly string[], P extends Omit<import("./types.js").EnumPositional<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumPositional<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumPositional<T[number]> & P;
|
|
39
39
|
number: <P extends Omit<import("./types.js").NumberOption, "type"> = Omit<import("./types.js").NumberOption, "type">>(props?: P) => import("./types.js").NumberOption & P;
|
|
40
|
-
numberPos:
|
|
40
|
+
numberPos: <P extends Omit<import("./types.js").NumberPositional, "type"> = Omit<import("./types.js").NumberPositional, "type">>(props?: P) => import("./types.js").NumberPositional & P;
|
|
41
41
|
options: {
|
|
42
42
|
<A extends import("./types.js").OptionsSchema>(a: A): A;
|
|
43
43
|
<A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema>(a: A, b: B): A & B;
|
|
@@ -53,7 +53,7 @@ export declare const bargs: typeof bargsBase & {
|
|
|
53
53
|
(...positionals: import("./types.js").PositionalDef[]): import("./types.js").PositionalsSchema;
|
|
54
54
|
};
|
|
55
55
|
string: <P extends Omit<import("./types.js").StringOption, "type"> = Omit<import("./types.js").StringOption, "type">>(props?: P) => P & import("./types.js").StringOption;
|
|
56
|
-
stringPos:
|
|
56
|
+
stringPos: <P extends Omit<import("./types.js").StringPositional, "type"> = Omit<import("./types.js").StringPositional, "type">>(props?: P) => P & import("./types.js").StringPositional;
|
|
57
57
|
variadic: (items: "number" | "string", props?: Omit<import("./types.js").VariadicPositional, "items" | "type">) => import("./types.js").VariadicPositional;
|
|
58
58
|
};
|
|
59
59
|
/**
|
|
@@ -63,12 +63,12 @@ export declare const bargs: typeof bargsBase & {
|
|
|
63
63
|
export declare const bargsAsync: typeof bargsAsyncBase & {
|
|
64
64
|
array: (items: "number" | "string", props?: Omit<import("./types.js").ArrayOption, "items" | "type">) => import("./types.js").ArrayOption;
|
|
65
65
|
boolean: <P extends Omit<import("./types.js").BooleanOption, "type"> = Omit<import("./types.js").BooleanOption, "type">>(props?: P) => import("./types.js").BooleanOption & P;
|
|
66
|
-
command:
|
|
66
|
+
command: import("./opt.js").CommandBuilder;
|
|
67
67
|
count: (props?: Omit<import("./types.js").CountOption, "type">) => import("./types.js").CountOption;
|
|
68
68
|
enum: <const T extends readonly string[], P extends Omit<import("./types.js").EnumOption<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumOption<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumOption<T[number]> & P;
|
|
69
69
|
enumPos: <const T extends readonly string[], P extends Omit<import("./types.js").EnumPositional<T[number]>, "choices" | "type"> = Omit<import("./types.js").EnumPositional<T[number]>, "type" | "choices">>(choices: T, props?: P) => import("./types.js").EnumPositional<T[number]> & P;
|
|
70
70
|
number: <P extends Omit<import("./types.js").NumberOption, "type"> = Omit<import("./types.js").NumberOption, "type">>(props?: P) => import("./types.js").NumberOption & P;
|
|
71
|
-
numberPos:
|
|
71
|
+
numberPos: <P extends Omit<import("./types.js").NumberPositional, "type"> = Omit<import("./types.js").NumberPositional, "type">>(props?: P) => import("./types.js").NumberPositional & P;
|
|
72
72
|
options: {
|
|
73
73
|
<A extends import("./types.js").OptionsSchema>(a: A): A;
|
|
74
74
|
<A extends import("./types.js").OptionsSchema, B extends import("./types.js").OptionsSchema>(a: A, b: B): A & B;
|
|
@@ -84,13 +84,14 @@ export declare const bargsAsync: typeof bargsAsyncBase & {
|
|
|
84
84
|
(...positionals: import("./types.js").PositionalDef[]): import("./types.js").PositionalsSchema;
|
|
85
85
|
};
|
|
86
86
|
string: <P extends Omit<import("./types.js").StringOption, "type"> = Omit<import("./types.js").StringOption, "type">>(props?: P) => P & import("./types.js").StringOption;
|
|
87
|
-
stringPos:
|
|
87
|
+
stringPos: <P extends Omit<import("./types.js").StringPositional, "type"> = Omit<import("./types.js").StringPositional, "type">>(props?: P) => P & import("./types.js").StringPositional;
|
|
88
88
|
variadic: (items: "number" | "string", props?: Omit<import("./types.js").VariadicPositional, "items" | "type">) => import("./types.js").VariadicPositional;
|
|
89
89
|
};
|
|
90
90
|
export { BargsError, HelpError, ValidationError } from "./errors.js";
|
|
91
91
|
export { generateCommandHelp, generateHelp } from "./help.js";
|
|
92
|
+
export type { CommandBuilder } from "./opt.js";
|
|
92
93
|
export { link, linkifyUrls, supportsHyperlinks } from "./osc.js";
|
|
93
94
|
export { ansi, createStyler, defaultTheme, stripAnsi, themes, } from "./theme.js";
|
|
94
95
|
export type { StyleFn, Styler, Theme, ThemeColors, ThemeInput, } from "./theme.js";
|
|
95
|
-
export type { AnyCommandConfig, ArrayOption, BargsConfig, BargsConfigWithCommands, BargsOptions, BargsResult, BooleanOption, CommandConfig, CommandConfigInput, CountOption, EnumOption, Handler, HandlerFn, InferOption, InferOptions, InferPositional, InferPositionals, NumberOption, NumberPositional, OptionDef, OptionsSchema, PositionalDef, PositionalsSchema, StringOption, StringPositional, VariadicPositional, } from "./types.js";
|
|
96
|
+
export type { AnyCommandConfig, ArrayOption, BargsConfig, BargsConfigWithCommands, BargsOptions, BargsResult, BooleanOption, CommandConfig, CommandConfigInput, CountOption, EnumOption, EnumPositional, Handler, HandlerFn, InferCommandResult, InferOption, InferOptions, InferPositional, InferPositionals, InferredCommands, InferTransformedPositionals, InferTransformedValues, NumberOption, NumberPositional, OptionDef, OptionsSchema, PositionalDef, PositionalsSchema, PositionalsTransformFn, StringOption, StringPositional, TransformsConfig, ValuesTransformFn, VariadicPositional, } from "./types.js";
|
|
96
97
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,mBAAmB;AAG9E;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,mBAAmB;AAG9E;;;GAGG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;SA2EuxQ,GAAG;;;;;;;SAAo1B,GAAG;;;;;CA3EjlS,CAAC;AAEnD;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;SAqEkxQ,GAAG;;;;;;;SAAo1B,GAAG;;;;;CArEvkS,CAAC;AAG7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB;AAGrE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,kBAAkB;AAG9D,YAAY,EAAE,cAAc,EAAE,iBAAiB;AAG/C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB;AAGjE,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,MAAM,GACP,mBAAmB;AAGpB,YAAY,EACV,OAAO,EACP,MAAM,EACN,KAAK,EACL,WAAW,EACX,UAAU,GACX,mBAAmB;AAGpB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,cAAc,EACd,OAAO,EACP,SAAS,EACT,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,mBAAmB"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,mBAAmB;AAC9E,OAAO,EAAE,GAAG,EAAE,iBAAiB;AAE/B;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AAE7D,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB;AAErE,4BAA4B;AAC5B,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,KAAK,IAAI,SAAS,EAAE,mBAAmB;AAC9E,OAAO,EAAE,GAAG,EAAE,iBAAiB;AAE/B;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AAE7D,mBAAmB;AACnB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB;AAErE,4BAA4B;AAC5B,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,kBAAkB;AAK9D,kDAAkD;AAClD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB;AAEjE,4BAA4B;AAC5B,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,MAAM,GACP,mBAAmB"}
|
package/dist/opt.cjs
CHANGED
|
@@ -14,6 +14,18 @@
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.opt = void 0;
|
|
16
16
|
const errors_js_1 = require("./errors.cjs");
|
|
17
|
+
/**
|
|
18
|
+
* Implementation of command builder that detects whether it's called with
|
|
19
|
+
* config (direct) or without args (curried for global options).
|
|
20
|
+
*/
|
|
21
|
+
const commandBuilder = (configOrNothing) => {
|
|
22
|
+
if (configOrNothing === undefined) {
|
|
23
|
+
// Curried usage: return function that accepts config
|
|
24
|
+
return (config) => config;
|
|
25
|
+
}
|
|
26
|
+
// Direct usage: return config as-is
|
|
27
|
+
return configOrNothing;
|
|
28
|
+
};
|
|
17
29
|
/**
|
|
18
30
|
* Validate that no alias conflicts exist in a merged options schema. Throws
|
|
19
31
|
* BargsError if the same alias is used by multiple options.
|
|
@@ -84,21 +96,51 @@ exports.opt = {
|
|
|
84
96
|
/**
|
|
85
97
|
* Define a command with proper type inference.
|
|
86
98
|
*
|
|
99
|
+
* Three usage patterns:
|
|
100
|
+
*
|
|
101
|
+
* 1. Simple usage (no global options): `bargs.command({ ... })`
|
|
102
|
+
* 2. With global options: `bargs.command<typeof globalOptions>()({ ... })`
|
|
103
|
+
* 3. With global options AND transforms: `bargs.command<typeof globalOptions,
|
|
104
|
+
* typeof globalTransforms>()({ ... })`
|
|
105
|
+
*
|
|
87
106
|
* @example
|
|
88
107
|
*
|
|
89
108
|
* ```typescript
|
|
90
|
-
*
|
|
109
|
+
* // Simple usage - no global options typed
|
|
110
|
+
* const simpleCmd = bargs.command({
|
|
111
|
+
* description: 'Simple command',
|
|
112
|
+
* handler: ({ values }) => { ... },
|
|
113
|
+
* });
|
|
114
|
+
*
|
|
115
|
+
* // With global options typed
|
|
116
|
+
* const globalOptions = {
|
|
117
|
+
* verbose: bargs.boolean({ aliases: ['v'] }),
|
|
118
|
+
* } as const;
|
|
119
|
+
*
|
|
120
|
+
* const greetCmd = bargs.command<typeof globalOptions>()({
|
|
91
121
|
* description: 'Greet someone',
|
|
92
|
-
* options:
|
|
93
|
-
* name: opt.string({ default: 'world' }),
|
|
94
|
-
* }),
|
|
122
|
+
* options: { name: bargs.string({ default: 'world' }) },
|
|
95
123
|
* handler: ({ values }) => {
|
|
124
|
+
* // values.verbose is properly typed as boolean | undefined
|
|
96
125
|
* console.log(`Hello, ${values.name}!`);
|
|
97
126
|
* },
|
|
98
127
|
* });
|
|
128
|
+
*
|
|
129
|
+
* // With global options AND global transforms typed
|
|
130
|
+
* const globalTransforms = {
|
|
131
|
+
* values: (v) => ({ ...v, timestamp: Date.now() }),
|
|
132
|
+
* } as const;
|
|
133
|
+
*
|
|
134
|
+
* const timedCmd = bargs.command<typeof globalOptions, typeof globalTransforms>()({
|
|
135
|
+
* description: 'Time-aware command',
|
|
136
|
+
* handler: ({ values }) => {
|
|
137
|
+
* // values.timestamp is properly typed from global transforms
|
|
138
|
+
* console.log(`Ran at ${values.timestamp}`);
|
|
139
|
+
* },
|
|
140
|
+
* });
|
|
99
141
|
* ```
|
|
100
142
|
*/
|
|
101
|
-
command:
|
|
143
|
+
command: commandBuilder,
|
|
102
144
|
/**
|
|
103
145
|
* Define a count option (--verbose --verbose = 2).
|
|
104
146
|
*/
|
|
@@ -135,7 +177,8 @@ exports.opt = {
|
|
|
135
177
|
}),
|
|
136
178
|
// ─── Positional Builders ───────────────────────────────────────────
|
|
137
179
|
/**
|
|
138
|
-
* Define a number positional argument.
|
|
180
|
+
* Define a number positional argument. Props type is preserved to enable
|
|
181
|
+
* required inference.
|
|
139
182
|
*/
|
|
140
183
|
numberPos: (props = {}) => ({
|
|
141
184
|
type: 'number',
|
|
@@ -186,7 +229,8 @@ exports.opt = {
|
|
|
186
229
|
}),
|
|
187
230
|
// ─── Composition ───────────────────────────────────────────────────
|
|
188
231
|
/**
|
|
189
|
-
* Define a string positional argument.
|
|
232
|
+
* Define a string positional argument. Props type is preserved to enable
|
|
233
|
+
* required inference.
|
|
190
234
|
*/
|
|
191
235
|
stringPos: (props = {}) => ({
|
|
192
236
|
type: 'string',
|
package/dist/opt.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opt.js","sourceRoot":"","sources":["../src/opt.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;
|
|
1
|
+
{"version":3,"file":"opt.js","sourceRoot":"","sources":["../src/opt.ts"],"names":[],"mappings":"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"}
|
package/dist/opt.d.cts
CHANGED
|
@@ -10,7 +10,15 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @packageDocumentation
|
|
12
12
|
*/
|
|
13
|
-
import type { ArrayOption, BooleanOption, CommandConfig, CountOption, EnumOption, EnumPositional, NumberOption, NumberPositional, OptionsSchema, PositionalDef, PositionalsSchema, StringOption, StringPositional, VariadicPositional } from "./types.cjs";
|
|
13
|
+
import type { ArrayOption, BooleanOption, CommandConfig, CountOption, EnumOption, EnumPositional, NumberOption, NumberPositional, OptionsSchema, PositionalDef, PositionalsSchema, StringOption, StringPositional, TransformsConfig, VariadicPositional } from "./types.cjs";
|
|
14
|
+
/**
|
|
15
|
+
* Command builder interface that supports both direct config and curried global
|
|
16
|
+
* options patterns.
|
|
17
|
+
*/
|
|
18
|
+
export interface CommandBuilder {
|
|
19
|
+
<const TOptions extends OptionsSchema = OptionsSchema, const TPositionals extends PositionalsSchema = PositionalsSchema, const TTransforms extends TransformsConfig<any, any, any, any> | undefined = undefined>(config: CommandConfig<Record<string, never>, undefined, TOptions, TPositionals, TTransforms>): CommandConfig<Record<string, never>, undefined, TOptions, TPositionals, TTransforms>;
|
|
20
|
+
<TGlobalOptions extends OptionsSchema, TGlobalTransforms extends TransformsConfig<any, any, any, any> | undefined = undefined>(): <const TOptions extends OptionsSchema = OptionsSchema, const TPositionals extends PositionalsSchema = PositionalsSchema, const TTransforms extends TransformsConfig<any, any, any, any> | undefined = undefined>(config: CommandConfig<TGlobalOptions, TGlobalTransforms, TOptions, TPositionals, TTransforms>) => CommandConfig<TGlobalOptions, TGlobalTransforms, TOptions, TPositionals, TTransforms>;
|
|
21
|
+
}
|
|
14
22
|
/**
|
|
15
23
|
* Namespaced option builders.
|
|
16
24
|
*
|
|
@@ -42,21 +50,51 @@ export declare const opt: {
|
|
|
42
50
|
/**
|
|
43
51
|
* Define a command with proper type inference.
|
|
44
52
|
*
|
|
53
|
+
* Three usage patterns:
|
|
54
|
+
*
|
|
55
|
+
* 1. Simple usage (no global options): `bargs.command({ ... })`
|
|
56
|
+
* 2. With global options: `bargs.command<typeof globalOptions>()({ ... })`
|
|
57
|
+
* 3. With global options AND transforms: `bargs.command<typeof globalOptions,
|
|
58
|
+
* typeof globalTransforms>()({ ... })`
|
|
59
|
+
*
|
|
45
60
|
* @example
|
|
46
61
|
*
|
|
47
62
|
* ```typescript
|
|
48
|
-
*
|
|
63
|
+
* // Simple usage - no global options typed
|
|
64
|
+
* const simpleCmd = bargs.command({
|
|
65
|
+
* description: 'Simple command',
|
|
66
|
+
* handler: ({ values }) => { ... },
|
|
67
|
+
* });
|
|
68
|
+
*
|
|
69
|
+
* // With global options typed
|
|
70
|
+
* const globalOptions = {
|
|
71
|
+
* verbose: bargs.boolean({ aliases: ['v'] }),
|
|
72
|
+
* } as const;
|
|
73
|
+
*
|
|
74
|
+
* const greetCmd = bargs.command<typeof globalOptions>()({
|
|
49
75
|
* description: 'Greet someone',
|
|
50
|
-
* options:
|
|
51
|
-
* name: opt.string({ default: 'world' }),
|
|
52
|
-
* }),
|
|
76
|
+
* options: { name: bargs.string({ default: 'world' }) },
|
|
53
77
|
* handler: ({ values }) => {
|
|
78
|
+
* // values.verbose is properly typed as boolean | undefined
|
|
54
79
|
* console.log(`Hello, ${values.name}!`);
|
|
55
80
|
* },
|
|
56
81
|
* });
|
|
82
|
+
*
|
|
83
|
+
* // With global options AND global transforms typed
|
|
84
|
+
* const globalTransforms = {
|
|
85
|
+
* values: (v) => ({ ...v, timestamp: Date.now() }),
|
|
86
|
+
* } as const;
|
|
87
|
+
*
|
|
88
|
+
* const timedCmd = bargs.command<typeof globalOptions, typeof globalTransforms>()({
|
|
89
|
+
* description: 'Time-aware command',
|
|
90
|
+
* handler: ({ values }) => {
|
|
91
|
+
* // values.timestamp is properly typed from global transforms
|
|
92
|
+
* console.log(`Ran at ${values.timestamp}`);
|
|
93
|
+
* },
|
|
94
|
+
* });
|
|
57
95
|
* ```
|
|
58
96
|
*/
|
|
59
|
-
command:
|
|
97
|
+
command: CommandBuilder;
|
|
60
98
|
/**
|
|
61
99
|
* Define a count option (--verbose --verbose = 2).
|
|
62
100
|
*/
|
|
@@ -78,9 +116,10 @@ export declare const opt: {
|
|
|
78
116
|
*/
|
|
79
117
|
number: <P extends Omit<NumberOption, "type"> = Omit<NumberOption, "type">>(props?: P) => NumberOption & P;
|
|
80
118
|
/**
|
|
81
|
-
* Define a number positional argument.
|
|
119
|
+
* Define a number positional argument. Props type is preserved to enable
|
|
120
|
+
* required inference.
|
|
82
121
|
*/
|
|
83
|
-
numberPos:
|
|
122
|
+
numberPos: <P extends Omit<NumberPositional, "type"> = Omit<NumberPositional, "type">>(props?: P) => NumberPositional & P;
|
|
84
123
|
/**
|
|
85
124
|
* Compose multiple option schemas into one. Later schemas override earlier
|
|
86
125
|
* ones for duplicate option names. Validates that no alias conflicts exist.
|
|
@@ -134,9 +173,10 @@ export declare const opt: {
|
|
|
134
173
|
*/
|
|
135
174
|
string: <P extends Omit<StringOption, "type"> = Omit<StringOption, "type">>(props?: P) => P & StringOption;
|
|
136
175
|
/**
|
|
137
|
-
* Define a string positional argument.
|
|
176
|
+
* Define a string positional argument. Props type is preserved to enable
|
|
177
|
+
* required inference.
|
|
138
178
|
*/
|
|
139
|
-
stringPos:
|
|
179
|
+
stringPos: <P extends Omit<StringPositional, "type"> = Omit<StringPositional, "type">>(props?: P) => P & StringPositional;
|
|
140
180
|
/**
|
|
141
181
|
* Define a variadic positional (rest args).
|
|
142
182
|
*/
|
package/dist/opt.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opt.d.ts","sourceRoot":"","sources":["../src/opt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EACnB,oBAAmB;
|
|
1
|
+
{"version":3,"file":"opt.d.ts","sourceRoot":"","sources":["../src/opt.ts"],"names":[],"mappings":"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"}
|
package/dist/opt.d.ts
CHANGED
|
@@ -10,7 +10,15 @@
|
|
|
10
10
|
*
|
|
11
11
|
* @packageDocumentation
|
|
12
12
|
*/
|
|
13
|
-
import type { ArrayOption, BooleanOption, CommandConfig, CountOption, EnumOption, EnumPositional, NumberOption, NumberPositional, OptionsSchema, PositionalDef, PositionalsSchema, StringOption, StringPositional, VariadicPositional } from "./types.js";
|
|
13
|
+
import type { ArrayOption, BooleanOption, CommandConfig, CountOption, EnumOption, EnumPositional, NumberOption, NumberPositional, OptionsSchema, PositionalDef, PositionalsSchema, StringOption, StringPositional, TransformsConfig, VariadicPositional } from "./types.js";
|
|
14
|
+
/**
|
|
15
|
+
* Command builder interface that supports both direct config and curried global
|
|
16
|
+
* options patterns.
|
|
17
|
+
*/
|
|
18
|
+
export interface CommandBuilder {
|
|
19
|
+
<const TOptions extends OptionsSchema = OptionsSchema, const TPositionals extends PositionalsSchema = PositionalsSchema, const TTransforms extends TransformsConfig<any, any, any, any> | undefined = undefined>(config: CommandConfig<Record<string, never>, undefined, TOptions, TPositionals, TTransforms>): CommandConfig<Record<string, never>, undefined, TOptions, TPositionals, TTransforms>;
|
|
20
|
+
<TGlobalOptions extends OptionsSchema, TGlobalTransforms extends TransformsConfig<any, any, any, any> | undefined = undefined>(): <const TOptions extends OptionsSchema = OptionsSchema, const TPositionals extends PositionalsSchema = PositionalsSchema, const TTransforms extends TransformsConfig<any, any, any, any> | undefined = undefined>(config: CommandConfig<TGlobalOptions, TGlobalTransforms, TOptions, TPositionals, TTransforms>) => CommandConfig<TGlobalOptions, TGlobalTransforms, TOptions, TPositionals, TTransforms>;
|
|
21
|
+
}
|
|
14
22
|
/**
|
|
15
23
|
* Namespaced option builders.
|
|
16
24
|
*
|
|
@@ -42,21 +50,51 @@ export declare const opt: {
|
|
|
42
50
|
/**
|
|
43
51
|
* Define a command with proper type inference.
|
|
44
52
|
*
|
|
53
|
+
* Three usage patterns:
|
|
54
|
+
*
|
|
55
|
+
* 1. Simple usage (no global options): `bargs.command({ ... })`
|
|
56
|
+
* 2. With global options: `bargs.command<typeof globalOptions>()({ ... })`
|
|
57
|
+
* 3. With global options AND transforms: `bargs.command<typeof globalOptions,
|
|
58
|
+
* typeof globalTransforms>()({ ... })`
|
|
59
|
+
*
|
|
45
60
|
* @example
|
|
46
61
|
*
|
|
47
62
|
* ```typescript
|
|
48
|
-
*
|
|
63
|
+
* // Simple usage - no global options typed
|
|
64
|
+
* const simpleCmd = bargs.command({
|
|
65
|
+
* description: 'Simple command',
|
|
66
|
+
* handler: ({ values }) => { ... },
|
|
67
|
+
* });
|
|
68
|
+
*
|
|
69
|
+
* // With global options typed
|
|
70
|
+
* const globalOptions = {
|
|
71
|
+
* verbose: bargs.boolean({ aliases: ['v'] }),
|
|
72
|
+
* } as const;
|
|
73
|
+
*
|
|
74
|
+
* const greetCmd = bargs.command<typeof globalOptions>()({
|
|
49
75
|
* description: 'Greet someone',
|
|
50
|
-
* options:
|
|
51
|
-
* name: opt.string({ default: 'world' }),
|
|
52
|
-
* }),
|
|
76
|
+
* options: { name: bargs.string({ default: 'world' }) },
|
|
53
77
|
* handler: ({ values }) => {
|
|
78
|
+
* // values.verbose is properly typed as boolean | undefined
|
|
54
79
|
* console.log(`Hello, ${values.name}!`);
|
|
55
80
|
* },
|
|
56
81
|
* });
|
|
82
|
+
*
|
|
83
|
+
* // With global options AND global transforms typed
|
|
84
|
+
* const globalTransforms = {
|
|
85
|
+
* values: (v) => ({ ...v, timestamp: Date.now() }),
|
|
86
|
+
* } as const;
|
|
87
|
+
*
|
|
88
|
+
* const timedCmd = bargs.command<typeof globalOptions, typeof globalTransforms>()({
|
|
89
|
+
* description: 'Time-aware command',
|
|
90
|
+
* handler: ({ values }) => {
|
|
91
|
+
* // values.timestamp is properly typed from global transforms
|
|
92
|
+
* console.log(`Ran at ${values.timestamp}`);
|
|
93
|
+
* },
|
|
94
|
+
* });
|
|
57
95
|
* ```
|
|
58
96
|
*/
|
|
59
|
-
command:
|
|
97
|
+
command: CommandBuilder;
|
|
60
98
|
/**
|
|
61
99
|
* Define a count option (--verbose --verbose = 2).
|
|
62
100
|
*/
|
|
@@ -78,9 +116,10 @@ export declare const opt: {
|
|
|
78
116
|
*/
|
|
79
117
|
number: <P extends Omit<NumberOption, "type"> = Omit<NumberOption, "type">>(props?: P) => NumberOption & P;
|
|
80
118
|
/**
|
|
81
|
-
* Define a number positional argument.
|
|
119
|
+
* Define a number positional argument. Props type is preserved to enable
|
|
120
|
+
* required inference.
|
|
82
121
|
*/
|
|
83
|
-
numberPos:
|
|
122
|
+
numberPos: <P extends Omit<NumberPositional, "type"> = Omit<NumberPositional, "type">>(props?: P) => NumberPositional & P;
|
|
84
123
|
/**
|
|
85
124
|
* Compose multiple option schemas into one. Later schemas override earlier
|
|
86
125
|
* ones for duplicate option names. Validates that no alias conflicts exist.
|
|
@@ -134,9 +173,10 @@ export declare const opt: {
|
|
|
134
173
|
*/
|
|
135
174
|
string: <P extends Omit<StringOption, "type"> = Omit<StringOption, "type">>(props?: P) => P & StringOption;
|
|
136
175
|
/**
|
|
137
|
-
* Define a string positional argument.
|
|
176
|
+
* Define a string positional argument. Props type is preserved to enable
|
|
177
|
+
* required inference.
|
|
138
178
|
*/
|
|
139
|
-
stringPos:
|
|
179
|
+
stringPos: <P extends Omit<StringPositional, "type"> = Omit<StringPositional, "type">>(props?: P) => P & StringPositional;
|
|
140
180
|
/**
|
|
141
181
|
* Define a variadic positional (rest args).
|
|
142
182
|
*/
|
package/dist/opt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opt.d.ts","sourceRoot":"","sources":["../src/opt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EACnB,mBAAmB;
|
|
1
|
+
{"version":3,"file":"opt.d.ts","sourceRoot":"","sources":["../src/opt.ts"],"names":[],"mappings":"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"}
|
package/dist/opt.js
CHANGED
|
@@ -11,6 +11,18 @@
|
|
|
11
11
|
* @packageDocumentation
|
|
12
12
|
*/
|
|
13
13
|
import { BargsError } from "./errors.js";
|
|
14
|
+
/**
|
|
15
|
+
* Implementation of command builder that detects whether it's called with
|
|
16
|
+
* config (direct) or without args (curried for global options).
|
|
17
|
+
*/
|
|
18
|
+
const commandBuilder = (configOrNothing) => {
|
|
19
|
+
if (configOrNothing === undefined) {
|
|
20
|
+
// Curried usage: return function that accepts config
|
|
21
|
+
return (config) => config;
|
|
22
|
+
}
|
|
23
|
+
// Direct usage: return config as-is
|
|
24
|
+
return configOrNothing;
|
|
25
|
+
};
|
|
14
26
|
/**
|
|
15
27
|
* Validate that no alias conflicts exist in a merged options schema. Throws
|
|
16
28
|
* BargsError if the same alias is used by multiple options.
|
|
@@ -81,21 +93,51 @@ export const opt = {
|
|
|
81
93
|
/**
|
|
82
94
|
* Define a command with proper type inference.
|
|
83
95
|
*
|
|
96
|
+
* Three usage patterns:
|
|
97
|
+
*
|
|
98
|
+
* 1. Simple usage (no global options): `bargs.command({ ... })`
|
|
99
|
+
* 2. With global options: `bargs.command<typeof globalOptions>()({ ... })`
|
|
100
|
+
* 3. With global options AND transforms: `bargs.command<typeof globalOptions,
|
|
101
|
+
* typeof globalTransforms>()({ ... })`
|
|
102
|
+
*
|
|
84
103
|
* @example
|
|
85
104
|
*
|
|
86
105
|
* ```typescript
|
|
87
|
-
*
|
|
106
|
+
* // Simple usage - no global options typed
|
|
107
|
+
* const simpleCmd = bargs.command({
|
|
108
|
+
* description: 'Simple command',
|
|
109
|
+
* handler: ({ values }) => { ... },
|
|
110
|
+
* });
|
|
111
|
+
*
|
|
112
|
+
* // With global options typed
|
|
113
|
+
* const globalOptions = {
|
|
114
|
+
* verbose: bargs.boolean({ aliases: ['v'] }),
|
|
115
|
+
* } as const;
|
|
116
|
+
*
|
|
117
|
+
* const greetCmd = bargs.command<typeof globalOptions>()({
|
|
88
118
|
* description: 'Greet someone',
|
|
89
|
-
* options:
|
|
90
|
-
* name: opt.string({ default: 'world' }),
|
|
91
|
-
* }),
|
|
119
|
+
* options: { name: bargs.string({ default: 'world' }) },
|
|
92
120
|
* handler: ({ values }) => {
|
|
121
|
+
* // values.verbose is properly typed as boolean | undefined
|
|
93
122
|
* console.log(`Hello, ${values.name}!`);
|
|
94
123
|
* },
|
|
95
124
|
* });
|
|
125
|
+
*
|
|
126
|
+
* // With global options AND global transforms typed
|
|
127
|
+
* const globalTransforms = {
|
|
128
|
+
* values: (v) => ({ ...v, timestamp: Date.now() }),
|
|
129
|
+
* } as const;
|
|
130
|
+
*
|
|
131
|
+
* const timedCmd = bargs.command<typeof globalOptions, typeof globalTransforms>()({
|
|
132
|
+
* description: 'Time-aware command',
|
|
133
|
+
* handler: ({ values }) => {
|
|
134
|
+
* // values.timestamp is properly typed from global transforms
|
|
135
|
+
* console.log(`Ran at ${values.timestamp}`);
|
|
136
|
+
* },
|
|
137
|
+
* });
|
|
96
138
|
* ```
|
|
97
139
|
*/
|
|
98
|
-
command:
|
|
140
|
+
command: commandBuilder,
|
|
99
141
|
/**
|
|
100
142
|
* Define a count option (--verbose --verbose = 2).
|
|
101
143
|
*/
|
|
@@ -132,7 +174,8 @@ export const opt = {
|
|
|
132
174
|
}),
|
|
133
175
|
// ─── Positional Builders ───────────────────────────────────────────
|
|
134
176
|
/**
|
|
135
|
-
* Define a number positional argument.
|
|
177
|
+
* Define a number positional argument. Props type is preserved to enable
|
|
178
|
+
* required inference.
|
|
136
179
|
*/
|
|
137
180
|
numberPos: (props = {}) => ({
|
|
138
181
|
type: 'number',
|
|
@@ -183,7 +226,8 @@ export const opt = {
|
|
|
183
226
|
}),
|
|
184
227
|
// ─── Composition ───────────────────────────────────────────────────
|
|
185
228
|
/**
|
|
186
|
-
* Define a string positional argument.
|
|
229
|
+
* Define a string positional argument. Props type is preserved to enable
|
|
230
|
+
* required inference.
|
|
187
231
|
*/
|
|
188
232
|
stringPos: (props = {}) => ({
|
|
189
233
|
type: 'string',
|
package/dist/opt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opt.js","sourceRoot":"","sources":["../src/opt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"opt.js","sourceRoot":"","sources":["../src/opt.ts"],"names":[],"mappings":"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"}
|