coupeeeez 0.0.1 → 0.0.2

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.
@@ -1,16 +0,0 @@
1
- import commander from './index.js';
2
-
3
- // wrapper to provide named exports for ESM.
4
- export const {
5
- program,
6
- createCommand,
7
- createArgument,
8
- createOption,
9
- CommanderError,
10
- InvalidArgumentError,
11
- InvalidOptionArgumentError, // deprecated old name
12
- Command,
13
- Argument,
14
- Option,
15
- Help,
16
- } = commander;
@@ -1,24 +0,0 @@
1
- const { Argument } = require('./lib/argument.js');
2
- const { Command } = require('./lib/command.js');
3
- const { CommanderError, InvalidArgumentError } = require('./lib/error.js');
4
- const { Help } = require('./lib/help.js');
5
- const { Option } = require('./lib/option.js');
6
-
7
- exports.program = new Command();
8
-
9
- exports.createCommand = (name) => new Command(name);
10
- exports.createOption = (flags, description) => new Option(flags, description);
11
- exports.createArgument = (name, description) => new Argument(name, description);
12
-
13
- /**
14
- * Expose classes
15
- */
16
-
17
- exports.Command = Command;
18
- exports.Option = Option;
19
- exports.Argument = Argument;
20
- exports.Help = Help;
21
-
22
- exports.CommanderError = CommanderError;
23
- exports.InvalidArgumentError = InvalidArgumentError;
24
- exports.InvalidOptionArgumentError = InvalidArgumentError; // Deprecated
@@ -1,150 +0,0 @@
1
- const { InvalidArgumentError } = require('./error.js');
2
-
3
- class Argument {
4
- /**
5
- * Initialize a new command argument with the given name and description.
6
- * The default is that the argument is required, and you can explicitly
7
- * indicate this with <> around the name. Put [] around the name for an optional argument.
8
- *
9
- * @param {string} name
10
- * @param {string} [description]
11
- */
12
-
13
- constructor(name, description) {
14
- this.description = description || '';
15
- this.variadic = false;
16
- this.parseArg = undefined;
17
- this.defaultValue = undefined;
18
- this.defaultValueDescription = undefined;
19
- this.argChoices = undefined;
20
-
21
- switch (name[0]) {
22
- case '<': // e.g. <required>
23
- this.required = true;
24
- this._name = name.slice(1, -1);
25
- break;
26
- case '[': // e.g. [optional]
27
- this.required = false;
28
- this._name = name.slice(1, -1);
29
- break;
30
- default:
31
- this.required = true;
32
- this._name = name;
33
- break;
34
- }
35
-
36
- if (this._name.endsWith('...')) {
37
- this.variadic = true;
38
- this._name = this._name.slice(0, -3);
39
- }
40
- }
41
-
42
- /**
43
- * Return argument name.
44
- *
45
- * @return {string}
46
- */
47
-
48
- name() {
49
- return this._name;
50
- }
51
-
52
- /**
53
- * @package
54
- */
55
-
56
- _collectValue(value, previous) {
57
- if (previous === this.defaultValue || !Array.isArray(previous)) {
58
- return [value];
59
- }
60
-
61
- previous.push(value);
62
- return previous;
63
- }
64
-
65
- /**
66
- * Set the default value, and optionally supply the description to be displayed in the help.
67
- *
68
- * @param {*} value
69
- * @param {string} [description]
70
- * @return {Argument}
71
- */
72
-
73
- default(value, description) {
74
- this.defaultValue = value;
75
- this.defaultValueDescription = description;
76
- return this;
77
- }
78
-
79
- /**
80
- * Set the custom handler for processing CLI command arguments into argument values.
81
- *
82
- * @param {Function} [fn]
83
- * @return {Argument}
84
- */
85
-
86
- argParser(fn) {
87
- this.parseArg = fn;
88
- return this;
89
- }
90
-
91
- /**
92
- * Only allow argument value to be one of choices.
93
- *
94
- * @param {string[]} values
95
- * @return {Argument}
96
- */
97
-
98
- choices(values) {
99
- this.argChoices = values.slice();
100
- this.parseArg = (arg, previous) => {
101
- if (!this.argChoices.includes(arg)) {
102
- throw new InvalidArgumentError(
103
- `Allowed choices are ${this.argChoices.join(', ')}.`,
104
- );
105
- }
106
- if (this.variadic) {
107
- return this._collectValue(arg, previous);
108
- }
109
- return arg;
110
- };
111
- return this;
112
- }
113
-
114
- /**
115
- * Make argument required.
116
- *
117
- * @returns {Argument}
118
- */
119
- argRequired() {
120
- this.required = true;
121
- return this;
122
- }
123
-
124
- /**
125
- * Make argument optional.
126
- *
127
- * @returns {Argument}
128
- */
129
- argOptional() {
130
- this.required = false;
131
- return this;
132
- }
133
- }
134
-
135
- /**
136
- * Takes an argument and returns its human readable equivalent for help usage.
137
- *
138
- * @param {Argument} arg
139
- * @return {string}
140
- * @private
141
- */
142
-
143
- function humanReadableArgName(arg) {
144
- const nameOutput = arg.name() + (arg.variadic === true ? '...' : '');
145
-
146
- return arg.required ? '<' + nameOutput + '>' : '[' + nameOutput + ']';
147
- }
148
-
149
- exports.Argument = Argument;
150
- exports.humanReadableArgName = humanReadableArgName;