@clerc/plugin-help 1.0.0-beta.13 → 1.0.0-beta.14

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/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  import { Plugin } from "@clerc/core";
2
2
 
3
3
  //#region ../parser/src/types.d.ts
4
-
4
+ type FlagDefaultValue<T = unknown> = T | ((() => T) & {
5
+ display?: string;
6
+ });
5
7
  /**
6
8
  * Defines how a string input is converted to the target type T.
7
9
  *
@@ -12,13 +14,14 @@ type FlagTypeFunction<T = unknown> = ((value: string) => T) & {
12
14
  * Optional display name for the type, useful in help output.
13
15
  * If provided, this will be shown instead of the function name.
14
16
  */
15
- displayName?: string;
17
+ display?: string;
16
18
  };
17
19
  type FlagType<T = unknown> = FlagTypeFunction<T> | readonly [FlagTypeFunction<T>];
18
20
  //#endregion
19
21
  //#region src/types.d.ts
20
22
  interface Formatters {
21
23
  formatFlagType: (type: FlagType) => string;
24
+ formatFlagDefault: <T>(value: FlagDefaultValue<T>) => string;
22
25
  }
23
26
  /**
24
27
  * A group definition as a tuple of [key, displayName].
package/dist/index.js CHANGED
@@ -14,10 +14,14 @@ const objectIsEmpty = (obj) => Object.keys(obj).length === 0;
14
14
  //#endregion
15
15
  //#region src/utils.ts
16
16
  function formatFlagType(type) {
17
- if (typeof type === "function") return type.displayName ?? type.name;
17
+ if (typeof type === "function") return type.display ?? type.name;
18
18
  const innerType = type[0];
19
19
  return `Array<${innerType.displayName ?? innerType.name}>`;
20
20
  }
21
+ function formatFlagDefault(value) {
22
+ if (typeof value === "function" && "display" in value && value.display) return value.display;
23
+ return String(value);
24
+ }
21
25
  function formatCommandName(name) {
22
26
  if (name === "") return "(root)";
23
27
  return name;
@@ -25,7 +29,10 @@ function formatCommandName(name) {
25
29
 
26
30
  //#endregion
27
31
  //#region src/formatters.ts
28
- const defaultFormatters = { formatFlagType };
32
+ const defaultFormatters = {
33
+ formatFlagType,
34
+ formatFlagDefault
35
+ };
29
36
 
30
37
  //#endregion
31
38
  //#region src/renderer.ts
@@ -159,7 +166,7 @@ var HelpRenderer = class {
159
166
  yc.blue([flagName, aliases].filter(Boolean).join(", ")),
160
167
  yc.gray(type),
161
168
  flag.description,
162
- flag.default !== void 0 && yc.gray(`[default: ${String(flag.default)}]`)
169
+ flag.default !== void 0 && yc.gray(`[default: ${this._formatters.formatFlagDefault(flag.default)}]`)
163
170
  ].filter(isTruthy);
164
171
  }
165
172
  renderGroupedFlags(flags, groupMap, itemType) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clerc/plugin-help",
3
- "version": "1.0.0-beta.13",
3
+ "version": "1.0.0-beta.14",
4
4
  "author": "Ray <i@mk1.io> (https://github.com/so1ve)",
5
5
  "type": "module",
6
6
  "description": "Clerc plugin help",
@@ -52,9 +52,9 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "kons": "^0.7.1",
55
- "@clerc/core": "1.0.0-beta.13",
56
- "@clerc/parser": "1.0.0-beta.13",
57
- "@clerc/utils": "1.0.0-beta.13"
55
+ "@clerc/core": "1.0.0-beta.14",
56
+ "@clerc/utils": "1.0.0-beta.14",
57
+ "@clerc/parser": "1.0.0-beta.14"
58
58
  },
59
59
  "peerDependencies": {
60
60
  "@clerc/core": "*"