cli-forge 1.0.2 → 1.2.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.
Files changed (34) hide show
  1. package/dist/bin/cli.d.ts +16 -1
  2. package/dist/bin/commands/generate-documentation.d.ts +19 -2
  3. package/dist/bin/commands/generate-documentation.js +135 -0
  4. package/dist/bin/commands/generate-documentation.js.map +1 -1
  5. package/dist/index.d.ts +1 -0
  6. package/dist/lib/composable-builder.d.ts +5 -1
  7. package/dist/lib/composable-builder.js +24 -3
  8. package/dist/lib/composable-builder.js.map +1 -1
  9. package/dist/lib/documentation.d.ts +6 -1
  10. package/dist/lib/documentation.js +35 -1
  11. package/dist/lib/documentation.js.map +1 -1
  12. package/dist/lib/format-help.js +20 -6
  13. package/dist/lib/format-help.js.map +1 -1
  14. package/dist/lib/interactive-shell.js +2 -0
  15. package/dist/lib/interactive-shell.js.map +1 -1
  16. package/dist/lib/internal-cli.d.ts +26 -5
  17. package/dist/lib/internal-cli.js +166 -38
  18. package/dist/lib/internal-cli.js.map +1 -1
  19. package/dist/lib/public-api.d.ts +59 -3
  20. package/dist/lib/public-api.js.map +1 -1
  21. package/package.json +2 -2
  22. package/src/bin/commands/generate-documentation.spec.ts +17 -0
  23. package/src/bin/commands/generate-documentation.ts +165 -2
  24. package/src/index.ts +1 -0
  25. package/src/lib/cli-localization.spec.ts +197 -0
  26. package/src/lib/composable-builder.spec.ts +73 -0
  27. package/src/lib/composable-builder.ts +26 -5
  28. package/src/lib/documentation.ts +49 -2
  29. package/src/lib/format-help.ts +24 -8
  30. package/src/lib/interactive-shell.ts +2 -0
  31. package/src/lib/internal-cli.spec.ts +720 -1
  32. package/src/lib/internal-cli.ts +223 -52
  33. package/src/lib/public-api.ts +80 -9
  34. package/tsconfig.lib.json.tsbuildinfo +1 -1
@@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InternalCLI = void 0;
4
4
  /* eslint-disable @typescript-eslint/ban-types */
5
5
  const parser_1 = require("@cli-forge/parser");
6
- const utils_1 = require("./utils");
7
- const interactive_shell_1 = require("./interactive-shell");
8
6
  const cli_option_groups_1 = require("./cli-option-groups");
9
7
  const format_help_1 = require("./format-help");
