@boneskull/bargs 1.0.0 → 3.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 +305 -299
- package/dist/bargs.cjs +464 -142
- package/dist/bargs.cjs.map +1 -1
- package/dist/bargs.d.cts +35 -17
- package/dist/bargs.d.cts.map +1 -1
- package/dist/bargs.d.ts +35 -17
- package/dist/bargs.d.ts.map +1 -1
- package/dist/bargs.js +462 -142
- package/dist/bargs.js.map +1 -1
- package/dist/help.cjs +1 -2
- package/dist/help.cjs.map +1 -1
- package/dist/help.d.cts +20 -3
- package/dist/help.d.cts.map +1 -1
- package/dist/help.d.ts +20 -3
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +1 -2
- package/dist/help.js.map +1 -1
- package/dist/index.cjs +27 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -78
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +15 -78
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -30
- package/dist/index.js.map +1 -1
- package/dist/opt.cjs +147 -80
- package/dist/opt.cjs.map +1 -1
- package/dist/opt.d.cts +88 -77
- package/dist/opt.d.cts.map +1 -1
- package/dist/opt.d.ts +88 -77
- package/dist/opt.d.ts.map +1 -1
- package/dist/opt.js +146 -79
- package/dist/opt.js.map +1 -1
- package/dist/parser.cjs +3 -230
- package/dist/parser.cjs.map +1 -1
- package/dist/parser.d.cts +3 -51
- package/dist/parser.d.cts.map +1 -1
- package/dist/parser.d.ts +3 -51
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +2 -223
- package/dist/parser.js.map +1 -1
- package/dist/types.cjs +1 -3
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +110 -122
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.ts +110 -122
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -3
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
- package/dist/validate.cjs +0 -463
- package/dist/validate.cjs.map +0 -1
- package/dist/validate.d.cts +0 -28
- package/dist/validate.d.cts.map +0 -1
- package/dist/validate.d.ts +0 -28
- package/dist/validate.d.ts.map +0 -1
- package/dist/validate.js +0 -459
- package/dist/validate.js.map +0 -1
package/dist/opt.js
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Builder functions for defining CLI options
|
|
2
|
+
* Builder functions for defining CLI options and positionals.
|
|
3
3
|
*
|
|
4
4
|
* Provides ergonomic helpers with full TypeScript type inference for
|
|
5
5
|
* constructing option schemas (`opt.string()`, `opt.boolean()`, `opt.enum()`,
|
|
6
|
-
* etc.)
|
|
7
|
-
* `opt.variadic()`)
|
|
8
|
-
* composition utilities for merging schemas (`opt.options()`,
|
|
9
|
-
* `opt.positionals()`).
|
|
6
|
+
* etc.) and positional schemas (`opt.stringPos()`, `opt.numberPos()`,
|
|
7
|
+
* `opt.variadic()`).
|
|
10
8
|
*
|
|
11
9
|
* @packageDocumentation
|
|
12
10
|
*/
|
|
13
11
|
import { BargsError } from "./errors.js";
|
|
14
12
|
/**
|
|
15
|
-
* Validate that no alias conflicts exist in a merged options schema.
|
|
16
|
-
* BargsError if the same alias is used by multiple options.
|
|
13
|
+
* Validate that no alias conflicts exist in a merged options schema.
|
|
17
14
|
*/
|
|
18
15
|
const validateAliasConflicts = (schema) => {
|
|
19
16
|
const aliasToOption = new Map();
|
|
@@ -31,32 +28,56 @@ const validateAliasConflicts = (schema) => {
|
|
|
31
28
|
}
|
|
32
29
|
};
|
|
33
30
|
/**
|
|
34
|
-
*
|
|
31
|
+
* Create a Parser from an options schema that can also merge with existing
|
|
32
|
+
* parsers.
|
|
33
|
+
*
|
|
34
|
+
* Supports two usage patterns:
|
|
35
|
+
*
|
|
36
|
+
* 1. Standalone: `opt.options({ ... })` - returns a Parser
|
|
37
|
+
* 2. Merging: `pos.positionals(...)(opt.options(...))` - merges positionals into
|
|
38
|
+
* options
|
|
35
39
|
*/
|
|
36
|
-
const optionsImpl = (
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
const optionsImpl = (schema) => {
|
|
41
|
+
validateAliasConflicts(schema);
|
|
42
|
+
// Create the merge function
|
|
43
|
+
const merger = (parser) => {
|
|
44
|
+
const mergedSchema = { ...parser.__optionsSchema, ...schema };
|
|
45
|
+
validateAliasConflicts(mergedSchema);
|
|
46
|
+
// Preserve transforms from the incoming parser
|
|
47
|
+
const transformed = parser;
|
|
48
|
+
const result = {
|
|
49
|
+
...parser,
|
|
50
|
+
__brand: 'Parser',
|
|
51
|
+
__optionsSchema: mergedSchema,
|
|
52
|
+
__values: {},
|
|
53
|
+
};
|
|
54
|
+
if (transformed.__transform) {
|
|
55
|
+
result.__transform = transformed.__transform;
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
};
|
|
59
|
+
// Add Parser properties to the function
|
|
60
|
+
const parserProps = {
|
|
61
|
+
__brand: 'Parser',
|
|
62
|
+
__optionsSchema: schema,
|
|
63
|
+
__positionals: [],
|
|
64
|
+
__positionalsSchema: [],
|
|
65
|
+
__values: {},
|
|
66
|
+
};
|
|
67
|
+
return Object.assign(merger, parserProps);
|
|
40
68
|
};
|
|
41
|
-
/**
|
|
42
|
-
* Create a positionals schema from positional definitions.
|
|
43
|
-
*/
|
|
44
|
-
const positionalsImpl = (...positionals) => positionals;
|
|
45
69
|
/**
|
|
46
70
|
* Namespaced option builders.
|
|
47
71
|
*
|
|
48
|
-
* Provides ergonomic helpers for defining CLI options, positionals, and
|
|
49
|
-
* commands with full TypeScript type inference.
|
|
50
|
-
*
|
|
51
72
|
* @example
|
|
52
73
|
*
|
|
53
74
|
* ```typescript
|
|
54
75
|
* import { opt } from 'bargs';
|
|
55
76
|
*
|
|
56
|
-
* const
|
|
77
|
+
* const parser = opt.options({
|
|
57
78
|
* verbose: opt.boolean({ aliases: ['v'] }),
|
|
58
79
|
* name: opt.string({ default: 'world' }),
|
|
59
|
-
* level: opt.enum(['low', 'medium', 'high']
|
|
80
|
+
* level: opt.enum(['low', 'medium', 'high']),
|
|
60
81
|
* });
|
|
61
82
|
* ```
|
|
62
83
|
*/
|
|
@@ -71,34 +92,12 @@ export const opt = {
|
|
|
71
92
|
...props,
|
|
72
93
|
}),
|
|
73
94
|
/**
|
|
74
|
-
* Define a boolean option.
|
|
75
|
-
* inference.
|
|
95
|
+
* Define a boolean option.
|
|
76
96
|
*/
|
|
77
97
|
boolean: (props = {}) => ({
|
|
78
98
|
type: 'boolean',
|
|
79
99
|
...props,
|
|
80
100
|
}),
|
|
81
|
-
/**
|
|
82
|
-
* Define a command with proper type inference.
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
*
|
|
86
|
-
* ```typescript
|
|
87
|
-
* const greetCmd = opt.command({
|
|
88
|
-
* description: 'Greet someone',
|
|
89
|
-
* options: opt.options({
|
|
90
|
-
* name: opt.string({ default: 'world' }),
|
|
91
|
-
* }),
|
|
92
|
-
* transforms: {
|
|
93
|
-
* values: (v) => ({ ...v, timestamp: Date.now() }),
|
|
94
|
-
* },
|
|
95
|
-
* handler: ({ values }) => {
|
|
96
|
-
* console.log(`Hello, ${values.name}! (${values.timestamp})`);
|
|
97
|
-
* },
|
|
98
|
-
* });
|
|
99
|
-
* ```
|
|
100
|
-
*/
|
|
101
|
-
command: (config) => config,
|
|
102
101
|
/**
|
|
103
102
|
* Define a count option (--verbose --verbose = 2).
|
|
104
103
|
*/
|
|
@@ -107,9 +106,7 @@ export const opt = {
|
|
|
107
106
|
...props,
|
|
108
107
|
}),
|
|
109
108
|
/**
|
|
110
|
-
* Define an enum option with string choices.
|
|
111
|
-
* a tuple of literal types automatically. Props type is preserved to enable
|
|
112
|
-
* default inference.
|
|
109
|
+
* Define an enum option with string choices.
|
|
113
110
|
*/
|
|
114
111
|
enum: (choices, props = {}) => ({
|
|
115
112
|
choices,
|
|
@@ -117,8 +114,7 @@ export const opt = {
|
|
|
117
114
|
...props,
|
|
118
115
|
}),
|
|
119
116
|
/**
|
|
120
|
-
* Define an enum positional argument with string choices.
|
|
121
|
-
* is inferred as a tuple of literal types automatically.
|
|
117
|
+
* Define an enum positional argument with string choices.
|
|
122
118
|
*/
|
|
123
119
|
enumPos: (choices, props = {}) => ({
|
|
124
120
|
choices,
|
|
@@ -126,14 +122,12 @@ export const opt = {
|
|
|
126
122
|
...props,
|
|
127
123
|
}),
|
|
128
124
|
/**
|
|
129
|
-
* Define a number option.
|
|
130
|
-
* inference.
|
|
125
|
+
* Define a number option.
|
|
131
126
|
*/
|
|
132
127
|
number: (props = {}) => ({
|
|
133
128
|
type: 'number',
|
|
134
129
|
...props,
|
|
135
130
|
}),
|
|
136
|
-
// ─── Positional Builders ───────────────────────────────────────────
|
|
137
131
|
/**
|
|
138
132
|
* Define a number positional argument.
|
|
139
133
|
*/
|
|
@@ -142,57 +136,130 @@ export const opt = {
|
|
|
142
136
|
...props,
|
|
143
137
|
}),
|
|
144
138
|
/**
|
|
145
|
-
*
|
|
146
|
-
* ones for duplicate option names. Validates that no alias conflicts exist.
|
|
139
|
+
* Create a Parser from an options schema.
|
|
147
140
|
*
|
|
148
141
|
* @example
|
|
149
142
|
*
|
|
150
143
|
* ```typescript
|
|
151
|
-
*
|
|
152
|
-
* const loggingOpts = opt.options({
|
|
144
|
+
* const parser = opt.options({
|
|
153
145
|
* verbose: opt.boolean({ aliases: ['v'] }),
|
|
154
|
-
*
|
|
155
|
-
* });
|
|
156
|
-
*
|
|
157
|
-
* // Merge multiple schemas
|
|
158
|
-
* const allOpts = opt.options(loggingOpts, ioOpts, {
|
|
159
|
-
* format: opt.enum(['json', 'yaml'] as const),
|
|
146
|
+
* name: opt.string({ default: 'world' }),
|
|
160
147
|
* });
|
|
148
|
+
* // Type: Parser<{ verbose: boolean | undefined, name: string }, []>
|
|
161
149
|
* ```
|
|
162
|
-
*
|
|
163
|
-
* @throws BargsError if multiple options use the same alias
|
|
164
150
|
*/
|
|
165
151
|
options: optionsImpl,
|
|
166
152
|
/**
|
|
167
|
-
*
|
|
153
|
+
* Define a string option.
|
|
154
|
+
*/
|
|
155
|
+
string: (props = {}) => ({
|
|
156
|
+
type: 'string',
|
|
157
|
+
...props,
|
|
158
|
+
}),
|
|
159
|
+
/**
|
|
160
|
+
* Define a string positional argument.
|
|
161
|
+
*/
|
|
162
|
+
stringPos: (props = {}) => ({
|
|
163
|
+
type: 'string',
|
|
164
|
+
...props,
|
|
165
|
+
}),
|
|
166
|
+
/**
|
|
167
|
+
* Define a variadic positional (rest args).
|
|
168
|
+
*/
|
|
169
|
+
variadic: (items, props = {}) => ({
|
|
170
|
+
items,
|
|
171
|
+
type: 'variadic',
|
|
172
|
+
...props,
|
|
173
|
+
}),
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Create a Parser from positional definitions that can also merge with existing
|
|
177
|
+
* parsers.
|
|
178
|
+
*
|
|
179
|
+
* Supports two usage patterns:
|
|
180
|
+
*
|
|
181
|
+
* 1. Standalone: `pos.positionals(...)` - returns a Parser
|
|
182
|
+
* 2. Merging: `pos.positionals(...)(opt.options(...))` - merges positionals into
|
|
183
|
+
* options
|
|
184
|
+
*/
|
|
185
|
+
const positionalsImpl = (...positionals) => {
|
|
186
|
+
// Create the merge function - just passes through V2, no intersection needed
|
|
187
|
+
const merger = (parser) => {
|
|
188
|
+
// Preserve transforms from the incoming parser
|
|
189
|
+
const transformed = parser;
|
|
190
|
+
const result = {
|
|
191
|
+
...parser,
|
|
192
|
+
__brand: 'Parser',
|
|
193
|
+
__positionals: [],
|
|
194
|
+
__positionalsSchema: [...parser.__positionalsSchema, ...positionals],
|
|
195
|
+
};
|
|
196
|
+
if (transformed.__transform) {
|
|
197
|
+
result.__transform = transformed.__transform;
|
|
198
|
+
}
|
|
199
|
+
return result;
|
|
200
|
+
};
|
|
201
|
+
// Add Parser properties to the function
|
|
202
|
+
// Use empty object {} instead of Record<string, never> for better intersection behavior
|
|
203
|
+
const parserProps = {
|
|
204
|
+
__brand: 'Parser',
|
|
205
|
+
__optionsSchema: {},
|
|
206
|
+
__positionals: [],
|
|
207
|
+
__positionalsSchema: positionals,
|
|
208
|
+
__values: {},
|
|
209
|
+
};
|
|
210
|
+
return Object.assign(merger, parserProps);
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Namespaced positional builders.
|
|
214
|
+
*
|
|
215
|
+
* @example
|
|
216
|
+
*
|
|
217
|
+
* ```typescript
|
|
218
|
+
* import { pos } from 'bargs';
|
|
219
|
+
*
|
|
220
|
+
* const parser = pos.positionals(
|
|
221
|
+
* pos.string({ name: 'input', required: true }),
|
|
222
|
+
* pos.string({ name: 'output' }),
|
|
223
|
+
* );
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
export const pos = {
|
|
227
|
+
/**
|
|
228
|
+
* Define an enum positional argument with string choices.
|
|
229
|
+
*/
|
|
230
|
+
enum: (choices, props = {}) => ({
|
|
231
|
+
choices,
|
|
232
|
+
type: 'enum',
|
|
233
|
+
...props,
|
|
234
|
+
}),
|
|
235
|
+
/**
|
|
236
|
+
* Define a number positional argument.
|
|
237
|
+
*/
|
|
238
|
+
number: (props = {}) => ({
|
|
239
|
+
type: 'number',
|
|
240
|
+
...props,
|
|
241
|
+
}),
|
|
242
|
+
/**
|
|
243
|
+
* Create a Parser from positional definitions.
|
|
168
244
|
*
|
|
169
245
|
* @example
|
|
170
246
|
*
|
|
171
247
|
* ```typescript
|
|
172
|
-
* const
|
|
173
|
-
*
|
|
174
|
-
*
|
|
248
|
+
* const parser = pos.positionals(
|
|
249
|
+
* pos.string({ name: 'input', required: true }),
|
|
250
|
+
* pos.string({ name: 'output' }),
|
|
175
251
|
* );
|
|
252
|
+
* // Type: Parser<{}, readonly [string, string | undefined]>
|
|
176
253
|
* ```
|
|
177
254
|
*/
|
|
178
255
|
positionals: positionalsImpl,
|
|
179
|
-
/**
|
|
180
|
-
* Define a string option. Props type is preserved to enable default
|
|
181
|
-
* inference.
|
|
182
|
-
*/
|
|
183
|
-
string: (props = {}) => ({
|
|
184
|
-
type: 'string',
|
|
185
|
-
...props,
|
|
186
|
-
}),
|
|
187
|
-
// ─── Composition ───────────────────────────────────────────────────
|
|
188
256
|
/**
|
|
189
257
|
* Define a string positional argument.
|
|
190
258
|
*/
|
|
191
|
-
|
|
259
|
+
string: (props = {}) => ({
|
|
192
260
|
type: 'string',
|
|
193
261
|
...props,
|
|
194
262
|
}),
|
|
195
|
-
// ─── Command Builder ───────────────────────────────────────────────
|
|
196
263
|
/**
|
|
197
264
|
* Define a variadic positional (rest args).
|
|
198
265
|
*/
|
package/dist/opt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opt.js","sourceRoot":"","sources":["../src/opt.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"opt.js","sourceRoot":"","sources":["../src/opt.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.cjs
CHANGED
|
@@ -7,93 +7,12 @@
|
|
|
7
7
|
* - Building `parseArgs` configuration from bargs option schemas
|
|
8
8
|
* - Coercing parsed string values to their declared types (number, enum, etc.)
|
|
9
9
|
* - Processing positional arguments including variadic rest args
|
|
10
|
-
* - Running handler functions (sync or async) after successful parsing
|
|
11
|
-
* - Supporting both simple CLIs and command-based CLIs with subcommand dispatch
|
|
12
10
|
*
|
|
13
11
|
* @packageDocumentation
|
|
14
12
|
*/
|
|
15
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.
|
|
17
|
-
exports.runSyncTransforms = runSyncTransforms;
|
|
18
|
-
exports.runTransforms = runTransforms;
|
|
14
|
+
exports.parseSimple = void 0;
|
|
19
15
|
const node_util_1 = require("node:util");
|
|
20
|
-
const errors_js_1 = require("./errors.cjs");
|
|
21
|
-
/**
|
|
22
|
-
* Check if a value is a thenable (Promise-like). Uses duck-typing for
|
|
23
|
-
* cross-realm compatibility.
|
|
24
|
-
*/
|
|
25
|
-
const isThenable = (value) => value !== null &&
|
|
26
|
-
typeof value === 'object' &&
|
|
27
|
-
typeof value.then === 'function';
|
|
28
|
-
/**
|
|
29
|
-
* Run a handler synchronously. Throws if handler returns a thenable.
|
|
30
|
-
*/
|
|
31
|
-
const runSyncHandler = (handler, result) => {
|
|
32
|
-
const maybePromise = handler(result);
|
|
33
|
-
if (isThenable(maybePromise)) {
|
|
34
|
-
throw new errors_js_1.BargsError('Handler returned a thenable. Use bargsAsync() for async handlers.');
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
exports.runSyncHandler = runSyncHandler;
|
|
38
|
-
/**
|
|
39
|
-
* Run a handler (async).
|
|
40
|
-
*/
|
|
41
|
-
const runHandler = async (handler, result) => {
|
|
42
|
-
await handler(result);
|
|
43
|
-
};
|
|
44
|
-
exports.runHandler = runHandler;
|
|
45
|
-
/**
|
|
46
|
-
* Run transforms synchronously. Throws if any transform returns a thenable.
|
|
47
|
-
*/
|
|
48
|
-
function runSyncTransforms(transforms, values, positionals) {
|
|
49
|
-
if (!transforms) {
|
|
50
|
-
return { positionals, values };
|
|
51
|
-
}
|
|
52
|
-
// Apply values transform
|
|
53
|
-
const transformedValues = transforms.values
|
|
54
|
-
? (() => {
|
|
55
|
-
const result = transforms.values(values);
|
|
56
|
-
if (isThenable(result)) {
|
|
57
|
-
throw new errors_js_1.BargsError('Transform returned a thenable. Use bargsAsync() for async transforms.');
|
|
58
|
-
}
|
|
59
|
-
return result;
|
|
60
|
-
})()
|
|
61
|
-
: values;
|
|
62
|
-
// Apply positionals transform
|
|
63
|
-
const transformedPositionals = transforms.positionals
|
|
64
|
-
? (() => {
|
|
65
|
-
const result = transforms.positionals(positionals);
|
|
66
|
-
if (isThenable(result)) {
|
|
67
|
-
throw new errors_js_1.BargsError('Transform returned a thenable. Use bargsAsync() for async transforms.');
|
|
68
|
-
}
|
|
69
|
-
return result;
|
|
70
|
-
})()
|
|
71
|
-
: positionals;
|
|
72
|
-
return {
|
|
73
|
-
positionals: transformedPositionals,
|
|
74
|
-
values: transformedValues,
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Run transforms asynchronously.
|
|
79
|
-
*/
|
|
80
|
-
async function runTransforms(transforms, values, positionals) {
|
|
81
|
-
if (!transforms) {
|
|
82
|
-
return { positionals, values };
|
|
83
|
-
}
|
|
84
|
-
// Apply values transform (await if needed)
|
|
85
|
-
const transformedValues = transforms.values
|
|
86
|
-
? await transforms.values(values)
|
|
87
|
-
: values;
|
|
88
|
-
// Apply positionals transform (await if needed)
|
|
89
|
-
const transformedPositionals = transforms.positionals
|
|
90
|
-
? await transforms.positionals(positionals)
|
|
91
|
-
: positionals;
|
|
92
|
-
return {
|
|
93
|
-
positionals: transformedPositionals,
|
|
94
|
-
values: transformedValues,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
16
|
/**
|
|
98
17
|
* Build parseArgs options config from our options schema.
|
|
99
18
|
*/
|
|
@@ -165,9 +84,6 @@ const coerceValues = (values, schema) => {
|
|
|
165
84
|
};
|
|
166
85
|
/**
|
|
167
86
|
* Coerce positional values.
|
|
168
|
-
*
|
|
169
|
-
* Note: Schema validation (variadic last, required order) is done upfront by
|
|
170
|
-
* validateConfig in bargs.ts.
|
|
171
87
|
*/
|
|
172
88
|
const coercePositionals = (positionals, schema) => {
|
|
173
89
|
const result = [];
|
|
@@ -175,7 +91,7 @@ const coercePositionals = (positionals, schema) => {
|
|
|
175
91
|
const def = schema[i];
|
|
176
92
|
const value = positionals[i];
|
|
177
93
|
if (def.type === 'variadic') {
|
|
178
|
-
// Rest of positionals
|
|
94
|
+
// Rest of positionals
|
|
179
95
|
const variadicDef = def;
|
|
180
96
|
const rest = positionals.slice(i);
|
|
181
97
|
if (variadicDef.items === 'number') {
|
|
@@ -214,8 +130,7 @@ const coercePositionals = (positionals, schema) => {
|
|
|
214
130
|
return result;
|
|
215
131
|
};
|
|
216
132
|
/**
|
|
217
|
-
* Parse arguments for a simple CLI (no commands).
|
|
218
|
-
* parses, does not run handlers.
|
|
133
|
+
* Parse arguments for a simple CLI (no commands).
|
|
219
134
|
*/
|
|
220
135
|
const parseSimple = (config) => {
|
|
221
136
|
const { args = process.argv.slice(2), options: optionsSchema = {}, positionals: positionalsSchema = [], } = config;
|
|
@@ -232,151 +147,9 @@ const parseSimple = (config) => {
|
|
|
232
147
|
const coercedValues = coerceValues(values, optionsSchema);
|
|
233
148
|
const coercedPositionals = coercePositionals(positionals, positionalsSchema);
|
|
234
149
|
return {
|
|
235
|
-
command: undefined,
|
|
236
150
|
positionals: coercedPositionals,
|
|
237
151
|
values: coercedValues,
|
|
238
152
|
};
|
|
239
153
|
};
|
|
240
154
|
exports.parseSimple = parseSimple;
|
|
241
|
-
/**
|
|
242
|
-
* Core command parsing logic (sync, no handler execution). Returns the parsed
|
|
243
|
-
* result and the handler to run.
|
|
244
|
-
*/
|
|
245
|
-
const parseCommandsCore = (config) => {
|
|
246
|
-
const { args = process.argv.slice(2), commands, defaultHandler, options: globalOptions = {}, } = config;
|
|
247
|
-
const commandsRecord = commands;
|
|
248
|
-
// Find command name (first non-flag argument)
|
|
249
|
-
const commandIndex = args.findIndex((arg) => !arg.startsWith('-'));
|
|
250
|
-
const commandName = commandIndex >= 0 ? args[commandIndex] : undefined;
|
|
251
|
-
const remainingArgs = commandName
|
|
252
|
-
? [...args.slice(0, commandIndex), ...args.slice(commandIndex + 1)]
|
|
253
|
-
: args;
|
|
254
|
-
// No command specified
|
|
255
|
-
if (!commandName) {
|
|
256
|
-
if (typeof defaultHandler === 'string') {
|
|
257
|
-
// Use named default command (recursive)
|
|
258
|
-
return parseCommandsCore({
|
|
259
|
-
...config,
|
|
260
|
-
args: [defaultHandler, ...args],
|
|
261
|
-
defaultHandler: undefined,
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
else if (typeof defaultHandler === 'function') {
|
|
265
|
-
// Parse global options only
|
|
266
|
-
const parseArgsOptions = buildParseArgsConfig(globalOptions);
|
|
267
|
-
const { values } = (0, node_util_1.parseArgs)({
|
|
268
|
-
allowPositionals: false,
|
|
269
|
-
args: remainingArgs,
|
|
270
|
-
options: parseArgsOptions,
|
|
271
|
-
strict: true,
|
|
272
|
-
});
|
|
273
|
-
const coercedValues = coerceValues(values, globalOptions);
|
|
274
|
-
const result = {
|
|
275
|
-
command: undefined,
|
|
276
|
-
positionals: [],
|
|
277
|
-
values: coercedValues,
|
|
278
|
-
};
|
|
279
|
-
return {
|
|
280
|
-
commandTransforms: undefined,
|
|
281
|
-
handler: defaultHandler,
|
|
282
|
-
result,
|
|
283
|
-
topLevelTransforms: config.transforms,
|
|
284
|
-
};
|
|
285
|
-
}
|
|
286
|
-
else {
|
|
287
|
-
throw new errors_js_1.HelpError('No command specified.');
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
// Find command config
|
|
291
|
-
const command = commandsRecord[commandName];
|
|
292
|
-
if (!command) {
|
|
293
|
-
throw new errors_js_1.HelpError(`Unknown command: ${commandName}`);
|
|
294
|
-
}
|
|
295
|
-
// Merge global and command options
|
|
296
|
-
const commandOptions = command.options ?? {};
|
|
297
|
-
const mergedOptionsSchema = { ...globalOptions, ...commandOptions };
|
|
298
|
-
const commandPositionals = command.positionals ?? [];
|
|
299
|
-
// Build parseArgs config
|
|
300
|
-
const parseArgsOptions = buildParseArgsConfig(mergedOptionsSchema);
|
|
301
|
-
// Parse
|
|
302
|
-
const { positionals, values } = (0, node_util_1.parseArgs)({
|
|
303
|
-
allowPositionals: commandPositionals.length > 0,
|
|
304
|
-
args: remainingArgs,
|
|
305
|
-
options: parseArgsOptions,
|
|
306
|
-
strict: true,
|
|
307
|
-
});
|
|
308
|
-
// Coerce
|
|
309
|
-
const coercedValues = coerceValues(values, mergedOptionsSchema);
|
|
310
|
-
const coercedPositionals = coercePositionals(positionals, commandPositionals);
|
|
311
|
-
const result = {
|
|
312
|
-
command: commandName,
|
|
313
|
-
positionals: coercedPositionals,
|
|
314
|
-
values: coercedValues,
|
|
315
|
-
};
|
|
316
|
-
return {
|
|
317
|
-
commandTransforms: command.transforms,
|
|
318
|
-
handler: command.handler,
|
|
319
|
-
result,
|
|
320
|
-
topLevelTransforms: config.transforms,
|
|
321
|
-
};
|
|
322
|
-
};
|
|
323
|
-
/**
|
|
324
|
-
* Parse arguments for a command-based CLI (sync). Throws if any handler or
|
|
325
|
-
* transform returns a thenable.
|
|
326
|
-
*/
|
|
327
|
-
const parseCommandsSync = (config) => {
|
|
328
|
-
const { commandTransforms, handler, result, topLevelTransforms } = parseCommandsCore(config);
|
|
329
|
-
// Apply transforms: top-level first, then command-level
|
|
330
|
-
let currentValues = result.values;
|
|
331
|
-
let currentPositionals = result.positionals;
|
|
332
|
-
if (topLevelTransforms) {
|
|
333
|
-
const transformed = runSyncTransforms(topLevelTransforms, currentValues, currentPositionals);
|
|
334
|
-
currentValues = transformed.values;
|
|
335
|
-
currentPositionals = transformed.positionals;
|
|
336
|
-
}
|
|
337
|
-
if (commandTransforms) {
|
|
338
|
-
const transformed = runSyncTransforms(commandTransforms, currentValues, currentPositionals);
|
|
339
|
-
currentValues = transformed.values;
|
|
340
|
-
currentPositionals = transformed.positionals;
|
|
341
|
-
}
|
|
342
|
-
const finalResult = {
|
|
343
|
-
command: result.command,
|
|
344
|
-
positionals: currentPositionals,
|
|
345
|
-
values: currentValues,
|
|
346
|
-
};
|
|
347
|
-
if (handler) {
|
|
348
|
-
(0, exports.runSyncHandler)(handler, finalResult);
|
|
349
|
-
}
|
|
350
|
-
return finalResult;
|
|
351
|
-
};
|
|
352
|
-
exports.parseCommandsSync = parseCommandsSync;
|
|
353
|
-
/**
|
|
354
|
-
* Parse arguments for a command-based CLI (async).
|
|
355
|
-
*/
|
|
356
|
-
const parseCommandsAsync = async (config) => {
|
|
357
|
-
const { commandTransforms, handler, result, topLevelTransforms } = parseCommandsCore(config);
|
|
358
|
-
// Apply transforms: top-level first, then command-level
|
|
359
|
-
let currentValues = result.values;
|
|
360
|
-
let currentPositionals = result.positionals;
|
|
361
|
-
if (topLevelTransforms) {
|
|
362
|
-
const transformed = await runTransforms(topLevelTransforms, currentValues, currentPositionals);
|
|
363
|
-
currentValues = transformed.values;
|
|
364
|
-
currentPositionals = transformed.positionals;
|
|
365
|
-
}
|
|
366
|
-
if (commandTransforms) {
|
|
367
|
-
const transformed = await runTransforms(commandTransforms, currentValues, currentPositionals);
|
|
368
|
-
currentValues = transformed.values;
|
|
369
|
-
currentPositionals = transformed.positionals;
|
|
370
|
-
}
|
|
371
|
-
const finalResult = {
|
|
372
|
-
command: result.command,
|
|
373
|
-
positionals: currentPositionals,
|
|
374
|
-
values: currentValues,
|
|
375
|
-
};
|
|
376
|
-
if (handler) {
|
|
377
|
-
await (0, exports.runHandler)(handler, finalResult);
|
|
378
|
-
}
|
|
379
|
-
return finalResult;
|
|
380
|
-
};
|
|
381
|
-
exports.parseCommandsAsync = parseCommandsAsync;
|
|
382
155
|
//# sourceMappingURL=parser.js.map
|
package/dist/parser.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|