cli-forge 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/cli.js CHANGED
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  const src_1 = require("../src");
5
5
  const generate_documentation_1 = require("./commands/generate-documentation");
6
6
  const init_1 = require("./commands/init");
7
- const mycli = (0, src_1.cli)('cli-forge').commands(generate_documentation_1.generateDocumentationCommand, init_1.initCommand);
7
+ const mycli = (0, src_1.cli)('cli-forge', {
8
+ description: "CLI tool for working with cli-forge based CLI's.",
9
+ }).commands(generate_documentation_1.generateDocumentationCommand, init_1.initCommand);
8
10
  exports.default = mycli;
9
11
  if (require.main === module) {
10
12
  (async () => {
package/bin/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../packages/cli-forge/bin/cli.ts"],"names":[],"mappings":";;;AAEA,gCAA6B;AAC7B,8EAAiF;AACjF,0CAA8C;AAE9C,MAAM,KAAK,GAAG,IAAA,SAAG,EAAC,WAAW,CAAC,CAAC,QAAQ,CACrC,qDAA4B,EAC5B,kBAAW,CACZ,CAAC;AAEF,kBAAe,KAAK,CAAC;AAErB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,CAAC,KAAK,IAAI,EAAE;QACV,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../packages/cli-forge/bin/cli.ts"],"names":[],"mappings":";;;AAEA,gCAA6B;AAC7B,8EAAiF;AACjF,0CAA8C;AAE9C,MAAM,KAAK,GAAG,IAAA,SAAG,EAAC,WAAW,EAAE;IAC7B,WAAW,EAAE,kDAAkD;CAChE,CAAC,CAAC,QAAQ,CAAC,qDAA4B,EAAE,kBAAW,CAAC,CAAC;AAEvD,kBAAe,KAAK,CAAC;AAErB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,CAAC,KAAK,IAAI,EAAE;QACV,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ParsedArgs } from '@cli-forge/parser';
2
- import { CLI } from '../../src/lib/cli-forge';
2
+ import { CLI } from '../../src';
3
3
  export declare function withGenerateDocumentationArgs<T extends ParsedArgs>(cmd: CLI<T>): CLI<T & {
4
4
  cli: string;
5
5
  } & {
@@ -40,10 +40,15 @@ function withGenerateDocumentationArgs(cmd) {
40
40
  }
41
41
  exports.generateDocumentationCommand = (0, src_1.default)('generate-documentation', {
42
42
  description: 'Generate documentation for the given CLI',
43
+ examples: [
44
+ 'cli-forge generate-documentation ./bin/my-cli',
45
+ 'cli-forge generate-documentation ./bin/my-cli --format json',
46
+ 'cli-forge generate-documentation ./bin/my-cli --export mycli',
47
+ ],
43
48
  builder: (b) => withGenerateDocumentationArgs(b),
44
49
  handler: async (args) => {
45
50
  const cliModule = await loadCLIModule(args);
46
- let cli = readCLIFromModule(cliModule, args);
51
+ const cli = readCLIFromModule(cliModule, args);
47
52
  const documentation = (0, documentation_1.generateDocumentation)(cli);
48
53
  if (args.format === 'md') {
49
54
  await generateMarkdownDocumentation(documentation, args);
@@ -71,9 +76,11 @@ async function generateMarkdownForSingleCommand(docs, out, docsRoot, md) {
71
76
  [md.bold('Usage:'), md.code(docs.usage)].join(' '),
72
77
  docs.description,
73
78
  getPositionalArgsFragment(docs.positionals, md),
74
- getFlagArgsFragment(docs.options, md),
79
+ getFlagArgsFragment(docs.options, 'Flags', md),
80
+ ...docs.groupedOptions.map((group) => getFlagArgsFragment(Object.fromEntries(group.keys.map((key) => [key.key, key])), group.label, md)),
75
81
  getSubcommandsFragment(docs.subcommands, outdir, docsRoot, md),
76
82
  getExamplesFragment(docs.examples, md),
83
+ getEpilogueFragment(docs.epilogue, md),
77
84
  ].filter(isTruthy)));
78
85
  for (const subcommand of docs.subcommands) {
79
86
  await generateMarkdownForSingleCommand(subcommand, (0, node_path_1.join)(outdir, subcommand.name), docsRoot, md);
@@ -112,11 +119,11 @@ function getPositionalArgsFragment(positionals, md) {
112
119
  }
113
120
  return md.h2('Positional Arguments', ...positionals.map((positional) => formatOption(positional, md)));
114
121
  }
115
- function getFlagArgsFragment(options, md) {
122
+ function getFlagArgsFragment(options, label, md) {
116
123
  if (Object.keys(options).length === 0) {
117
124
  return undefined;
118
125
  }
119
- return md.h2('Flags', ...Object.values(options).map((option) => formatOption(option, md)));
126
+ return md.h2(label, ...Object.values(options).map((option) => formatOption(option, md)));
120
127
  }
121
128
  function getSubcommandsFragment(subcommands, outdir, docsRoot, md) {
122
129
  if (subcommands.length === 0) {
@@ -205,7 +212,12 @@ async function loadCLIModule(args) {
205
212
  }
206
213
  try {
207
214
  const tsx = (await Promise.resolve().then(() => require(
208
- //@ts-ignore
215
+ // For some reason the typescript language server doesn't like the import statement below.
216
+ // Its accurate, and in fact the full path with `/dist/` would error as its not part of
217
+ // the package.json's `exports` field.
218
+ //
219
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
220
+ //@ts-expect-error
209
221
  'tsx/esm/api')));
210
222
  return tsx.tsImport(cliPath, {
211
223
  tsconfig: args.tsconfig,
@@ -224,4 +236,10 @@ async function loadCLIModule(args) {
224
236
  }
225
237
  }
226
238
  }
239
+ function getEpilogueFragment(epilogue, md) {
240
+ if (!epilogue) {
241
+ return undefined;
242
+ }
243
+ return md.blockQuote(epilogue);
244
+ }
227
245
  //# sourceMappingURL=generate-documentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-documentation.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/bin/commands/generate-documentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-documentation.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/bin/commands/generate-documentation.ts"],"names":[],"mappings":";;;AAwBA,sEA+BC;AArDD,qCAAoD;AACpD,yCAAgE;AAChE,2CAAuE;AAEvE,mCAAqC;AACrC,+DAGqC;AACrC,uDAAsD;AACtD,oCAA4C;AAC5C,uCAAyC;AAWzC,SAAgB,6BAA6B,CAC3C,GAAW;IAEX,OAAO,GAAG;SACP,UAAU,CAAC,KAAK,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oDAAoD;QACjE,QAAQ,EAAE,IAAI;KACf,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,KAAK,EAAE,CAAC,GAAG,CAAC;QACZ,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,2CAA2C;QACxD,OAAO,EAAE,MAAM;KAChB,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oDAAoD;QACjE,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;KACxB,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,mHAAmH;KACtH,CAAC;SACD,MAAM,CAAC,UAAU,EAAE;QAClB,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,mEAAmE;KACtE,CAAC,CAAC;AACP,CAAC;AAEY,QAAA,4BAA4B,GAAQ,IAAA,aAAG,EAAC,wBAAwB,EAAE;IAC7E,WAAW,EAAE,0CAA0C;IACvD,QAAQ,EAAE;QACR,+CAA+C;QAC/C,6DAA6D;QAC7D,8DAA8D;KAC/D;IACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAChD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,IAAA,qCAAqB,EAAC,GAAG,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,6BAA6B,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC3D,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1C,CAAC,CAAC,IAAI,CAAC,MAAM;gBACb,CAAC,CAAC,IAAA,gBAAI,EAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,OAAO,CAAC,CAAC;YAChC,IAAA,kBAAa,EAAC,MAAM,CAAC,CAAC;YACtB,IAAA,uBAAa,EAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,KAAK,UAAU,6BAA6B,CAC1C,IAAmB,EACnB,IAAsB;IAEtB,MAAM,EAAE,GAAG,MAAM,qBAAqB,EAAE,CAAC;IACzC,MAAM,gCAAgC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,IAAmB,EACnB,GAAW,EACX,QAAgB,EAChB,EAAa;IAEb,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,GAAG,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAEzD,IAAA,kBAAa,EAAC,MAAM,CAAC,CAAC;IAEtB,IAAA,uBAAa,EACX,IAAA,gBAAI,EAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC,EAC7B,EAAE,CAAC,EAAE,CACH,IAAI,CAAC,IAAI,EACT,GAAG;QACD,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAClD,IAAI,CAAC,WAAW;QAChB,yBAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/C,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QAC9C,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACnC,mBAAmB,CACjB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAC3D,KAAK,CAAC,KAAK,EACX,EAAE,CACH,CACF;QACD,sBAAsB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC9D,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;KACvC,CAAC,MAAM,CAAC,QAAQ,CAAC,CACnB,CACF,CAAC;IACF,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,gCAAgC,CACpC,UAAU,EACV,IAAA,gBAAI,EAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,EAC7B,QAAQ,EACR,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAwC,EAAE,EAAa;IAC3E,OAAO,EAAE,CAAC,EAAE,CACV,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAC7D,GAAG;QACD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;QACjE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;YACd,GAAG;YACH,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;gBACtB,CAAC,CAAC,GAAI,MAA4B,CAAC,KAAK,IAAI;gBAC5C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAClB,MAAM,CAAC,WAAW;QAClB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QACvE,qGAAqG;QACrG,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;QACpE,MAAM,CAAC,OAAO;YACZ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;gBACxB,GAAG;gBACH,CAAC,GAAG,EAAE;oBACJ,MAAM,eAAe,GAAG,CACtB,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU;wBAClC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE;wBAClB,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC3B,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpC,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,SAAS;QACb,MAAM,CAAC,KAAK,EAAE,MAAM;YAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC,CAAC,SAAS;KACd,CAAC,MAAM,CAAC,QAAQ,CAAC,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,WAAyC,EACzC,EAAa;IAEb,IAAI,WAAW,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CACV,sBAAsB,EACtB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAAiC,EACjC,KAAa,EACb,EAAa;IAEb,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CACV,KAAK,EACL,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,WAAyC,EACzC,MAAc,EACd,QAAgB,EAChB,EAAa;IAEb,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CACV,aAAa,EACb,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAChC,EAAE,CAAC,IAAI,CACL,IAAI;QACF,IAAA,YAAiB,EACf,IAAA,iBAAS,EAAC,IAAA,oBAAQ,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,EACrC,UAAU,CAAC,IAAI,GAAG,KAAK,CACxB,EACH,UAAU,CAAC,IAAI,CAChB,CACF,CACF,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAI,KAA2B;IAC9C,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,IAAI,CAAC;QACH,OAAO,2CAAa,kBAAkB,EAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,GAAY;IACzB,IAAI,GAAG,YAAY,uBAAW,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,aAAa,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,uBAAW,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAkB,EAClB,EAAqC;IAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,CAAC,EAAE,CACV,UAAU,EACV,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAC7D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CACxB,SAAc,EACd,IAAsB;IAEtB,IAAI,GAAG,GAAG,SAAS,CAAC;IACpB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,GAAG;YACD,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,CACnE,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,IAEkE;IAElE,IAAI,CAAC,IAAA,sBAAU,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,IAAA,gBAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,OAAO,GAAG;QACd,IAAI,CAAC,GAAG;QACR,GAAG,IAAI,CAAC,GAAG,KAAK;QAChB,GAAG,IAAI,CAAC,GAAG,KAAK;QAChB,GAAG,IAAI,CAAC,GAAG,MAAM;QACjB,GAAG,IAAI,CAAC,GAAG,MAAM;QACjB,IAAA,gBAAI,EAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC;QAC1B,IAAA,gBAAI,EAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC;QAC1B,IAAA,gBAAI,EAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;QAC3B,IAAA,gBAAI,EAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC;KAC5B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,oBAAU,EAAC,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,GAAG;;sEAEU,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC;QACX,0FAA0F;QAC1F,uFAAuF;QACvF,sCAAsC;QACtC,EAAE;QACF,6DAA6D;QAC7D,kBAAkB;QAClB,aAAa,EACd,CAAgD,CAAC;QAClD,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAA,wBAAa,EAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;SAC/C,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,OAAO,yBAAa,OAAO,yBAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CACV,iMAAiM,CAClM,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAA4B,EAC5B,EAAqC;IAErC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC"}
@@ -47,6 +47,12 @@ function withInitArgs(cmd) {
47
47
  }
48
48
  exports.initCommand = (0, src_1.default)('init', {
49
49
  description: 'Generate a new CLI',
50
+ examples: [
51
+ 'cli-forge init {mycli}',
52
+ 'cli-forge init {mycli} --format js',
53
+ 'cli-forge init {mycli} --output packages/{mycli}',
54
+ 'cli-forge init {mycli} --initial-version 1.0.0',
55
+ ],
50
56
  builder: (b) => withInitArgs(b),
51
57
  handler: async (args) => {
52
58
  args.output ??= process.cwd();
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/bin/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/bin/commands/init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "cli-forge",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0",
6
- "@cli-forge/parser": "0.6.0"
6
+ "@cli-forge/parser": "0.7.0"
7
7
  },
8
8
  "peerDependencies": {
9
9
  "markdown-factory": "0.2.0",
package/src/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- export { default, cli, CLI, Command } from './lib/cli-forge';
2
1
  export { TestHarness } from './lib/test-harness';
2
+ export * from './lib/public-api';
3
+ export { default } from './lib/public-api';
package/src/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TestHarness = exports.cli = exports.default = void 0;
4
- var cli_forge_1 = require("./lib/cli-forge");
5
- Object.defineProperty(exports, "default", { enumerable: true, get: function () { return cli_forge_1.default; } });
6
- Object.defineProperty(exports, "cli", { enumerable: true, get: function () { return cli_forge_1.cli; } });
3
+ exports.default = exports.TestHarness = void 0;
4
+ const tslib_1 = require("tslib");
7
5
  var test_harness_1 = require("./lib/test-harness");
8
6
  Object.defineProperty(exports, "TestHarness", { enumerable: true, get: function () { return test_harness_1.TestHarness; } });
7
+ tslib_1.__exportStar(require("./lib/public-api"), exports);
8
+ var public_api_1 = require("./lib/public-api");
9
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return public_api_1.default; } });
9
10
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/cli-forge/src/index.ts"],"names":[],"mappings":";;;AAAA,6CAA6D;AAApD,oGAAA,OAAO,OAAA;AAAE,gGAAA,GAAG,OAAA;AACrB,mDAAiD;AAAxC,2GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/cli-forge/src/index.ts"],"names":[],"mappings":";;;;AAAA,mDAAiD;AAAxC,2GAAA,WAAW,OAAA;AACpB,2DAAiC;AACjC,+CAA2C;AAAlC,qGAAA,OAAO,OAAA"}
@@ -1,163 +1,5 @@
1
- import { ArrayOptionConfig, OptionConfig, ParsedArgs } from '@cli-forge/parser';
2
- export interface CLIHandlerContext {
3
- command: CLI<any>;
4
- }
5
- export type CLICommandOptions<TInitial extends ParsedArgs, TArgs extends TInitial = TInitial> = {
6
- description?: string;
7
- builder?: (parser: CLI<TInitial>) => CLI<TArgs>;
8
- handler?: (args: TArgs, context: CLIHandlerContext) => void | Promise<void>;
9
- usage?: string;
10
- examples?: string[];
11
- };
12
- export type Command<TInitial extends ParsedArgs = any, TArgs extends TInitial = TInitial> = ({
13
- name: string;
14
- } & CLICommandOptions<TInitial, TArgs>) | CLI<TArgs>;
15
- /**
16
- * Error Handler for CLI applications. Error handlers should re-throw the error if they cannot handle it.
17
- *
18
- * @param e The error that was thrown.
19
- * @param actions Actions that can be taken by the error handler. Prefer using these over process.exit for better support of interactive shells.
20
- */
21
- export type ErrorHandler = (e: unknown, actions: {
22
- /**
23
- * Exits the process immediately.
24
- * @param code
25
- */
26
- exit: (code?: number) => void;
27
- }) => void;
28
- /**
29
- * The interface for a CLI application or subcommands.
30
- *
31
- * {@link cli} is provided as a small helper function to create a new CLI instance.
32
- *
33
- * @example
34
- * ```ts
35
- * import { cli } from 'cli-forge';
36
- *
37
- * cli('basic-cli').command('hello', {
38
- * builder: (args) =>
39
- * args.option('name', {
40
- * type: 'string',
41
- * }),
42
- * handler: (args) => {
43
- * console.log(`Hello, ${args.name}!`);
44
- * }).forge();
45
- * ```
46
- */
47
- export interface CLI<TArgs extends ParsedArgs = ParsedArgs> {
48
- command<TCommandArgs extends TArgs>(cmd: Command<TArgs, TCommandArgs>): CLI<TArgs>;
49
- /**
50
- * Registers a new command with the CLI.
51
- * @param key What should the new command be called?
52
- * @param options Settings for the new command. See {@link CLICommandOptions}.
53
- * @returns Updated CLI instance with the new command registered.
54
- */
55
- command<TCommandArgs extends TArgs>(key: string, options: CLICommandOptions<TArgs, TCommandArgs>): CLI<TArgs>;
56
- /**
57
- * Registers multiple subcommands with the CLI.
58
- * @param commands Several commands to register. Can be the result of a call to {@link cli} or a configuration object.
59
- */
60
- commands(commands: Command[]): CLI<TArgs>;
61
- /**
62
- * Registers multiple subcommands with the CLI.
63
- * @param commands Several commands to register. Can be the result of a call to {@link cli} or a configuration object.
64
- */
65
- commands(...commands: Command[]): CLI<TArgs>;
66
- /**
67
- * Enables the ability to run CLI commands that contain subcommands as an interactive shell.
68
- * This presents as a small shell that only knows the current command and its subcommands.
69
- * Any flags already consumed by the command will be passed to every subcommand invocation.
70
- */
71
- enableInteractiveShell(): CLI<TArgs>;
72
- /**
73
- * Registers a custom global error handler for the CLI. This handler will be called when an error is thrown
74
- * during the execution of the CLI and not otherwise handled. Error handlers should re-throw the error if they
75
- * cannot handle it, s.t. the next error handler can attempt to handle it.
76
- *
77
- * @param handler Typically called with an Error object, but you should be prepared to handle any type of error.
78
- * @param actions Actions that can be taken by the error handler. Prefer using these over process.exit for better support of interactive shells.
79
- */
80
- errorHandler(handler: ErrorHandler): CLI<TArgs>;
81
- /**
82
- * Registers a new option for the CLI command. This option will be accessible
83
- * within the command handler, as well as any subcommands.
84
- *
85
- * @param name The name of the option.
86
- * @param config Configuration for the option. See {@link OptionConfig}.
87
- * @returns Updated CLI instance with the new option registered.
88
- */
89
- option<TOption extends string, TOptionConfig extends OptionConfig>(name: TOption, config: TOptionConfig): CLI<TArgs & {
90
- [key in TOption]: TOptionConfig['coerce'] extends (value: string) => infer TCoerce ? TCoerce : {
91
- string: string;
92
- number: number;
93
- boolean: boolean;
94
- array: (TOptionConfig extends ArrayOptionConfig<string | number> ? TOptionConfig['items'] extends 'string' ? string : number : never)[];
95
- }[TOptionConfig['type']];
96
- }>;
97
- /**
98
- * Registers a new positional argument for the CLI command. This argument will be accessible
99
- * within the command handler, as well as any subcommands.
100
- * @param name The name of the positional argument.
101
- * @param config Configuration for the positional argument. See {@link OptionConfig}.
102
- * @returns Updated CLI instance with the new positional argument registered.
103
- */
104
- positional<TOption extends string, TOptionConfig extends OptionConfig>(name: TOption, config: TOptionConfig): CLI<TArgs & {
105
- [key in TOption]: TOptionConfig['coerce'] extends (value: string) => infer TCoerce ? TCoerce : {
106
- string: string;
107
- number: number;
108
- boolean: boolean;
109
- array: (TOptionConfig extends ArrayOptionConfig<string | number> ? TOptionConfig['items'] extends 'string' ? string : number : never)[];
110
- }[TOptionConfig['type']];
111
- }>;
112
- /**
113
- * Adds support for reading CLI options from environment variables.
114
- * @param prefix The prefix to use when looking up environment variables. Defaults to the command name.
115
- */
116
- env(prefix?: string): CLI<TArgs>;
117
- /**
118
- * Sets a group of options as mutually exclusive. If more than one option is provided, there will be a validation error.
119
- * @param options The options that should be mutually exclusive.
120
- */
121
- conflicts(...options: [string, string, ...string[]]): CLI<TArgs>;
122
- /**
123
- * Sets a group of options as mutually inclusive. If one option is provided, all other options must also be provided.
124
- * @param option The option that implies the other options.
125
- * @param impliedOptions The options which become required when the option is provided.
126
- */
127
- implies(option: string, ...impliedOptions: string[]): CLI<TArgs>;
128
- /**
129
- * Requires a command to be provided when executing the CLI. Useful if your parent command
130
- * cannot be executed on its own.
131
- * @returns Updated CLI instance.
132
- */
133
- demandCommand(): CLI<TArgs>;
134
- /**
135
- * Sets the usage text for the CLI. This text will be displayed in place of the default usage text
136
- * @param usageText Text displayed in place of the default usage text for `--help` and in generated docs.
137
- */
138
- usage(usageText: string): CLI<TArgs>;
139
- /**
140
- * Sets the description for the CLI. This text will be displayed in the help text and generated docs.
141
- * @param examples Examples to display in the help text and generated docs.
142
- */
143
- examples(...examples: string[]): CLI<TArgs>;
144
- /**
145
- * Allows overriding the version displayed when passing `--version`. Defaults to crawling
146
- * the file system to get the package.json of the currently executing command.
147
- * @param override
148
- */
149
- version(override?: string): CLI<TArgs>;
150
- /**
151
- * Prints help text to stdout.
152
- */
153
- printHelp(): void;
154
- /**
155
- * Parses argv and executes the CLI
156
- * @param args argv. Defaults to process.argv.slice(2)
157
- * @returns Promise that resolves when the handler completes.
158
- */
159
- forge(args?: string[]): Promise<TArgs>;
160
- }
1
+ import { InternalOptionConfig, OptionConfig, ParsedArgs } from '@cli-forge/parser';
2
+ import { CLI, CLICommandOptions, Command, ErrorHandler } from './public-api';
161
3
  /**
162
4
  * The base class for a CLI application. This class is used to define the structure of the CLI.
163
5
  *
@@ -191,6 +33,18 @@ export declare class InternalCLI<TArgs extends ParsedArgs = ParsedArgs> implemen
191
33
  private _configuration?;
192
34
  private _versionOverride?;
193
35
  private registeredErrorHandlers;
36
+ private registeredMiddleware;
37
+ /**
38
+ * A list of option groups that have been registered with the CLI. Grouped Options are displayed together in the help text.
39
+ *
40
+ * For internal use only. Stick to properties available on {@link CLI}.
41
+ */
42
+ private registeredOptionGroups;
43
+ getGroupedOptions(): {
44
+ label: string;
45
+ sortOrder: number;
46
+ keys: Array<InternalOptionConfig>;
47
+ }[];
194
48
  get configuration(): CLICommandOptions<any, any> | undefined;
195
49
  private set configuration(value);
196
50
  private parser;
@@ -222,16 +76,23 @@ export declare class InternalCLI<TArgs extends ParsedArgs = ParsedArgs> implemen
222
76
  * Prints help text for the current command to the console.
223
77
  */
224
78
  printHelp(): void;
79
+ middleware(callback: (args: TArgs) => void): CLI<TArgs>;
225
80
  /**
226
81
  * Runs the current command.
227
82
  * @param cmd The command to run.
228
83
  * @param args The arguments to pass to the command.
229
84
  */
230
- runCommand<T extends ParsedArgs>(cmd: InternalCLI<T>, args: T, originalArgV: string[]): Promise<void>;
85
+ runCommand<T extends ParsedArgs>(args: T, originalArgV: string[]): Promise<void>;
231
86
  enableInteractiveShell(): this;
232
87
  private versionHandler;
233
88
  private withErrorHandlers;
234
89
  errorHandler(handler: ErrorHandler): this;
90
+ group(configObject: {
91
+ label: string;
92
+ keys: (keyof TArgs)[];
93
+ sortOrder: number;
94
+ }): CLI<TArgs>;
95
+ group(label: string, keys: (keyof TArgs)[]): CLI<TArgs>;
235
96
  /**
236
97
  * Parses argv and executes the CLI
237
98
  * @param args argv. Defaults to process.argv.slice(2)
@@ -246,11 +107,3 @@ export declare class InternalCLI<TArgs extends ParsedArgs = ParsedArgs> implemen
246
107
  getSubcommands(): Readonly<Record<string, InternalCLI>>;
247
108
  clone(): InternalCLI<TArgs>;
248
109
  }
249
- /**
250
- * Constructs a CLI instance. See {@link InternalCLI} for more information.
251
- * @param name Name for the top level CLI
252
- * @param rootCommandConfiguration Configuration used when running the bare CLI. e.g. npx my-cli, rather than npx my-cli [cmd]
253
- * @returns A {@link InternalCLI} instance.
254
- */
255
- export declare function cli<TArgs extends ParsedArgs>(name: string, rootCommandConfiguration?: CLICommandOptions<ParsedArgs, TArgs>): CLI<TArgs>;
256
- export default cli;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InternalCLI = void 0;
4
- exports.cli = cli;
5
4
  const parser_1 = require("@cli-forge/parser");
6
5
  const utils_1 = require("./utils");
7
6
  const interactive_shell_1 = require("./interactive-shell");
@@ -48,6 +47,71 @@ class InternalCLI {
48
47
  }
49
48
  },
50
49
  ];
50
+ registeredMiddleware = [];
51
+ /**
52
+ * A list of option groups that have been registered with the CLI. Grouped Options are displayed together in the help text.
53
+ *
54
+ * For internal use only. Stick to properties available on {@link CLI}.
55
+ */
56
+ registeredOptionGroups = [];
57
+ getGroupedOptions() {
58
+ function registerGroupsFromCLI(cli) {
59
+ for (const { label, keys, sortOrder } of cli.registeredOptionGroups) {
60
+ groups[label] ??= {
61
+ keys: new Set(),
62
+ sortOrder: Number.MAX_SAFE_INTEGER,
63
+ };
64
+ if (sortOrder) {
65
+ groups[label].sortOrder = sortOrder;
66
+ }
67
+ for (const key of keys) {
68
+ groups[label].keys.add(key);
69
+ }
70
+ }
71
+ }
72
+ const groups = {};
73
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
74
+ let command = this;
75
+ registerGroupsFromCLI(command);
76
+ for (const subcommand of this.commandChain) {
77
+ command = command?.registeredCommands[subcommand];
78
+ registerGroupsFromCLI(command);
79
+ }
80
+ const parserOptions = this.parser.configuredOptions;
81
+ for (const key in parserOptions) {
82
+ const option = parserOptions[key];
83
+ if (option.group) {
84
+ groups[option.group] ??= {
85
+ keys: new Set(),
86
+ sortOrder: Number.MAX_SAFE_INTEGER,
87
+ };
88
+ groups[option.group].keys.add(key);
89
+ }
90
+ }
91
+ const groupedOptions = [];
92
+ for (const label in groups) {
93
+ const entry = {
94
+ sortOrder: groups[label].sortOrder,
95
+ keys: [],
96
+ label,
97
+ };
98
+ for (const key of groups[label].keys) {
99
+ const option = parserOptions[key];
100
+ entry.keys.push(option);
101
+ delete parserOptions[key];
102
+ }
103
+ groupedOptions.push(entry);
104
+ }
105
+ groupedOptions.sort((a, b) => {
106
+ if (a.sortOrder === b.sortOrder) {
107
+ return a.label.localeCompare(b.label);
108
+ }
109
+ else {
110
+ return a.sortOrder - b.sortOrder;
111
+ }
112
+ });
113
+ return groupedOptions;
114
+ }
51
115
  get configuration() {
52
116
  return this._configuration;
53
117
  }
@@ -188,11 +252,16 @@ class InternalCLI {
188
252
  const help = [];
189
253
  // eslint-disable-next-line @typescript-eslint/no-this-alias
190
254
  let command = this;
255
+ let epilogue = this.configuration?.epilogue;
191
256
  for (const key of this.commandChain) {
192
257
  command = command.registeredCommands[key];
258
+ // Properties that are ineherited from the parent command should be copied over
259
+ if (command.configuration?.epilogue) {
260
+ epilogue = command.configuration.epilogue;
261
+ }
193
262
  }
194
- help.push(`Usage: ${this.configuration?.usage
195
- ? this.configuration.usage
263
+ help.push(`Usage: ${command.configuration?.usage
264
+ ? command.configuration.usage
196
265
  : [
197
266
  this.name,
198
267
  ...this.commandChain,
@@ -211,11 +280,28 @@ class InternalCLI {
211
280
  ? ' - ' + subcommand.configuration.description
212
281
  : ''}`);
213
282
  }
283
+ const groupedOptions = this.getGroupedOptions();
214
284
  const nonpositionalOptions = Object.values(command.parser.configuredOptions).filter((c) => !c.positional);
215
- if (nonpositionalOptions.length > 0) {
285
+ help.push(...getOptionBlock('Options', nonpositionalOptions));
286
+ for (const { label, keys } of groupedOptions) {
287
+ help.push(...getOptionBlock(label, keys));
288
+ }
289
+ if (command.configuration?.examples?.length) {
290
+ help.push('');
291
+ help.push('Examples:');
292
+ for (const example of command.configuration.examples) {
293
+ help.push(` \`${example}\``);
294
+ }
295
+ }
296
+ if (Object.keys(command.registeredCommands).length > 0) {
297
+ help.push(' ');
298
+ help.push(`Run \`${[this.name, ...this.commandChain].join(' ')} [command] --help\` for more information on a command`);
299
+ }
300
+ if (epilogue) {
216
301
  help.push('');
217
- help.push('Options:');
302
+ help.push(epilogue);
218
303
  }
304
+ return help.join('\n');
219
305
  function getOptionParts(option) {
220
306
  const parts = [];
221
307
  if (option.description) {
@@ -238,36 +324,32 @@ class InternalCLI {
238
324
  }
239
325
  return parts;
240
326
  }
241
- const allParts = [];
242
- for (const option of nonpositionalOptions) {
243
- allParts.push([option.key, ...getOptionParts(option)]);
244
- }
245
- const paddingValues = [];
246
- for (let i = 0; i < allParts.length; i++) {
247
- for (let j = 0; j < allParts[i].length; j++) {
248
- if (!paddingValues[j]) {
249
- paddingValues[j] = 0;
327
+ function getOptionBlock(label, options) {
328
+ const lines = [];
329
+ if (options.length > 0) {
330
+ lines.push('');
331
+ lines.push(label + ':');
332
+ }
333
+ const allParts = [];
334
+ for (const option of options) {
335
+ allParts.push([option.key, ...getOptionParts(option)]);
336
+ }
337
+ const paddingValues = [];
338
+ for (let i = 0; i < allParts.length; i++) {
339
+ for (let j = 0; j < allParts[i].length; j++) {
340
+ if (!paddingValues[j]) {
341
+ paddingValues[j] = 0;
342
+ }
343
+ paddingValues[j] = Math.max(paddingValues[j], allParts[i][j].length);
250
344
  }
251
- paddingValues[j] = Math.max(paddingValues[j], allParts[i][j].length);
252
345
  }
253
- }
254
- for (const [key, ...parts] of allParts) {
255
- help.push(` --${key.padEnd(paddingValues[0])}${parts.length ? ' - ' : ''}${parts
256
- .map((part, i) => part.padEnd(paddingValues[i + 1]))
257
- .join(' ')}`);
258
- }
259
- if (command.configuration?.examples?.length) {
260
- help.push('');
261
- help.push('Examples:');
262
- for (const example of command.configuration.examples) {
263
- help.push(` \`${example}\``);
346
+ for (const [key, ...parts] of allParts) {
347
+ lines.push(` --${key.padEnd(paddingValues[0])}${parts.length ? ' - ' : ''}${parts
348
+ .map((part, i) => part.padEnd(paddingValues[i + 1]))
349
+ .join(' ')}`);
264
350
  }
351
+ return lines;
265
352
  }
266
- if (Object.keys(command.registeredCommands).length > 0) {
267
- help.push(' ');
268
- help.push(`Run \`${[this.name, ...this.commandChain].join(' ')} [command] --help\` for more information on a command`);
269
- }
270
- return help.join('\n');
271
353
  }
272
354
  /**
273
355
  * Prints help text for the current command to the console.
@@ -275,17 +357,33 @@ class InternalCLI {
275
357
  printHelp() {
276
358
  console.log(this.formatHelp());
277
359
  }
360
+ middleware(callback) {
361
+ this.registeredMiddleware.push(callback);
362
+ return this;
363
+ }
278
364
  /**
279
365
  * Runs the current command.
280
366
  * @param cmd The command to run.
281
367
  * @param args The arguments to pass to the command.
282
368
  */
283
- async runCommand(cmd, args, originalArgV) {
369
+ async runCommand(args, originalArgV) {
370
+ const middlewares = [
371
+ ...this.registeredMiddleware,
372
+ ];
373
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
374
+ let cmd = this;
375
+ for (const command of this.commandChain) {
376
+ cmd = cmd.registeredCommands[command];
377
+ middlewares.push(...cmd.registeredMiddleware);
378
+ }
284
379
  try {
285
380
  if (cmd.requiresCommand) {
286
381
  throw new Error(`${[this.name, ...this.commandChain].join(' ')} requires a command`);
287
382
  }
288
383
  if (cmd.configuration?.handler) {
384
+ for (const middleware of middlewares) {
385
+ await middleware(args);
386
+ }
289
387
  await cmd.configuration.handler(args, {
290
388
  command: cmd,
291
389
  });
@@ -347,7 +445,6 @@ class InternalCLI {
347
445
  return await cb();
348
446
  }
349
447
  catch (e) {
350
- let handled = false;
351
448
  for (const handler of this.registeredErrorHandlers) {
352
449
  try {
353
450
  handler(e, {
@@ -362,16 +459,27 @@ class InternalCLI {
362
459
  // Error was not handled, continue to the next handler
363
460
  }
364
461
  }
365
- if (!handled) {
366
- throw e;
367
- }
462
+ throw e;
368
463
  }
369
- return {};
370
464
  }
371
465
  errorHandler(handler) {
372
466
  this.registeredErrorHandlers.unshift(handler);
373
467
  return this;
374
468
  }
469
+ group(labelOrConfigObject, keys) {
470
+ const config = typeof labelOrConfigObject === 'object'
471
+ ? labelOrConfigObject
472
+ : {
473
+ label: labelOrConfigObject,
474
+ keys: keys,
475
+ sortOrder: Object.keys(this.registeredOptionGroups).length,
476
+ };
477
+ if (!config.keys) {
478
+ throw new Error('keys must be provided when calling `group`.');
479
+ }
480
+ this.registeredOptionGroups.push(config);
481
+ return this;
482
+ }
375
483
  /**
376
484
  * Parses argv and executes the CLI
377
485
  * @param args argv. Defaults to process.argv.slice(2)
@@ -411,15 +519,10 @@ class InternalCLI {
411
519
  else if (validationFailedError) {
412
520
  throw validationFailedError;
413
521
  }
414
- const finalArgV = (() => {
415
- if (currentCommand === this) {
416
- if (this.configuration?.builder) {
417
- return (this.configuration.builder?.(this)).parser.parse(args);
418
- }
419
- }
420
- return argv;
421
- })();
422
- await this.runCommand(currentCommand, finalArgV, args);
522
+ const finalArgV = this.commandChain.length === 0 && this.configuration?.builder
523
+ ? (this.configuration.builder?.(this)).parser.parse(args)
524
+ : argv;
525
+ await this.runCommand(finalArgV, args);
423
526
  return finalArgV;
424
527
  });
425
528
  getParser() {
@@ -445,14 +548,4 @@ class InternalCLI {
445
548
  }
446
549
  }
447
550
  exports.InternalCLI = InternalCLI;
448
- /**
449
- * Constructs a CLI instance. See {@link InternalCLI} for more information.
450
- * @param name Name for the top level CLI
451
- * @param rootCommandConfiguration Configuration used when running the bare CLI. e.g. npx my-cli, rather than npx my-cli [cmd]
452
- * @returns A {@link InternalCLI} instance.
453
- */
454
- function cli(name, rootCommandConfiguration) {
455
- return new InternalCLI(name, rootCommandConfiguration);
456
- }
457
- exports.default = cli;
458
551
  //# sourceMappingURL=cli-forge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-forge.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/src/lib/cli-forge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-forge.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/src/lib/cli-forge.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { InternalCLI } from './cli-forge';
3
3
  export type Documentation = {
4
4
  name: string;
5
5
  description?: string;
6
+ epilogue?: string;
6
7
  usage: string;
7
8
  examples: string[];
8
9
  options: Readonly<Record<string, OptionConfig & {
@@ -11,19 +12,28 @@ export type Documentation = {
11
12
  positionals: readonly Readonly<OptionConfig & {
12
13
  key: string;
13
14
  }>[];
15
+ groupedOptions: Array<{
16
+ label: string;
17
+ keys: Array<OptionConfig & {
18
+ key: string;
19
+ }>;
20
+ }>;
14
21
  subcommands: Documentation[];
15
22
  };
16
23
  export declare function generateDocumentation(cli: InternalCLI, commandChain?: string[]): {
17
24
  name: string;
18
25
  description: string | undefined;
19
26
  usage: string;
27
+ epilogue: string | undefined;
20
28
  examples: string[];
29
+ groupedOptions: {
30
+ label: string;
31
+ sortOrder: number;
32
+ keys: Array<import("@cli-forge/parser").InternalOptionConfig>;
33
+ }[];
21
34
  options: Record<string, OptionConfig & {
22
35
  key: string;
23
36
  }>;
24
- positionals: readonly Readonly<OptionConfig<any> & {
25
- key: string;
26
- position?: number;
27
- }>[];
37
+ positionals: readonly Readonly<import("@cli-forge/parser").InternalOptionConfig>[];
28
38
  subcommands: Documentation[];
29
39
  };
@@ -7,12 +7,23 @@ function generateDocumentation(cli, commandChain = []) {
7
7
  cli.configuration.builder(cli);
8
8
  }
9
9
  const parser = cli.getParser();
10
- const options = parser.configuredOptions;
10
+ const groupedOptions = cli.getGroupedOptions();
11
+ const options = Object.fromEntries(Object.entries(parser.configuredOptions).filter(([, c]) => !c.hidden));
11
12
  const positionals = parser.configuredPositionals;
12
13
  for (const positional of positionals) {
13
14
  delete options[positional.key];
14
15
  }
15
- const subcommands = Object.values(cli.getSubcommands()).map((cmd) => generateDocumentation(cmd.clone(), [...commandChain, cli.name]));
16
+ const subcommands = [];
17
+ for (const subcommand of Object.values(cli.getSubcommands())) {
18
+ if (subcommand.configuration?.hidden !== true) {
19
+ const clone = subcommand.clone();
20
+ if (clone.configuration) {
21
+ clone.configuration.epilogue ??= cli.configuration?.epilogue;
22
+ }
23
+ subcommands.push(generateDocumentation(clone, [...commandChain, cli.name]));
24
+ }
25
+ }
26
+ Object.values(cli.getSubcommands()).map((cmd) => generateDocumentation(cmd.clone(), [...commandChain, cli.name]));
16
27
  return {
17
28
  name: cli.name,
18
29
  description: cli.configuration?.description,
@@ -25,7 +36,9 @@ function generateDocumentation(cli, commandChain = []) {
25
36
  cli.name,
26
37
  ...positionals.map((p) => (p.required ? `<${p.key}>` : `[${p.key}]`)),
27
38
  ].join(' '),
39
+ epilogue: cli.configuration?.epilogue,
28
40
  examples: cli.configuration?.examples ?? [],
41
+ groupedOptions,
29
42
  options,
30
43
  positionals,
31
44
  subcommands,
@@ -1 +1 @@
1
- {"version":3,"file":"documentation.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/src/lib/documentation.ts"],"names":[],"mappings":";;AAaA,sDAqCC;AArCD,SAAgB,qBAAqB,CACnC,GAAgB,EAChB,eAAyB,EAAE;IAE3B,8CAA8C;IAC9C,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QAC/B,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;IAE/B,MAAM,OAAO,GACX,MAAM,CAAC,iBAAiB,CAAC;IAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC;IACjD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,WAAW,GAAoB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,CAC1E,CAAC,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CACzE,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,aAAa,EAAE,WAAW;QAC3C,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK;YAC7B,CAAC,CAAC,YAAY,CAAC,MAAM;gBACnB,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtD,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK;YAC5B,CAAC,CAAC;gBACE,GAAG,YAAY;gBACf,GAAG,CAAC,IAAI;gBACR,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;aACtE,CAAC,IAAI,CAAC,GAAG,CAAC;QACf,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,IAAI,EAAE;QAC3C,OAAO;QACP,WAAW;QACX,WAAW;KACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"documentation.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/src/lib/documentation.ts"],"names":[],"mappings":";;AAkBA,sDAuDC;AAvDD,SAAgB,qBAAqB,CACnC,GAAgB,EAChB,eAAyB,EAAE;IAE3B,8CAA8C;IAC9C,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QAC/B,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC;IAE/B,MAAM,cAAc,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;IAC/C,MAAM,OAAO,GACX,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CACtE,CAAC;IACJ,MAAM,WAAW,GAAG,MAAM,CAAC,qBAAqB,CAAC;IACjD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,WAAW,GAAoB,EAAE,CAAC;IACxC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC;QAC7D,IAAI,UAAU,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxB,KAAK,CAAC,aAAa,CAAC,QAAQ,KAAK,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC;YAC/D,CAAC;YACD,WAAW,CAAC,IAAI,CACd,qBAAqB,CAAC,KAAK,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9C,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAChE,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,aAAa,EAAE,WAAW;QAC3C,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK;YAC7B,CAAC,CAAC,YAAY,CAAC,MAAM;gBACnB,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtD,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK;YAC5B,CAAC,CAAC;gBACE,GAAG,YAAY;gBACf,GAAG,CAAC,IAAI;gBACR,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;aACtE,CAAC,IAAI,CAAC,GAAG,CAAC;QACf,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ;QACrC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,QAAQ,IAAI,EAAE;QAC3C,cAAc;QACd,OAAO;QACP,WAAW;QACX,WAAW;KACZ,CAAC;AACJ,CAAC"}
@@ -7,7 +7,7 @@ export declare let INTERACTIVE_SHELL: InteractiveShell | undefined;
7
7
  export declare class InteractiveShell {
8
8
  private readonly rl;
9
9
  private listeners;
10
- constructor(cli: InternalCLI, opts?: InteractiveShellOptions);
10
+ constructor(cli: InternalCLI<any>, opts?: InteractiveShellOptions);
11
11
  registerLineListener(callback: (line: string) => Promise<void>): void;
12
12
  close(): void;
13
13
  }
@@ -28,6 +28,7 @@ class InteractiveShell {
28
28
  if (exports.INTERACTIVE_SHELL) {
29
29
  throw new Error('Only one interactive shell can be created at a time. Make sure the other instance is closed.');
30
30
  }
31
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
31
32
  exports.INTERACTIVE_SHELL = this;
32
33
  const { prompt, prependArgs } = normalizeShellOptions(cli, opts);
33
34
  this.rl = readline
@@ -58,7 +59,9 @@ class InteractiveShell {
58
59
  try {
59
60
  (0, child_process_1.execSync)(line, { stdio: 'inherit' });
60
61
  }
61
- catch { }
62
+ catch {
63
+ // ignore
64
+ }
62
65
  }
63
66
  });
64
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-shell.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/src/lib/interactive-shell.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,mCAAuC;AAEvC,iDAAoD;AACpD,8CAA2C;AAS3C,SAAS,qBAAqB,CAC5B,GAAgB,EAChB,OAAiC;IAEjC,OAAO;QACL,MAAM,EACJ,OAAO,EAAE,MAAM;YACf,CAAC,GAAG,EAAE;gBACJ,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACzB,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;YAChC,CAAC,CAAC,EAAE;QACN,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,EAAE;KACxC,CAAC;AACJ,CAAC;AAID,MAAa,gBAAgB;IACV,EAAE,CAAqB;IAChC,SAAS,GAAU,EAAE,CAAC;IAE9B,YAAY,GAAgB,EAAE,IAA8B;QAC1D,IAAI,yBAAiB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;QACJ,CAAC;QACD,yBAAiB,GAAG,IAAI,CAAC;QAEzB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEjE,IAAI,CAAC,EAAE,GAAG,QAAQ;aACf,eAAe,CAAC;YACf,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,MAAM;SACf,CAAC;aACD,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACjB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QAEjB,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvC,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC;YACpC,IAAI,cAAc,GAAG,GAAG,CAAC;YACzB,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBAC1C,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,cAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,IAAA,yBAAS,EACP,OAAO,CAAC,QAAQ,EAChB;oBACE,GAAG,OAAO,CAAC,QAAQ;oBACnB,IAAA,eAAM,EAAC,OAAO,CAAC,IAAI,CAAC;oBACpB,GAAG,WAAW;oBACd,GAAG,QAAQ;iBACZ,EACD,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC;oBACH,IAAA,wBAAQ,EAAC,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBACvC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB,CAAC,QAAyC;QAC5D,MAAM,OAAO,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;YACrC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;QACnB,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAChB,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACzE,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,yBAAiB,KAAK,IAAI,EAAE,CAAC;YAC/B,yBAAiB,GAAG,SAAS,CAAC;QAChC,CAAC;IACH,CAAC;CACF;AAtED,4CAsEC"}
1
+ {"version":3,"file":"interactive-shell.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/src/lib/interactive-shell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,212 @@
1
+ import { ArrayOptionConfig, OptionConfig, ParsedArgs } from '@cli-forge/parser';
2
+ /**
3
+ * The interface for a CLI application or subcommands.
4
+ *
5
+ * {@link cli} is provided as a small helper function to create a new CLI instance.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { cli } from 'cli-forge';
10
+ *
11
+ * cli('basic-cli').command('hello', {
12
+ * builder: (args) =>
13
+ * args.option('name', {
14
+ * type: 'string',
15
+ * }),
16
+ * handler: (args) => {
17
+ * console.log(`Hello, ${args.name}!`);
18
+ * }).forge();
19
+ * ```
20
+ */
21
+ export interface CLI<TArgs extends ParsedArgs = ParsedArgs> {
22
+ command<TCommandArgs extends TArgs>(cmd: Command<TArgs, TCommandArgs>): CLI<TArgs>;
23
+ /**
24
+ * Registers a new command with the CLI.
25
+ * @param key What should the new command be called?
26
+ * @param options Settings for the new command. See {@link CLICommandOptions}.
27
+ * @returns Updated CLI instance with the new command registered.
28
+ */
29
+ command<TCommandArgs extends TArgs>(key: string, options: CLICommandOptions<TArgs, TCommandArgs>): CLI<TArgs>;
30
+ /**
31
+ * Registers multiple subcommands with the CLI.
32
+ * @param commands Several commands to register. Can be the result of a call to {@link cli} or a configuration object.
33
+ */
34
+ commands(commands: Command[]): CLI<TArgs>;
35
+ /**
36
+ * Registers multiple subcommands with the CLI.
37
+ * @param commands Several commands to register. Can be the result of a call to {@link cli} or a configuration object.
38
+ */
39
+ commands(...commands: Command[]): CLI<TArgs>;
40
+ /**
41
+ * Enables the ability to run CLI commands that contain subcommands as an interactive shell.
42
+ * This presents as a small shell that only knows the current command and its subcommands.
43
+ * Any flags already consumed by the command will be passed to every subcommand invocation.
44
+ */
45
+ enableInteractiveShell(): CLI<TArgs>;
46
+ /**
47
+ * Registers a custom global error handler for the CLI. This handler will be called when an error is thrown
48
+ * during the execution of the CLI and not otherwise handled. Error handlers should re-throw the error if they
49
+ * cannot handle it, s.t. the next error handler can attempt to handle it.
50
+ *
51
+ * @param handler Typically called with an Error object, but you should be prepared to handle any type of error.
52
+ * @param actions Actions that can be taken by the error handler. Prefer using these over process.exit for better support of interactive shells.
53
+ */
54
+ errorHandler(handler: ErrorHandler): CLI<TArgs>;
55
+ /**
56
+ * Registers a new option for the CLI command. This option will be accessible
57
+ * within the command handler, as well as any subcommands.
58
+ *
59
+ * @param name The name of the option.
60
+ * @param config Configuration for the option. See {@link OptionConfig}.
61
+ * @returns Updated CLI instance with the new option registered.
62
+ */
63
+ option<TOption extends string, TOptionConfig extends OptionConfig>(name: TOption, config: TOptionConfig): CLI<TArgs & {
64
+ [key in TOption]: TOptionConfig['coerce'] extends (value: string) => infer TCoerce ? TCoerce : {
65
+ string: string;
66
+ number: number;
67
+ boolean: boolean;
68
+ array: (TOptionConfig extends ArrayOptionConfig<string | number> ? TOptionConfig['items'] extends 'string' ? string : number : never)[];
69
+ }[TOptionConfig['type']];
70
+ }>;
71
+ /**
72
+ * Registers a new positional argument for the CLI command. This argument will be accessible
73
+ * within the command handler, as well as any subcommands.
74
+ * @param name The name of the positional argument.
75
+ * @param config Configuration for the positional argument. See {@link OptionConfig}.
76
+ * @returns Updated CLI instance with the new positional argument registered.
77
+ */
78
+ positional<TOption extends string, TOptionConfig extends OptionConfig>(name: TOption, config: TOptionConfig): CLI<TArgs & {
79
+ [key in TOption]: TOptionConfig['coerce'] extends (value: string) => infer TCoerce ? TCoerce : {
80
+ string: string;
81
+ number: number;
82
+ boolean: boolean;
83
+ array: (TOptionConfig extends ArrayOptionConfig<string | number> ? TOptionConfig['items'] extends 'string' ? string : number : never)[];
84
+ }[TOptionConfig['type']];
85
+ }>;
86
+ /**
87
+ * Adds support for reading CLI options from environment variables.
88
+ * @param prefix The prefix to use when looking up environment variables. Defaults to the command name.
89
+ */
90
+ env(prefix?: string): CLI<TArgs>;
91
+ /**
92
+ * Sets a group of options as mutually exclusive. If more than one option is provided, there will be a validation error.
93
+ * @param options The options that should be mutually exclusive.
94
+ */
95
+ conflicts(...options: [string, string, ...string[]]): CLI<TArgs>;
96
+ /**
97
+ * Sets a group of options as mutually inclusive. If one option is provided, all other options must also be provided.
98
+ * @param option The option that implies the other options.
99
+ * @param impliedOptions The options which become required when the option is provided.
100
+ */
101
+ implies(option: string, ...impliedOptions: string[]): CLI<TArgs>;
102
+ /**
103
+ * Requires a command to be provided when executing the CLI. Useful if your parent command
104
+ * cannot be executed on its own.
105
+ * @returns Updated CLI instance.
106
+ */
107
+ demandCommand(): CLI<TArgs>;
108
+ /**
109
+ * Sets the usage text for the CLI. This text will be displayed in place of the default usage text
110
+ * @param usageText Text displayed in place of the default usage text for `--help` and in generated docs.
111
+ */
112
+ usage(usageText: string): CLI<TArgs>;
113
+ /**
114
+ * Sets the description for the CLI. This text will be displayed in the help text and generated docs.
115
+ * @param examples Examples to display in the help text and generated docs.
116
+ */
117
+ examples(...examples: string[]): CLI<TArgs>;
118
+ /**
119
+ * Allows overriding the version displayed when passing `--version`. Defaults to crawling
120
+ * the file system to get the package.json of the currently executing command.
121
+ * @param override
122
+ */
123
+ version(override?: string): CLI<TArgs>;
124
+ /**
125
+ * Prints help text to stdout.
126
+ */
127
+ printHelp(): void;
128
+ group({ label, keys, sortOrder, }: {
129
+ label: string;
130
+ keys: (keyof TArgs)[];
131
+ sortOrder: number;
132
+ }): CLI<TArgs>;
133
+ group(label: string, keys: (keyof TArgs)[]): CLI<TArgs>;
134
+ middleware(callback: (args: TArgs) => void): CLI<TArgs>;
135
+ /**
136
+ * Parses argv and executes the CLI
137
+ * @param args argv. Defaults to process.argv.slice(2)
138
+ * @returns Promise that resolves when the handler completes.
139
+ */
140
+ forge(args?: string[]): Promise<TArgs>;
141
+ }
142
+ export interface CLIHandlerContext {
143
+ command: CLI<any>;
144
+ }
145
+ /**
146
+ * Represents the configuration needed to create a CLI command.
147
+ */
148
+ export interface CLICommandOptions<
149
+ /**
150
+ * The type of the arguments that are already registered before `builder` is invoked.
151
+ */
152
+ TInitial extends ParsedArgs,
153
+ /**
154
+ * The type of the arguments that are registered after `builder` is invoked, and the type that is passed to the handler.
155
+ */
156
+ TArgs extends TInitial = TInitial> {
157
+ /**
158
+ * The command description. This will be displayed in the help text and generated docs.
159
+ */
160
+ description?: string;
161
+ /**
162
+ * The command builder. This function is called before the command is executed, and is used to register options and positional parameters.
163
+ * @param parser The parser instance to register options and positionals with.
164
+ */
165
+ builder?: (parser: CLI<TInitial>) => CLI<TArgs>;
166
+ /**
167
+ * The command handler. This function is called when the command is executed.
168
+ * @param args The parsed arguments.
169
+ * @param context Context for the handler. Contains the command instance.
170
+ */
171
+ handler?: (args: TArgs, context: CLIHandlerContext) => void | Promise<void>;
172
+ /**
173
+ * The usage text for the command. This text will be displayed in place of the default usage text in the help text and generated docs.
174
+ */
175
+ usage?: string;
176
+ /**
177
+ * Examples to display in the help text and generated docs.
178
+ */
179
+ examples?: string[];
180
+ /**
181
+ * Hides the command from the help text and generated docs. Useful primarily for experimental or internal commands.
182
+ */
183
+ hidden?: boolean;
184
+ /**
185
+ * The epilogue text for the command. This text will be displayed at the end of the help text and generated docs.
186
+ */
187
+ epilogue?: string;
188
+ }
189
+ export type Command<TInitial extends ParsedArgs = any, TArgs extends TInitial = TInitial> = ({
190
+ name: string;
191
+ } & CLICommandOptions<TInitial, TArgs>) | CLI<TArgs>;
192
+ /**
193
+ * Error Handler for CLI applications. Error handlers should re-throw the error if they cannot handle it.
194
+ *
195
+ * @param e The error that was thrown.
196
+ * @param actions Actions that can be taken by the error handler. Prefer using these over process.exit for better support of interactive shells.
197
+ */
198
+ export type ErrorHandler = (e: unknown, actions: {
199
+ /**
200
+ * Exits the process immediately.
201
+ * @param code
202
+ */
203
+ exit: (code?: number) => void;
204
+ }) => void;
205
+ /**
206
+ * Constructs a CLI instance. See {@link InternalCLI} for more information.
207
+ * @param name Name for the top level CLI
208
+ * @param rootCommandConfiguration Configuration used when running the bare CLI. e.g. npx my-cli, rather than npx my-cli [cmd]
209
+ * @returns A {@link InternalCLI} instance.
210
+ */
211
+ export declare function cli<TArgs extends ParsedArgs>(name: string, rootCommandConfiguration?: CLICommandOptions<ParsedArgs, TArgs>): CLI<TArgs>;
212
+ export default cli;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cli = cli;
4
+ const cli_forge_1 = require("./cli-forge");
5
+ /**
6
+ * Constructs a CLI instance. See {@link InternalCLI} for more information.
7
+ * @param name Name for the top level CLI
8
+ * @param rootCommandConfiguration Configuration used when running the bare CLI. e.g. npx my-cli, rather than npx my-cli [cmd]
9
+ * @returns A {@link InternalCLI} instance.
10
+ */
11
+ function cli(name, rootCommandConfiguration) {
12
+ return new cli_forge_1.InternalCLI(name, rootCommandConfiguration);
13
+ }
14
+ exports.default = cli;
15
+ //# sourceMappingURL=public-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/src/lib/public-api.ts"],"names":[],"mappings":";;AA4RA,kBAKC;AAhSD,2CAA0C;AAqR1C;;;;;GAKG;AACH,SAAgB,GAAG,CACjB,IAAY,EACZ,wBAA+D;IAE/D,OAAO,IAAI,uBAAW,CAAC,IAAI,EAAE,wBAAwB,CAAsB,CAAC;AAC9E,CAAC;AAED,kBAAe,GAAG,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { ParsedArgs } from '@cli-forge/parser';
2
- import { CLI } from './cli-forge';
2
+ import { CLI } from './public-api';
3
3
  export type TestHarnessParseResult<T extends ParsedArgs> = {
4
4
  /**
5
5
  * Parsed arguments. Note the the typing of this is based on the CLI typings,
@@ -28,7 +28,9 @@ class TestHarness {
28
28
  exports.TestHarness = TestHarness;
29
29
  function mockHandler(cli) {
30
30
  if (cli.configuration?.handler) {
31
- cli.configuration.handler = () => { };
31
+ cli.configuration.handler = () => {
32
+ // Mocked, should do nothing.
33
+ };
32
34
  }
33
35
  for (const command in cli.registeredCommands) {
34
36
  mockHandler(cli.registeredCommands[command]);
@@ -1 +1 @@
1
- {"version":3,"file":"test-harness.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/src/lib/test-harness.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AA6B/C;;;GAGG;AACH,MAAa,WAAW;IACd,GAAG,CAAiB;IAE5B,YAAY,GAAW;QACrB,IAAI,GAAG,YAAY,uBAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAc;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExC,OAAO;YACL,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY;SACpC,CAAC;IACJ,CAAC;CACF;AAtBD,kCAsBC;AAED,SAAS,WAAW,CAAC,GAAgB;IACnC,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QAC/B,GAAG,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC7C,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"test-harness.js","sourceRoot":"","sources":["../../../../../packages/cli-forge/src/lib/test-harness.ts"],"names":[],"mappings":";;;AACA,2CAA0C;AA8B1C;;;GAGG;AACH,MAAa,WAAW;IACd,GAAG,CAAiB;IAE5B,YAAY,GAAW;QACrB,IAAI,GAAG,YAAY,uBAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;YACf,WAAW,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAc;QACxB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExC,OAAO;YACL,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY;SACpC,CAAC;IACJ,CAAC;CACF;AAtBD,kCAsBC;AAED,SAAS,WAAW,CAAC,GAAgB;IACnC,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QAC/B,GAAG,CAAC,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE;YAC/B,6BAA6B;QAC/B,CAAC,CAAC;IACJ,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC7C,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}