8
+ const interactive_shell_1 = require("./interactive-shell");
9
+ const utils_1 = require("./utils");
10
10
  /**
11
11
  * The base class for a CLI application. This class is used to define the structure of the CLI.
12
12
  *
@@ -55,7 +55,8 @@ class InternalCLI {
55
55
  }
56
56
  },
57
57
  ];
58
- registeredMiddleware = [];
58
+ registeredMiddleware = new Set();
59
+ registeredInitHooks = [];
59
60
  /**
60
61
  * A list of option groups that have been registered with the CLI. Grouped Options are displayed together in the help text.
61
62
  *
@@ -120,7 +121,7 @@ class InternalCLI {
120
121
  }
121
122
  withRootCommandConfiguration(configuration) {
122
123
  this.configuration = configuration;
123
- this.requiresCommand = false;
124
+ this.requiresCommand = configuration.handler ? false : 'IMPLICIT';
124
125
  return this;
125
126
  }
126
127
  command(keyOrCommand, options) {
@@ -139,7 +140,14 @@ class InternalCLI {
139
140
  }
140
141
  const cmd = new InternalCLI(key).withRootCommandConfiguration(options);
141
142
  cmd._parent = this;
143
+ // Get localized command name
144
+ const localizedKey = this.getLocalizedCommandName(key);
145
+ // Register under the default key
142
146
  this.registeredCommands[key] = cmd;
147
+ // If localized name is different, also register under localized name as an alias
148
+ if (localizedKey !== key) {
149
+ this.registeredCommands[localizedKey] = cmd;
150
+ }
143
151
  if (options.alias) {
144
152
  for (const alias of options.alias) {
145
153
  this.registeredCommands[alias] = cmd;
@@ -148,6 +156,10 @@ class InternalCLI {
148
156
  }
149
157
  else if (keyOrCommand instanceof InternalCLI) {
150
158
  const cmd = keyOrCommand;
159
+ if (cmd.name === '$0') {
160
+ this.withRootCommandConfiguration(cmd.configuration);
161
+ return this;
162
+ }
151
163
  cmd._parent = this;
152
164
  this.registeredCommands[cmd.name] = cmd;
153
165
  if (cmd.configuration?.alias) {
@@ -165,16 +177,7 @@ class InternalCLI {
165
177
  commands(...a0) {
166
178
  const commands = a0.flat();
167
179
  for (const val of commands) {
168
- if (val instanceof InternalCLI) {
169
- val._parent = this;
170
- this.registeredCommands[val.name] = val;
171
- // Include any options that were defined via cli(...).option() instead of via builder
172
- this.parser.augment(val.parser);
173
- }
174
- else {
175
- const { name, ...configuration } = val;
176
- this.command(name, configuration);
177
- }
180
+ this.command(val);
178
181
  }
179
182
  return this;
180
183
  }
@@ -206,10 +209,31 @@ class InternalCLI {
206
209
  }
207
210
  return this;
208
211
  }
212
+ localize(dictionaryOrFn, locale) {
213
+ if (typeof dictionaryOrFn === 'function') {
214
+ this.parser.localize(dictionaryOrFn);
215
+ }
216
+ else {
217
+ this.parser.localize(dictionaryOrFn, locale);
218
+ }
219
+ return this;
220
+ }
221
+ /**
222
+ * Gets the localized display name for a command key.
223
+ * @param key The command key
224
+ * @returns The localized command name, or the original key if not localized
225
+ */
226
+ getLocalizedCommandName(key) {
227
+ return this.parser.getDisplayKey(key);
228
+ }
209
229
  demandCommand() {
210
230
  this.requiresCommand = 'EXPLICIT';
211
231
  return this;
212
232
  }
