+7
-1
@@ -10,6 +10,12 @@ # Changelog | ||
| ## [v1.0.1](https://github.com/bcomnes/argsclopts/compare/v1.0.0...v1.0.1) | ||
| ## [v1.0.2](https://github.com/bcomnes/argsclopts/compare/v1.0.1...v1.0.2) | ||
| ### Commits | ||
| - Improve docs, finalize api [`98e74af`](https://github.com/bcomnes/argsclopts/commit/98e74af5ef161f1868362bb912bd6e4fe9bd1f21) | ||
| ## [v1.0.1](https://github.com/bcomnes/argsclopts/compare/v1.0.0...v1.0.1) - 2023-12-26 | ||
| ### Commits | ||
| - Fix type exports [`124b00f`](https://github.com/bcomnes/argsclopts/commit/124b00fb1ca9af4eca5b20579744a563845cf48e) | ||
@@ -16,0 +22,0 @@ - Fix matrix [`1373c20`](https://github.com/bcomnes/argsclopts/commit/1373c200db7e8ebb50d49b3a0f2adc366f307a2b) |
+6
-6
@@ -6,6 +6,6 @@ export function usage(options: ArgscloptsParseArgsOptionsConfig): string; | ||
| }>; | ||
| export function header({ pkgPath, name, usageFn, exampleFn }: { | ||
| export function header({ pkgPath, name, headerFn, exampleFn }: { | ||
| pkgPath: string; | ||
| name?: string | undefined; | ||
| usageFn?: FormatterFunction | undefined; | ||
| headerFn?: FormatterFunction | undefined; | ||
| exampleFn?: FormatterFunction | undefined; | ||
@@ -19,3 +19,3 @@ }): Promise<string>; | ||
| }): Promise<string>; | ||
| export function formatHelpText({ options, pkgPath, name, version, footerFn, usageFn, exampleFn }: { | ||
| export function formatHelpText({ options, pkgPath, name, version, footerFn, headerFn, exampleFn }: { | ||
| pkgPath: string; | ||
@@ -25,7 +25,7 @@ options: ArgscloptsParseArgsOptionsConfig; | ||
| version?: string | undefined; | ||
| usageFn?: FormatterFunction | undefined; | ||
| headerFn?: FormatterFunction | undefined; | ||
| exampleFn?: FormatterFunction | undefined; | ||
| footerFn?: FormatterFunction | undefined; | ||
| }): Promise<string>; | ||
| export function printHelpText({ options, pkgPath, name, version, footerFn, usageFn, exampleFn }: { | ||
| export function printHelpText({ options, pkgPath, name, version, footerFn, headerFn, exampleFn }: { | ||
| pkgPath: string; | ||
@@ -35,3 +35,3 @@ options: ArgscloptsParseArgsOptionsConfig; | ||
| version?: string | undefined; | ||
| usageFn?: FormatterFunction | undefined; | ||
| headerFn?: FormatterFunction | undefined; | ||
| exampleFn?: FormatterFunction | undefined; | ||
@@ -38,0 +38,0 @@ footerFn?: FormatterFunction | undefined; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAuBA,+BAHW,gCAAgC,GAC9B,MAAM,CAkClB;AAUD,iCANY,MAAM,GACN,QAAQ;IACnB,IAAc,EAAE,MAAM,CAAA;IACtB,OAAiB,EAAE,MAAM,CAAA;CACtB,CAAC,CAIJ;AA2BD;IAX0B,OAAO,EAAtB,MAAM;IACU,IAAI;IACO,OAAO;IACP,SAAS;IAClC,QAAQ,MAAM,CAAC,CA2B3B;AAeD;IAT0B,OAAO,EAAtB,MAAM;IACU,IAAI;IACJ,OAAO;IACI,QAAQ;IACjC,QAAQ,MAAM,CAAC,CAyB3B;AAkBD;IAZ0B,OAAO,EAAtB,MAAM;IACmC,OAAO,EAAhD,gCAAgC;IAChB,IAAI;IACJ,OAAO;IACI,OAAO;IACP,SAAS;IACT,QAAQ;IACjC,QAAQ,MAAM,CAAC,CAqB3B;AAiBD;IAX0B,OAAO,EAAtB,MAAM;IACmC,OAAO,EAAhD,gCAAgC;IAChB,IAAI;IACJ,OAAO;IACI,OAAO;IACP,SAAS;IACT,QAAQ;kBAqB7C;;IA9IuB,IAAI;IACJ,OAAO;MAClB,MAAM;8BAzEN,OAAO,WAAW,EAAE,eAAe;qCACnC,QAAQ,eAAe,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;oCAC9C,sBAAsB,CAAC,MAAM,CAAC;;WAG7B,MAAM;gBACN,MAAM;;+CAIP,OAAO,MAAM,EAAE,iBAAiB,GAAG,qBAAqB,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.js"],"names":[],"mappings":"AAuBA,+BAHW,gCAAgC,GAC9B,MAAM,CAkClB;AAUD,iCANY,MAAM,GACN,QAAQ;IACnB,IAAc,EAAE,MAAM,CAAA;IACtB,OAAiB,EAAE,MAAM,CAAA;CACtB,CAAC,CAIJ;AA2BD;IAX0B,OAAO,EAAtB,MAAM;IACU,IAAI;IACO,QAAQ;IACR,SAAS;IAClC,QAAQ,MAAM,CAAC,CA0B3B;AAeD;IAT0B,OAAO,EAAtB,MAAM;IACU,IAAI;IACJ,OAAO;IACI,QAAQ;IACjC,QAAQ,MAAM,CAAC,CAyB3B;AAkBD;IAZ0B,OAAO,EAAtB,MAAM;IACmC,OAAO,EAAhD,gCAAgC;IAChB,IAAI;IACJ,OAAO;IACI,QAAQ;IACR,SAAS;IACT,QAAQ;IACjC,QAAQ,MAAM,CAAC,CAqB3B;AAiBD;IAX0B,OAAO,EAAtB,MAAM;IACmC,OAAO,EAAhD,gCAAgC;IAChB,IAAI;IACJ,OAAO;IACI,QAAQ;IACR,SAAS;IACT,QAAQ;kBAqB7C;;IA7IuB,IAAI;IACJ,OAAO;MAClB,MAAM;8BAzEN,OAAO,WAAW,EAAE,eAAe;qCACnC,QAAQ,eAAe,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;oCAC9C,sBAAsB,CAAC,MAAM,CAAC;;WAG7B,MAAM;gBACN,MAAM;;+CAIP,OAAO,MAAM,EAAE,iBAAiB,GAAG,qBAAqB,CAAC"} |
+9
-10
@@ -86,3 +86,3 @@ import { readFile } from 'node:fs/promises' | ||
| * @param {string} [params.name] - The name to be used in the header. If not provided, it's extracted from the package file at 'pkgPath'. | ||
| * @param {FormatterFunction} [params.usageFn] - A function that returns the usage string. | ||
| * @param {FormatterFunction} [params.headerFn] - A function that returns the usage string. | ||
| * @param {FormatterFunction} [params.exampleFn] - A function that returns an example string. | ||
@@ -99,5 +99,4 @@ * @returns {Promise<string>} - A promise that resolves to the constructed header string. | ||
| name, | ||
| usageFn = ({ name }) => `Usage: ${name} [options]\n`, | ||
| headerFn = ({ name }) => `Usage: ${name} [options]\n`, | ||
| exampleFn = ({ name }) => indent + `Example: ${name}\n` | ||
| }) { | ||
@@ -114,3 +113,3 @@ let pkg | ||
| const header = [usageFn({ name: pkgName }), exampleFn({ name: pkgName })].join('\n') | ||
| const header = [headerFn({ name: pkgName }), exampleFn({ name: pkgName })].join('\n') | ||
@@ -163,3 +162,3 @@ return header | ||
| * @param {string} [params.version] - The bin version | ||
| * @param {FormatterFunction} [params.usageFn] - A function that returns the usage string. | ||
| * @param {FormatterFunction} [params.headerFn] - A function that returns the usage string. | ||
| * @param {FormatterFunction} [params.exampleFn] - A function that returns an example string. | ||
@@ -178,7 +177,7 @@ * @param {FormatterFunction} [params.footerFn] - A function that returns the footer string. | ||
| footerFn, | ||
| usageFn, | ||
| headerFn, | ||
| exampleFn | ||
| }) { | ||
| const helpText = [ | ||
| await header({ pkgPath, name, usageFn, exampleFn }), | ||
| await header({ pkgPath, name, headerFn, exampleFn }), | ||
| usage(options), | ||
@@ -199,3 +198,3 @@ await footer({ pkgPath, name, version, footerFn }) | ||
| * @param {string} [params.version] - The bin version | ||
| * @param {FormatterFunction} [params.usageFn] - A function that returns the usage string. | ||
| * @param {FormatterFunction} [params.headerFn] - A function that returns the usage string. | ||
| * @param {FormatterFunction} [params.exampleFn] - A function that returns an example string. | ||
@@ -213,7 +212,7 @@ * @param {FormatterFunction} [params.footerFn] - A function that returns the footer string. | ||
| footerFn, | ||
| usageFn, | ||
| headerFn, | ||
| exampleFn | ||
| }) { | ||
| const helpText = [ | ||
| await header({ pkgPath, name, usageFn, exampleFn }), | ||
| await header({ pkgPath, name, headerFn, exampleFn }), | ||
| usage(options), | ||
@@ -220,0 +219,0 @@ await footer({ pkgPath, name, version, footerFn }) |
+1
-1
| { | ||
| "name": "argsclopts", | ||
| "description": "cliclopts but for Node.js parseArgs", | ||
| "version": "1.0.1", | ||
| "version": "1.0.2", | ||
| "author": "Bret Comnes <bcomnes@gmail.com> (https://bret.io)", | ||
@@ -6,0 +6,0 @@ "bugs": { |
+49
-1
@@ -18,6 +18,10 @@ # argsclopts | ||
| ``` js | ||
| import { formatHelpText, printHelpText } from 'argsclopts' | ||
| import { printHelpText } from 'argsclopts' | ||
| import { join } from 'node:path' | ||
| import { parseArgs } from 'node:util' | ||
| /** | ||
| * @typedef {import('argsclopts').ArgscloptsParseArgsOptionsConfig} ArgscloptsParseArgsOptionsConfig | ||
| */ | ||
| const pkgPath = join(import.meta.dirname, 'package.json') | ||
@@ -57,7 +61,51 @@ | ||
| const { values } = parseArgs({ args, options }) | ||
| console.log(values) | ||
| // { foo: true, bar: 'b' } | ||
| ``` | ||
| ## API | ||
| ### `import { formatHelpText, printHelpText, usage, header, footer } from 'argsclopts'` | ||
| You can import `formatHelpText`, `printHelpText`, `usage`, `header`, `footer` from `argsclopts`. | ||
| s | ||
| ### `helpText = formatHelpText({ options, [pkgPath], [name], [version], [footerFn], [headerFn], [exampleFn]})` | ||
| Generate the `helptText` string. Requires passing in an `options` object that you provide to [`parseArgs`](https://nodejs.org/api/util.html#utilparseargsconfig), with one additional field per flag: `help`. You should also provide `pkgPath` (a resolved path the `package.json`) so that a bin name and version can be resolved. Otherwise, pass in a `name` and `version` to override any resolved data from `pkgPath`. If both `name` and `version` are provided, a `pkgPath` is required. The `headerFn`, and `exampleFn` can be used to override the header text and the `footerFn` can be used to override the footer text. | ||
| An example `options` object might look like this: | ||
| ```js | ||
| const options = { | ||
| foo: { | ||
| type: 'boolean', | ||
| short: 'f', | ||
| help: 'A foo flag thats a boolean' | ||
| }, | ||
| bar: { | ||
| type: 'string', | ||
| help: 'A bar flag thats a string' | ||
| } | ||
| } | ||
| ``` | ||
| ### `void printHelpText({ options, [pkgPath], [name], [version], [footerFn], [headerFn], [exampleFn]})` | ||
| Exactly the same as `formatHelpText` except it uses `console.log` to print the text for you. Returns nothing. | ||
| ### `usageText = usage(options)` | ||
| Generate just the usage string with a given `options` object. | ||
| ### `headerText = header({ [pkgPath], [name], [headerFn], [exampleFn] }) | ||
| Generate the headerText only. Pass in either a `pkgPath` string path to the `package.json` of the bin you are printing for, or a `name`. The `headerFn` and `exampleFn` allow you to override the header text that is generated. Each function receilves an object with a `name` key. | ||
| ### `footerText = footer({ [pkgPath], [name], [version], [footerFn] })` | ||
| Generate the footerText only. Pass in either a `pkgPath` string path to the `package.json` of the bin you are printing for, or a `name` and/or `version`. The `footerFn` lets you override the footer text template and receives an object with a `name` and `version` key. | ||
| ## License | ||
| MIT |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
24617
11.47%110
77.42%