goke 6.3.1 → 6.3.2
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 +3 -1
- package/dist/__test__/index.test.js +23 -0
- package/dist/goke.d.ts +2 -0
- package/dist/goke.d.ts.map +1 -1
- package/dist/goke.js +6 -1
- package/package.json +1 -1
- package/src/__test__/index.test.ts +31 -0
- package/src/goke.ts +7 -1
package/README.md
CHANGED
|
@@ -525,7 +525,9 @@ When users run `--help`, deprecated options won't appear, but `--old-port 3000`
|
|
|
525
525
|
|
|
526
526
|
When using brackets in command name, angled brackets indicate required command arguments, while square brackets indicate optional arguments.
|
|
527
527
|
|
|
528
|
-
When using brackets in option name, angled brackets indicate that a string / number value is required, while square brackets indicate that the value
|
|
528
|
+
When using brackets in option name, angled brackets indicate that a string / number value is required, while square brackets indicate that the value is optional.
|
|
529
|
+
|
|
530
|
+
**Optionality is determined solely by bracket syntax, not by the schema.** `[square brackets]` makes an option optional regardless of whether the schema is `z.string()` or `z.string().optional()`. The schema's `.optional()` is never consulted for this — it only affects type coercion. This means `z.string()` with `[--name]` is treated as optional: if the flag is omitted, `options.name` is `undefined` even though the schema has no `.optional()`.
|
|
529
531
|
|
|
530
532
|
### Negated Options
|
|
531
533
|
|
|
@@ -1436,6 +1436,29 @@ describe('schema description and default extraction', () => {
|
|
|
1436
1436
|
expect(stdout.text).not.toContain('--legacy');
|
|
1437
1437
|
expect(stdout.text).not.toContain('Deprecated global');
|
|
1438
1438
|
});
|
|
1439
|
+
test('hidden commands are not shown in help output', () => {
|
|
1440
|
+
const stdout = createTestOutputStream();
|
|
1441
|
+
const cli = goke('mycli', { stdout });
|
|
1442
|
+
cli.command('visible', 'A visible command');
|
|
1443
|
+
cli.command('secret', 'A hidden command').hidden();
|
|
1444
|
+
cli.help();
|
|
1445
|
+
cli.parse(['node', 'bin', '--help'], { run: false });
|
|
1446
|
+
expect(stdout.text).toContain('visible');
|
|
1447
|
+
expect(stdout.text).toContain('A visible command');
|
|
1448
|
+
expect(stdout.text).not.toContain('secret');
|
|
1449
|
+
expect(stdout.text).not.toContain('A hidden command');
|
|
1450
|
+
});
|
|
1451
|
+
test('hidden command still parses and runs', () => {
|
|
1452
|
+
const cli = gokeTestable('mycli');
|
|
1453
|
+
let result = {};
|
|
1454
|
+
cli
|
|
1455
|
+
.command('secret', 'A hidden command')
|
|
1456
|
+
.hidden()
|
|
1457
|
+
.option('--value <v>', z.string().describe('some value'))
|
|
1458
|
+
.action((options) => { result = options; });
|
|
1459
|
+
cli.parse(['node', 'bin', 'secret', '--value', 'hello']);
|
|
1460
|
+
expect(result.value).toBe('hello');
|
|
1461
|
+
});
|
|
1439
1462
|
});
|
|
1440
1463
|
describe('helpText()', () => {
|
|
1441
1464
|
test('returns help string without printing', () => {
|
package/dist/goke.d.ts
CHANGED
|
@@ -101,6 +101,7 @@ declare class Command {
|
|
|
101
101
|
examples: CommandExample[];
|
|
102
102
|
helpCallback?: HelpCallback;
|
|
103
103
|
globalCommand?: GlobalCommand;
|
|
104
|
+
_hidden?: boolean;
|
|
104
105
|
constructor(rawName: string, description: string, config: CommandConfig | undefined, cli: Goke<any>);
|
|
105
106
|
usage(text: string): this;
|
|
106
107
|
allowUnknownOptions(): this;
|
|
@@ -128,6 +129,7 @@ declare class Command {
|
|
|
128
129
|
};
|
|
129
130
|
option(rawName: string, descriptionOrSchema?: string | StandardJSONSchemaV1): this;
|
|
130
131
|
alias(name: string): this;
|
|
132
|
+
hidden(): this;
|
|
131
133
|
action(callback: (...args: any[]) => any): this;
|
|
132
134
|
isMatched(args: string[]): {
|
|
133
135
|
matched: boolean;
|
package/dist/goke.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"goke.d.ts","sourceRoot":"","sources":["../src/goke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAIrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAkNvD,cAAM,MAAM;IAwBD,OAAO,EAAE,MAAM;IAvBxB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,8BAA8B;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,oBAAoB,CAAA;IAC7B,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;;;;OAKG;gBAEM,OAAO,EAAE,MAAM,EACtB,mBAAmB,CAAC,EAAE,MAAM,GAAG,oBAAoB;CAyCtD;AAMD;;;GAGG;AACH,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,IAC7B,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,EAAE,GAC7B,GAAG,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,GACjC,CAAC,CAAA;AAEP;;;;;GAKG;AACH,KAAK,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAErC,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAClE,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,IAAI,KAAK,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,GAClE,CAAC,SAAS,GAAG,MAAM,KAAK,MAAM,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,GACtD,MAAM,CAAA;AAER;;GAEG;AACH,KAAK,gBAAgB,CAAC,CAAC,SAAS,MAAM,IACpC,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,GAAG,GAAG,KAAK,GACxC,IAAI,CAAA;AAEN;;GAEG;AACH,KAAK,iBAAiB,CAAC,CAAC,IACtB,CAAC,SAAS;IAAE,QAAQ,CAAC,WAAW,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,OAAO,CAAA;AAErG;;;;GAIG;AACH,KAAK,WAAW,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,IAC7C,gBAAgB,CAAC,OAAO,CAAC,SAAS,IAAI,GAClC;KAAG,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC;CAAE,GACjE;KAAG,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;CAAE,CAAA;AAEtE,UAAU,UAAU;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED,UAAU,aAAa;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC;AAED,KAAK,YAAY,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,GAAG,WAAW,EAAE,CAAA;AAErE,KAAK,cAAc,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,MAAM,CAAA;AAExD,cAAM,OAAO;
|
|
1
|
+
{"version":3,"file":"goke.d.ts","sourceRoot":"","sources":["../src/goke.ts"],"names":[],"mappings":"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"}
|
package/dist/goke.js
CHANGED
|
@@ -255,6 +255,7 @@ class Command {
|
|
|
255
255
|
examples;
|
|
256
256
|
helpCallback;
|
|
257
257
|
globalCommand;
|
|
258
|
+
_hidden;
|
|
258
259
|
constructor(rawName, description, config = {}, cli) {
|
|
259
260
|
this.rawName = rawName;
|
|
260
261
|
this.description = description;
|
|
@@ -296,6 +297,10 @@ class Command {
|
|
|
296
297
|
this.aliasNames.push(name);
|
|
297
298
|
return this;
|
|
298
299
|
}
|
|
300
|
+
hidden() {
|
|
301
|
+
this._hidden = true;
|
|
302
|
+
return this;
|
|
303
|
+
}
|
|
299
304
|
action(callback) {
|
|
300
305
|
this.commandAction = callback;
|
|
301
306
|
return this;
|
|
@@ -353,7 +358,7 @@ class Command {
|
|
|
353
358
|
const showCommands = (this.isGlobalCommand || this.isDefaultCommand) && commands.length > 0;
|
|
354
359
|
const terminalWidth = Math.max(this.cli.columns, 40);
|
|
355
360
|
if (showCommands) {
|
|
356
|
-
const commandRows = commands.map((command) => {
|
|
361
|
+
const commandRows = commands.filter((command) => !command._hidden).map((command) => {
|
|
357
362
|
const displayName = command.rawName.trim() === '' ? name : command.rawName;
|
|
358
363
|
// Hide deprecated options from subcommand help output
|
|
359
364
|
const displayOptions = command.isDefaultCommand ? [] : command.options.filter((o) => !o.deprecated);
|
package/package.json
CHANGED
|
@@ -1836,6 +1836,37 @@ describe('schema description and default extraction', () => {
|
|
|
1836
1836
|
expect(stdout.text).not.toContain('--legacy')
|
|
1837
1837
|
expect(stdout.text).not.toContain('Deprecated global')
|
|
1838
1838
|
})
|
|
1839
|
+
|
|
1840
|
+
test('hidden commands are not shown in help output', () => {
|
|
1841
|
+
const stdout = createTestOutputStream()
|
|
1842
|
+
const cli = goke('mycli', { stdout })
|
|
1843
|
+
|
|
1844
|
+
cli.command('visible', 'A visible command')
|
|
1845
|
+
cli.command('secret', 'A hidden command').hidden()
|
|
1846
|
+
|
|
1847
|
+
cli.help()
|
|
1848
|
+
cli.parse(['node', 'bin', '--help'], { run: false })
|
|
1849
|
+
|
|
1850
|
+
expect(stdout.text).toContain('visible')
|
|
1851
|
+
expect(stdout.text).toContain('A visible command')
|
|
1852
|
+
expect(stdout.text).not.toContain('secret')
|
|
1853
|
+
expect(stdout.text).not.toContain('A hidden command')
|
|
1854
|
+
})
|
|
1855
|
+
|
|
1856
|
+
test('hidden command still parses and runs', () => {
|
|
1857
|
+
const cli = gokeTestable('mycli')
|
|
1858
|
+
|
|
1859
|
+
let result: any = {}
|
|
1860
|
+
cli
|
|
1861
|
+
.command('secret', 'A hidden command')
|
|
1862
|
+
.hidden()
|
|
1863
|
+
.option('--value <v>', z.string().describe('some value'))
|
|
1864
|
+
.action((options) => { result = options })
|
|
1865
|
+
|
|
1866
|
+
cli.parse(['node', 'bin', 'secret', '--value', 'hello'])
|
|
1867
|
+
|
|
1868
|
+
expect(result.value).toBe('hello')
|
|
1869
|
+
})
|
|
1839
1870
|
})
|
|
1840
1871
|
|
|
1841
1872
|
describe('helpText()', () => {
|
package/src/goke.ts
CHANGED
|
@@ -373,6 +373,7 @@ class Command {
|
|
|
373
373
|
examples: CommandExample[]
|
|
374
374
|
helpCallback?: HelpCallback
|
|
375
375
|
globalCommand?: GlobalCommand
|
|
376
|
+
_hidden?: boolean
|
|
376
377
|
|
|
377
378
|
constructor(
|
|
378
379
|
public rawName: string,
|
|
@@ -445,6 +446,11 @@ class Command {
|
|
|
445
446
|
return this
|
|
446
447
|
}
|
|
447
448
|
|
|
449
|
+
hidden() {
|
|
450
|
+
this._hidden = true
|
|
451
|
+
return this
|
|
452
|
+
}
|
|
453
|
+
|
|
448
454
|
action(callback: (...args: any[]) => any) {
|
|
449
455
|
this.commandAction = callback
|
|
450
456
|
return this
|
|
@@ -520,7 +526,7 @@ class Command {
|
|
|
520
526
|
const terminalWidth = Math.max(this.cli.columns, 40)
|
|
521
527
|
|
|
522
528
|
if (showCommands) {
|
|
523
|
-
const commandRows = commands.map((command) => {
|
|
529
|
+
const commandRows = commands.filter((command) => !command._hidden).map((command) => {
|
|
524
530
|
const displayName = command.rawName.trim() === '' ? name : command.rawName
|
|
525
531
|
// Hide deprecated options from subcommand help output
|
|
526
532
|
const displayOptions = command.isDefaultCommand ? [] : command.options.filter((o) => !o.deprecated)
|