@ztimson/utils 0.23.4 → 0.23.5
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/arg-parser.d.ts +0 -1
- package/dist/index.cjs +13 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +13 -12
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/arg-parser.d.ts
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
var __defNormalProp = (obj, key, value2) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
|
|
6
6
|
var __publicField = (obj, key, value2) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value2);
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
class ArgParser {
|
|
9
9
|
/**
|
|
10
10
|
* Create a unix-like argument parser to extract flags from the argument list. Can also create help messages.
|
|
11
11
|
*
|
|
@@ -23,12 +23,15 @@ var __publicField = (obj, key, value2) => __defNormalProp(obj, typeof key !== "s
|
|
|
23
23
|
this.desc = desc;
|
|
24
24
|
this.argList = argList;
|
|
25
25
|
this.examples = examples;
|
|
26
|
-
this.commands = argList.filter((arg) => arg instanceof
|
|
26
|
+
this.commands = argList.filter((arg) => arg instanceof ArgParser);
|
|
27
27
|
this.args = argList.filter((arg) => {
|
|
28
28
|
var _a;
|
|
29
|
-
return !(arg instanceof
|
|
29
|
+
return !(arg instanceof ArgParser) && !((_a = arg.flags) == null ? void 0 : _a.length);
|
|
30
30
|
});
|
|
31
|
-
this.flags = [
|
|
31
|
+
this.flags = [
|
|
32
|
+
...argList.filter((arg) => !(arg instanceof ArgParser) && arg.flags && arg.flags.length),
|
|
33
|
+
{ name: "help", desc: "Display command's help message", flags: ["-h", "--help"], default: false }
|
|
34
|
+
];
|
|
32
35
|
this.defaults = argList.reduce((acc, arg) => ({ ...acc, [arg.name]: arg["extras"] ? [] : arg.default ?? null }), {});
|
|
33
36
|
this.examples = [
|
|
34
37
|
...examples,
|
|
@@ -105,21 +108,19 @@ var __publicField = (obj, key, value2) => __defNormalProp(obj, typeof key !== "s
|
|
|
105
108
|
let msg = `
|
|
106
109
|
|
|
107
110
|
${opts.message || this.desc}`;
|
|
108
|
-
msg += "\n\nUsage: " + this.examples.map((ex) =>
|
|
109
|
-
if (this.args.length) msg += "\n\n
|
|
110
|
-
msg += "\n\nOptions:\n
|
|
111
|
+
msg += "\n\nUsage: " + this.examples.map((ex) => `${this.name} ${ex}`).join("\n ");
|
|
112
|
+
if (this.args.length) msg += "\n\n " + this.args.map((arg) => `${arg.name.toUpperCase()}${spacer(arg.name)}${arg.desc}`).join("\n ");
|
|
113
|
+
msg += "\n\nOptions:\n " + this.flags.map((flag) => {
|
|
111
114
|
var _a;
|
|
112
115
|
const flags = ((_a = flag.flags) == null ? void 0 : _a.join(", ")) || "";
|
|
113
116
|
return `${flags}${spacer(flags)}${flag.desc}`;
|
|
114
|
-
}).join("\n
|
|
115
|
-
if (this.commands.length) msg += "\n\nCommands:\n
|
|
117
|
+
}).join("\n ");
|
|
118
|
+
if (this.commands.length) msg += "\n\nCommands:\n " + this.commands.map((command) => `${command.name}${spacer(command.name)}${command.desc}`).join("\n ");
|
|
116
119
|
return `${msg}
|
|
117
120
|
|
|
118
121
|
`;
|
|
119
122
|
}
|
|
120
|
-
}
|
|
121
|
-
__publicField(_ArgParser, "helpArg", { name: "help", desc: "Display command's help message", flags: ["-h", "--help"], default: false });
|
|
122
|
-
let ArgParser = _ArgParser;
|
|
123
|
+
}
|
|
123
124
|
function clean(obj, undefinedOnly = false) {
|
|
124
125
|
if (obj == null) throw new Error("Cannot clean a NULL value");
|
|
125
126
|
if (Array.isArray(obj)) {
|