233
+ strict(enable = true) {
234
+ this.parser.options.strict = enable;
235
+ return this;
236
+ }
213
237
  usage(usageText) {
214
238
  this.configuration ??= {};
215
239
  this.configuration.usage = usageText;
@@ -239,26 +263,30 @@ class InternalCLI {
239
263
  console.log(this.formatHelp());
240
264
  }
241
265
  middleware(callback) {
242
- this.registeredMiddleware.push(callback);
266
+ this.registeredMiddleware.add(callback);
243
267
  // If middleware returns void, TArgs doesn't change...
244
268
  // If it returns something, we need to merge it into TArgs...
245
269
  // that's not here though, its where we apply the middleware results.
246
270
  return this;
247
271
  }
272
+ init(callback) {
273
+ this.registeredInitHooks.push(callback);
274
+ return this;
275
+ }
248
276
  /**
249
277
  * Runs the current command.
250
278
  * @param cmd The command to run.
251
279
  * @param args The arguments to pass to the command.
252
280
  */
253
- async runCommand(args, originalArgV) {
254
- const middlewares = [
255
- ...this.registeredMiddleware,
256
- ];
281
+ async runCommand(args, originalArgV, executedMiddleware) {
282
+ const middlewares = new Set(this.registeredMiddleware);
257
283
  // eslint-disable-next-line @typescript-eslint/no-this-alias
258
284
  let cmd = this;
259
285
  for (const command of this.commandChain) {
260
286
  cmd = cmd.registeredCommands[command];
261
- middlewares.push(...cmd.registeredMiddleware);
287
+ for (const mw of cmd.registeredMiddleware) {
288
+ middlewares.add(mw);
289
+ }
262
290
  }
263
291
  try {
264
292
  if (cmd.requiresCommand) {
@@ -266,15 +294,18 @@ class InternalCLI {
266
294
  }
267
295
  if (cmd.configuration?.handler) {
268
296
  for (const middleware of middlewares) {
297
+ if (executedMiddleware?.has(middleware))
298
+ continue;
269
299
  const middlewareResult = await middleware(args);
270
300
  if (middlewareResult !== void 0 &&
271
301
  typeof middlewareResult === 'object') {
272
302
  args = middlewareResult;
273
303
  }
274
304
  }
275
- return cmd.configuration.handler(args, {
305
+ await cmd.configuration.handler(args, {
276
306
  command: cmd,
277
307
  });
308
+ return args;
278
309
  }
279
310
  else {
280
311
  // We can treat a command as a subshell if it has subcommands
@@ -283,6 +314,12 @@ class InternalCLI {
283
314
  // If we're not in a TTY, we can't run an interactive shell...
284
315
  // Maybe we should warn here?
285
316
  }
317
+ else if (args.unmatched.length > 0) {
318
+ // If there are unmatched args, we don't run an interactive shell...
319
+ // this could represent a user misspelling a subcommand so it gets rather confusing.
320
+ console.warn(`Warning: Unrecognized command or arguments: ${args.unmatched.join(' ')}`);
321
+ cmd.printHelp();
322
+ }
286
323
  else if (!interactive_shell_1.INTERACTIVE_SHELL) {
287
324
  const tui = new interactive_shell_1.InteractiveShell(this, {
288
325
  prependArgs: originalArgV,
@@ -307,6 +344,7 @@ class InternalCLI {
307
344
  console.error(e);
308
345
  this.printHelp();
309
346
  }
347
+ return args;
310
348
  }
311
349
  getChildren() {
312
350
  // Return a copy of registered commands, excluding aliases (same command registered under different keys)
@@ -433,7 +471,13 @@ class InternalCLI {
433
471
  chain.unshift(current);
434
472
  current = current._parent;
435
473
  }
436
- return chain.flatMap((c) => c.registeredMiddleware);
474
+ const seen = new Set();
475
+ for (const c of chain) {
476
+ for (const mw of c.registeredMiddleware) {
477
+ seen.add(mw);
478
+ }
479
+ }
480
+ return [...seen];
437
481
  }
438
482
  enableInteractiveShell() {
439
483
  if (this.requiresCommand === 'EXPLICIT') {
@@ -490,12 +534,14 @@ class InternalCLI {
490
534
  : {
491
535
  label: labelOrConfigObject,
492
536
  keys: keys,
493
- sortOrder: Object.keys(this.registeredOptionGroups).length,
494
537
  };
495
538
  if (!config.keys) {
496
539
  throw new Error('keys must be provided when calling `group`.');
497
540
  }
498
- this.registeredOptionGroups.push(config);
541
+ this.registeredOptionGroups.push({
542
+ ...config,
543
+ sortOrder: config.sortOrder ?? Object.keys(this.registeredOptionGroups).length,
544
+ });
499
545
  return this;
500
546
  }
501
547
  config(provider) {
@@ -503,18 +549,108 @@ class InternalCLI {
503
549
  return this;
504
550
  }
505
551
  /**
506
- * Parses argv and executes the CLI
552
+ * Parses argv and executes the CLI.
553
+ *
554
+ * Execution proceeds in two phases:
555
+ *
556
+ * **Discovery loop** (per command level): builder → parse (non-strict,
557
+ * no validation) → merge → middleware → init hooks → find next
558
+ * subcommand in unmatched tokens → repeat.
559
+ *
560
+ * **Final parse + execution**: parse (with validation, seeded with
561
+ * accumulated args) → help/version check → handler. Middleware that
562
+ * already ran during discovery is skipped.
563
+ *
507
564
  * @param args argv. Defaults to process.argv.slice(2)
508
565
  * @returns Promise that resolves when the handler completes.
509
566
  */
510
567
  forge = (args = (0, parser_1.hideBin)(process.argv)) => this.withErrorHandlers(async () => {
511
- // Parsing the args does two things:
512
- // - builds argv to pass to handler
513
- // - fills the command chain + registers commands
514
568
  let argv;
515
569
  let validationFailedError;
570
+ // Run root builder (may register options, init hooks, commands)
571
+ this.configuration?.builder?.(this);
572
+ // Merge helper: accumulate defined values without overwriting
573
+ const mergeNew = (target, source) => {
574
+ for (const [key, value] of Object.entries(source)) {
575
+ if (key !== 'unmatched' && value !== undefined && target[key] === undefined) {
576
+ target[key] = value;
577
+ }
578
+ }
579
+ };
580
+ // Iterative command discovery with init hooks.
581
+ // Each level: non-strict parse filtered args → run middleware
582
+ // → run init hooks → find next command in unmatched tokens
583
+ // → filter down. Builders stay lazy.
584
+ let currentArgs = [...args];
585
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
586
+ let currentCmd = this;
587
+ const mergedArgs = {};
588
+ const executedMiddleware = new Set();
589
+ // eslint-disable-next-line no-constant-condition
590
+ while (true) {
591
+ // Non-strict parse to get current arg values for init hooks.
592
+ // Seeded with mergedArgs so required options parsed at earlier
593
+ // levels satisfy validation.
594
+ const parsed = this.parser
595
+ .clone({
596
+ ...this.parser.options,
597
+ unmatchedParser: () => false,
598
+ strict: false,
599
+ validate: false,
600
+ })
601
+ .parse(currentArgs, mergedArgs);
602
+ mergeNew(mergedArgs, parsed);
603
+ // Run middleware for this command level before init hooks,
604
+ // so init hooks can see middleware-transformed args.
605
+ for (const mw of currentCmd.registeredMiddleware) {
606
+ if (!executedMiddleware.has(mw)) {
607
+ executedMiddleware.add(mw);
608
+ const result = await mw(mergedArgs);
609
+ if (result !== void 0 && typeof result === 'object') {
610
+ Object.assign(mergedArgs, result);
611
+ }
612
+ }
613
+ }
614
+ // Run init hooks with the full accumulated args
615
+ for (const hook of currentCmd.registeredInitHooks) {
616
+ await hook(currentCmd, mergedArgs);
617
+ }
618
+ // Find the next command in unmatched tokens
619
+ const unmatched = parsed.unmatched ?? [];
620
+ let nextCmd = null;
621
+ const remainingArgs = [];
622
+ for (const token of unmatched) {
623
+ if (!nextCmd && !token.startsWith('-')) {
624
+ const cmd = currentCmd.registeredCommands[token];
625
+ if (cmd && cmd.configuration) {
626
+ cmd.parser = this.parser;
627
+ cmd.configuration.builder?.(cmd);
628
+ this.commandChain.push(token);
629
+ nextCmd = cmd;
630
+ continue;
631
+ }
632
+ }
633
+ remainingArgs.push(token);
634
+ }
635
+ if (!nextCmd) {
636
+ currentArgs = unmatched;
637
+ break;
638
+ }
639
+ currentArgs = remainingArgs;
640
+ currentCmd = nextCmd;
641
+ }
642
+ // All builders and init hooks have run. The parser now has
643
+ // all options registered. Parse the remaining unmatched tokens
644
+ // seeded with the accumulated values from the discovery loop.
645
+ // The alreadyParsed values ensure proper required-option
646
+ // validation and prevent positional re-consumption.
516
647
  try {
517
- argv = this.parser.parse(args);
648
+ argv = this.parser
649
+ .clone({
650
+ ...this.parser.options,
651
+ unmatchedParser: () => false,
652
+ })
653
+ .parse(currentArgs, mergedArgs);
518
654
  }
519
655
  catch (e) {
520
656
  if (e instanceof parser_1.ValidationFailedError) {
@@ -525,11 +661,6 @@ class InternalCLI {
525
661
  throw e;
526
662
  }
527
663
  }
528
- // eslint-disable-next-line @typescript-eslint/no-this-alias
529
- let currentCommand = this;
530
- for (const command of this.commandChain) {
531
- currentCommand = currentCommand.registeredCommands[command];
532
- }
533
664
  if (argv.version) {
534
665
  this.versionHandler();
535
666
  return argv;
@@ -541,10 +672,7 @@ class InternalCLI {
541
672
  else if (validationFailedError) {
542
673
  throw validationFailedError;
543
674
  }
544
- const finalArgV = this.commandChain.length === 0 && this.configuration?.builder
545
- ? (this.configuration.builder?.(this)).parser.parse(args)
546
- : argv;
547
- await this.runCommand(finalArgV, args);
675
+ const finalArgV = await this.runCommand(argv, args, executedMiddleware);
548
676
  return finalArgV;
549
677
  });
550
678
  getParser() {
@@ -1 +1 @@
1
- {"version":3,"file":"internal-cli.js","sourceRoot":"","sources":["../../src/lib/internal-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal-cli.js","sourceRoot":"","sources":["../../src/lib/internal-cli.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type ConfigurationFiles, OptionConfig, OptionConfigToType, ParsedArgs, EnvOptionConfig, ObjectOptionConfig, StringOptionConfig, NumberOptionConfig, BooleanOptionConfig, ArrayOptionConfig, ResolveProperties, WithOptional, MakeUndefinedPropertiesOptional } from '@cli-forge/parser';
1
+ import { ArrayOptionConfig, BooleanOptionConfig, type ConfigurationFiles, EnvOptionConfig, LocalizationDictionary, LocalizationFunction, MakeUndefinedPropertiesOptional, NumberOptionConfig, ObjectOptionConfig, OptionConfig, OptionConfigToType, ParsedArgs, ResolveProperties, StringOptionConfig, WithOptional } from '@cli-forge/parser';
2
2
  import { InternalCLI } from './internal-cli';
3
3
  /**
4
4
  * Extracts the command name from a Command type.
@@ -154,6 +154,45 @@ export interface CLI<TArgs extends ParsedArgs = ParsedArgs, THandlerReturn = voi
154
154
  */
155
155
  env(prefix?: string): CLI<TArgs, THandlerReturn, TChildren, TParent>;
156
156
  env(options: EnvOptionConfig): CLI<TArgs, THandlerReturn, TChildren, TParent>;
157
+ /**
158
+ * Sets up localization for option keys and other text.
159
+ * When localization is enabled, option keys will be displayed in the specified locale in help text and documentation,
160
+ * and both the default and localized keys will be accepted when parsing arguments.
161
+ *
162
+ * @param dictionary The localization dictionary mapping keys to their translations
163
+ * @param locale The target locale (defaults to system locale if not provided)
164
+ * @returns Updated CLI instance for chaining
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * cli('myapp')
169
+ * .localize({
170
+ * name: { default: 'name', 'es-ES': 'nombre' },
171
+ * port: { default: 'port', 'es-ES': 'puerto' }
172
+ * }, 'es-ES')
173
+ * .option('name', { type: 'string' })
174
+ * .option('port', { type: 'number' });
175
+ * ```
176
+ */
177
+ localize(dictionary: LocalizationDictionary, locale?: string): CLI<TArgs, THandlerReturn, TChildren, TParent>;
178
+ /**
179
+ * Sets up localization using a custom function for translating keys.
180
+ * This allows integration with existing localization libraries like i18next.
181
+ *
182
+ * @param fn A function that takes a key and returns its localized value
183
+ * @returns Updated CLI instance for chaining
184
+ *
185
+ * @example
186
+ * ```ts
187
+ * import i18next from 'i18next';
188
+ *
189
+ * cli('myapp')
190
+ * .localize((key) => i18next.t(key))
191
+ * .option('name', { type: 'string' })
192
+ * .option('port', { type: 'number' });
193
+ * ```
194
+ */
195
+ localize(fn: LocalizationFunction): CLI<TArgs, THandlerReturn, TChildren, TParent>;
157
196
  /**
158
197
  * Sets a group of options as mutually exclusive. If more than one option is provided, there will be a validation error.
159
198
  * @param options The options that should be mutually exclusive.
@@ -171,6 +210,14 @@ export interface CLI<TArgs extends ParsedArgs = ParsedArgs, THandlerReturn = voi
171
210
  * @returns Updated CLI instance.
172
211
  */
173
212
  demandCommand(): CLI<TArgs, THandlerReturn, TChildren, TParent>;
213
+ /**
214
+ * Enables or disables strict mode. When strict mode is enabled, the parser throws a validation error
215
+ * when unmatched arguments are encountered. Unmatched arguments are those that don't match any
216
+ * configured option or positional argument.
217
+ * @param enable Whether to enable strict mode. Defaults to true.
218
+ * @returns Updated CLI instance.
219
+ */
220
+ strict(enable?: boolean): CLI<TArgs, THandlerReturn, TChildren, TParent>;
174
221
  /**
175
222
  * Sets the usage text for the CLI. This text will be displayed in place of the default usage text
176
223
  * @param usageText Text displayed in place of the default usage text for `--help` and in generated docs.
@@ -194,10 +241,19 @@ export interface CLI<TArgs extends ParsedArgs = ParsedArgs, THandlerReturn = voi
194
241
  group({ label, keys, sortOrder, }: {
195
242
  label: string;
196
243
  keys: (keyof TArgs)[];
197
- sortOrder: number;
244
+ sortOrder?: number;
198
245
  }): CLI<TArgs, THandlerReturn, TChildren, TParent>;
199
246
  group(label: string, keys: (keyof TArgs)[]): CLI<TArgs, THandlerReturn, TChildren, TParent>;
200
247
  middleware<TArgs2>(callback: MiddlewareFunction<TArgs, TArgs2>): CLI<TArgs2 extends void ? TArgs : TArgs & TArgs2, THandlerReturn, TChildren, TParent>;
248
+ /**
249
+ * Registers an init hook that runs before command resolution.
250
+ * Init hooks receive partially-parsed args (from currently-registered options)
251
+ * and can modify the CLI (register commands, options, middleware) before the
252
+ * full parse runs. This enables plugin loading from config files.
253
+ *
254
+ * @param callback Async function receiving (args, cli). Mutate cli to add commands/options.
255
+ */
256
+ init(callback: (cli: CLI<TArgs, THandlerReturn, TChildren, TParent>, args: TArgs) => Promise<void> | void): CLI<TArgs, THandlerReturn, TChildren, TParent>;
201
257
  /**
202
258
  * Parses argv and executes the CLI
203
259
  * @param args argv. Defaults to process.argv.slice(2)
@@ -300,7 +356,7 @@ TInitial extends ParsedArgs,
300
356
  /**
301
357
  * The type of the arguments that are registered after `builder` is invoked, and the type that is passed to the handler.
302
358
  */
303
- TArgs extends TInitial = TInitial, THandlerReturn = void,
359
+ TArgs extends TInitial = TInitial, THandlerReturn = void | Promise<void>,
304
360
  /**
305
361
  * The children commands that exist before the builder runs.
306
362
  */
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../src/lib/public-api.ts"],"names":[],"mappings":";;AA8/BA,kBAsBC;AAngCD,iDAA6C;AAu+B7C;;;;;GAKG;AACH,SAAgB,GAAG,CAOjB,IAAW,EACX,wBAOC;IAED,OAAO,IAAI,0BAAW,CAAC,IAAI,EAAE,wBAA+B,CAI3D,CAAC;AACJ,CAAC;AAED,kBAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../src/lib/public-api.ts"],"names":[],"mappings":";;AAqkCA,kBAsBC;AAxkCD,iDAA6C;AA4iC7C;;;;;GAKG;AACH,SAAgB,GAAG,CAOjB,IAAW,EACX,wBAOC;IAED,OAAO,IAAI,0BAAW,CAAC,IAAI,EAAE,wBAA+B,CAI3D,CAAC;AACJ,CAAC;AAED,kBAAe,GAAG,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "cli-forge",
3
- "version": "1.0.2",
3
+ "version": "1.2.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0",
6
- "@cli-forge/parser": "1.0.2"
6
+ "@cli-forge/parser": "1.2.0"
7
7
  },
8
8
  "peerDependencies": {
9
9
  "markdown-factory": "^0.2.0",
@@ -0,0 +1,17 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { generateDocumentationCommand } from './generate-documentation';
3
+ import { TestHarness } from '../../lib/test-harness';
4
+
5
+ describe('generateDocumentationCommand', () => {
6
+ it('should not generate llms.txt when --no-llms is provided', async () => {
7
+ const test = new TestHarness(generateDocumentationCommand);
8
+ const { args } = await test.parse(['./some-cli', '--no-llms']);
9
+ expect(args.llms).toBe(false);
10
+ });
11
+
12
+ it('should generate llms.txt by default', async () => {
13
+ const test = new TestHarness(generateDocumentationCommand);
14
+ const { args } = await test.parse(['./some-cli']);
15
+ expect(args.llms).toBe(true);
16
+ });
17
+ });