@flowscripter/dynamic-cli-framework 1.2.2 → 1.3.1

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.
Files changed (166) hide show
  1. package/README/core-service-providers.md +2 -2
  2. package/README/development.md +3 -6
  3. package/README/implementation-details.md +17 -17
  4. package/README/key-concepts.md +17 -17
  5. package/README.md +4 -4
  6. package/bun.lock +0 -2
  7. package/index.ts +22 -30
  8. package/package.json +19 -19
  9. package/src/api/argument/Argument.ts +1 -1
  10. package/src/api/argument/ArgumentValueTypes.ts +3 -10
  11. package/src/api/argument/ComplexOption.ts +5 -9
  12. package/src/api/command/GlobalCommand.ts +1 -4
  13. package/src/api/service/core/ArgumentPrompterService.ts +1 -3
  14. package/src/api/service/core/AsciiBannerGeneratorService.ts +1 -4
  15. package/src/api/service/core/CompletionService.ts +2 -6
  16. package/src/api/service/core/ImagePrinterService.ts +1 -2
  17. package/src/api/service/core/KeyValueService.ts +1 -2
  18. package/src/api/service/core/PrettyPrinterService.ts +1 -4
  19. package/src/api/service/core/PrinterService.ts +8 -9
  20. package/src/api/service/core/PrompterService.ts +4 -11
  21. package/src/api/service/core/ShutdownService.ts +1 -2
  22. package/src/api/service/core/SyntaxHighlighterService.ts +1 -5
  23. package/src/api/service/core/Table.ts +7 -25
  24. package/src/api/service/core/TreePrinterService.ts +1 -2
  25. package/src/cli/BaseCLI.ts +17 -47
  26. package/src/cli/DefaultRuntimeCLI.ts +1 -4
  27. package/src/command/CompletionCommand.ts +19 -45
  28. package/src/command/MultiCommandCliHelpCommand.ts +45 -92
  29. package/src/command/SingleCommandCliHelpCommand.ts +17 -28
  30. package/src/command/UsageCommand.ts +6 -12
  31. package/src/command/VersionCommand.ts +2 -6
  32. package/src/launcher.ts +4 -2
  33. package/src/runtime/DefaultContext.ts +2 -5
  34. package/src/runtime/argument/ArgumentTypeGuards.ts +1 -3
  35. package/src/runtime/command/CommandTypeGuards.ts +5 -14
  36. package/src/runtime/command/CommandValidator.ts +56 -118
  37. package/src/runtime/parser.ts +13 -17
  38. package/src/runtime/registry/CommandRegistry.ts +2 -7
  39. package/src/runtime/registry/DefaultCommandRegistry.ts +32 -84
  40. package/src/runtime/registry/DefaultServiceProviderRegistry.ts +3 -9
  41. package/src/runtime/runner.ts +103 -142
  42. package/src/runtime/scanner.ts +28 -46
  43. package/src/runtime/values/ValuePopulationResult.ts +1 -2
  44. package/src/runtime/values/argumentValueMerge.ts +16 -28
  45. package/src/runtime/values/argumentValueValidation.ts +21 -67
  46. package/src/runtime/values/globalCommandValuePopulation.ts +9 -18
  47. package/src/runtime/values/subCommandValuePopulation.ts +42 -65
  48. package/src/service/argumentPrompter/ArgumentPrompterServiceProvider.ts +3 -10
  49. package/src/service/argumentPrompter/DefaultArgumentPrompterService.ts +22 -59
  50. package/src/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.ts +5 -14
  51. package/src/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.ts +59 -77
  52. package/src/service/banner/BannerServiceProvider.ts +13 -35
  53. package/src/service/banner/command/NoBannerCommand.ts +2 -8
  54. package/src/service/chiselAsciiBannerGenerator/ChiselFontAsciiBannerGeneratorService.ts +5 -10
  55. package/src/service/completion/CompletionServiceProvider.ts +20 -48
  56. package/src/service/completion/DefaultCompletionService.ts +17 -56
  57. package/src/service/completion/shell/ShellHandler.ts +1 -3
  58. package/src/service/completion/shell/fish.ts +1 -1
  59. package/src/service/completion/shell/powershell.ts +2 -12
  60. package/src/service/completion/shell/zsh.ts +1 -1
  61. package/src/service/configuration/ConfigurationServiceProvider.ts +40 -133
  62. package/src/service/configuration/DefaultKeyValueService.ts +6 -20
  63. package/src/service/configuration/DefaultSecretService.ts +10 -14
  64. package/src/service/configuration/command/ConfigCommand.ts +1 -4
  65. package/src/service/configuration/command/DumpConfigCommand.ts +9 -21
  66. package/src/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.ts +5 -14
  67. package/src/service/dataDumpGenerator/DefaultDataDumpGeneratorService.ts +5 -12
  68. package/src/service/imagePrinter/DefaultImagePrinterService.ts +1 -5
  69. package/src/service/imagePrinter/ImagePrinterServiceProvider.ts +1 -4
  70. package/src/service/prettyPrinter/DefaultPrettyPrinterService.ts +4 -12
  71. package/src/service/prettyPrinter/PrettyPrinterServiceProvider.ts +3 -10
  72. package/src/service/printer/DefaultPrinterService.ts +20 -83
  73. package/src/service/printer/PrinterServiceProvider.ts +3 -11
  74. package/src/service/printer/command/DarkModeCommand.ts +3 -10
  75. package/src/service/printer/command/LogLevelCommand.ts +7 -26
  76. package/src/service/printer/command/NoColorCommand.ts +3 -10
  77. package/src/service/printer/command/NoHyperlinksCommand.ts +3 -10
  78. package/src/service/printer/terminal/Progress.ts +99 -90
  79. package/src/service/printer/terminal/Spinner.ts +7 -26
  80. package/src/service/prompter/DefaultPrompterService.ts +2 -6
  81. package/src/service/prompter/PrompterServiceProvider.ts +3 -11
  82. package/src/service/prompter/command/NoPromptCommand.ts +3 -10
  83. package/src/service/prompter/prompt/PromptContext.ts +5 -18
  84. package/src/service/prompter/prompt/promptMultiSelect.ts +6 -21
  85. package/src/service/prompter/prompt/promptOpenUrl.ts +7 -22
  86. package/src/service/prompter/prompt/promptSingleSelect.ts +6 -23
  87. package/src/service/prompter/prompt/promptText.ts +10 -27
  88. package/src/service/prompter/prompt/promptToggle.ts +8 -8
  89. package/src/service/shutdown/ShutdownServiceProvider.ts +3 -10
  90. package/src/service/syntaxHighlighter/DefaultSyntaxHighlighterService.ts +13 -26
  91. package/src/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.ts +8 -21
  92. package/src/service/tableGenerator/DefaultTableGeneratorService.ts +44 -68
  93. package/src/service/tableGenerator/TableGeneratorServiceProvider.ts +7 -16
  94. package/src/service/treePrinter/DefaultTreePrinterService.ts +2 -7
  95. package/src/service/treePrinter/TreePrinterServiceProvider.ts +4 -12
  96. package/src/terminal/ImageRenderer.ts +35 -54
  97. package/src/terminal/PngDecoder.ts +10 -19
  98. package/src/terminal/TtyStyler.ts +11 -9
  99. package/src/terminal/TtyTerminal.ts +2 -10
  100. package/src/terminal/supportsHyperlinks.ts +4 -10
  101. package/src/util/configHelper.ts +3 -10
  102. package/src/util/envVarHelper.ts +50 -88
  103. package/src/util/helpHelper.ts +123 -193
  104. package/src/util/logger.ts +12 -42
  105. package/src/util/runnerHelper.ts +20 -61
  106. package/tests/cli/BaseCLI.test.ts +23 -80
  107. package/tests/command/CompletionCommand.test.ts +1 -6
  108. package/tests/command/MultiCommandCliHelpCommand.test.ts +51 -205
  109. package/tests/command/SingleCommandCliHelpCommand.test.ts +21 -103
  110. package/tests/command/UsageCommand.test.ts +4 -10
  111. package/tests/fixtures/Command.ts +87 -68
  112. package/tests/fixtures/CommandRegistry.ts +1 -3
  113. package/tests/fixtures/Context.ts +3 -11
  114. package/tests/fixtures/ServiceProviderRegistry.ts +1 -1
  115. package/tests/fixtures/prettierPluginFoo.ts +1 -1
  116. package/tests/fixtures/util.ts +2 -8
  117. package/tests/runtime/argument/ArgumentTypeGuards.test.ts +1 -3
  118. package/tests/runtime/command/CommandValidator.test.ts +881 -604
  119. package/tests/runtime/parser.test.ts +222 -246
  120. package/tests/runtime/registry/DefaultCommandRegistry.test.ts +15 -37
  121. package/tests/runtime/registry/DefaultServiceProviderRegistry.test.ts +2 -8
  122. package/tests/runtime/runner.test.ts +231 -281
  123. package/tests/runtime/scanner.test.ts +277 -475
  124. package/tests/runtime/values/argumentValueMerge.test.ts +133 -81
  125. package/tests/runtime/values/argumentValueValidation.test.ts +444 -588
  126. package/tests/runtime/values/globalCommandValuePopulation.test.ts +71 -253
  127. package/tests/runtime/values/subCommandValuePopulation.test.ts +1342 -1570
  128. package/tests/service/argumentPrompter/ArgumentPrompterServiceProvider.test.ts +3 -12
  129. package/tests/service/argumentPrompter/DefaultArgumentPrompterService.test.ts +36 -45
  130. package/tests/service/asciiBannerGenerator/AsciiBannerGeneratorServiceProvider.test.ts +2 -8
  131. package/tests/service/asciiBannerGenerator/DefaultAsciiBannerGeneratorService.test.ts +40 -62
  132. package/tests/service/banner/BannerServiceProvider.test.ts +5 -18
  133. package/tests/service/banner/command/NoBannerCommand.test.ts +1 -4
  134. package/tests/service/completion/CompletionServiceProvider.test.ts +145 -214
  135. package/tests/service/completion/DefaultCompletionService.test.ts +17 -79
  136. package/tests/service/completion/shell/fish.test.ts +1 -3
  137. package/tests/service/configuration/ConfigurationServiceProvider.test.ts +26 -75
  138. package/tests/service/configuration/DefaultKeyValueService.test.ts +9 -21
  139. package/tests/service/configuration/DefaultSecretService.test.ts +7 -15
  140. package/tests/service/configuration/command/DumpConfigCommand.test.ts +4 -13
  141. package/tests/service/dataDumpGenerator/DataDumpGeneratorServiceProvider.test.ts +6 -12
  142. package/tests/service/dataDumpGenerator/DefaultDataDumpGeneratorService.test.ts +1 -10
  143. package/tests/service/imagePrinter/DefaultImagePrinterService.test.ts +5 -70
  144. package/tests/service/prettyPrinter/DefaultPrettyPrinterService.test.ts +4 -11
  145. package/tests/service/prettyPrinter/PrettyPrinterServiceProvider.test.ts +2 -6
  146. package/tests/service/printer/DefaultPrinterService.test.ts +57 -255
  147. package/tests/service/printer/PrinterServiceProvider.test.ts +2 -8
  148. package/tests/service/printer/command/DarkModeCommand.test.ts +4 -12
  149. package/tests/service/printer/command/LogLevelCommand.test.ts +4 -17
  150. package/tests/service/printer/command/NoColorCommand.test.ts +4 -12
  151. package/tests/service/printer/command/NoHyperlinksCommand.test.ts +7 -21
  152. package/tests/service/printer/terminal/Progress.test.ts +1 -3
  153. package/tests/service/printer/terminal/Spinner.test.ts +2 -8
  154. package/tests/service/prompter/DefaultPrompterService.test.ts +52 -69
  155. package/tests/service/prompter/PrompterServiceProvider.test.ts +2 -8
  156. package/tests/service/shutdown/ShutdownServiceProvider.test.ts +1 -3
  157. package/tests/service/syntaxHighlighter/DefaultSyntaxHighlighterService.test.ts +13 -99
  158. package/tests/service/syntaxHighlighter/SyntaxHighlighterServiceProvider.test.ts +2 -7
  159. package/tests/service/tableGenerator/DefaultTableGeneratorService.test.ts +12 -33
  160. package/tests/service/tableGenerator/TableGeneratorServiceProvider.test.ts +2 -2
  161. package/tests/service/treePrinter/DefaultTreePrinterService.test.ts +4 -6
  162. package/tests/service/treePrinter/TreePrinterServiceProvider.test.ts +4 -8
  163. package/tests/terminal/ImageRenderer.test.ts +2 -11
  164. package/tests/terminal/PngDecoder.test.ts +2 -6
  165. package/tests/util/configHelper.test.ts +55 -137
  166. package/tests/util/envVarHelper.test.ts +46 -110
@@ -20,33 +20,19 @@ describe("configHelper tests", () => {
20
20
  let command = getGlobalCommand("blah", true);
21
21
 
22
22
  expect(
23
- getGlobalCommandArgumentConfigurationKey(
24
- getCLIConfig(),
25
- command,
26
- command.argument!,
27
- ),
23
+ getGlobalCommandArgumentConfigurationKey(getCLIConfig(), command, command.argument!),
28
24
  ).toBeUndefined();
29
25
 
30
26
  command = getGlobalCommand("blah", true, false, true);
31
27
 
32
28
  expect(
33
- getGlobalCommandArgumentConfigurationKey(
34
- getCLIConfig(),
35
- command,
36
- command.argument!,
37
- ),
38
- ).toEqual(
39
- "FOO_BLAH",
40
- );
29
+ getGlobalCommandArgumentConfigurationKey(getCLIConfig(), command, command.argument!),
30
+ ).toEqual("FOO_BLAH");
41
31
 
42
32
  command = getGlobalCommand("blah", true, false, true, "FOO_BAR");
43
33
 
44
34
  expect(
45
- getGlobalCommandArgumentConfigurationKey(
46
- getCLIConfig(),
47
- command,
48
- command.argument!,
49
- ),
35
+ getGlobalCommandArgumentConfigurationKey(getCLIConfig(), command, command.argument!),
50
36
  "FOO_BAR",
51
37
  );
52
38
  });
@@ -55,42 +41,20 @@ describe("configHelper tests", () => {
55
41
  let command = getSubCommandWithPositional("blah", true, true);
56
42
 
57
43
  expect(
58
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
59
- command.positionals![0]!,
60
- ]),
44
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [command.positionals![0]!]),
61
45
  ).toBeUndefined();
62
46
 
63
- command = getSubCommandWithPositional(
64
- "blah",
65
- true,
66
- false,
67
- ArgumentValueTypeName.BOOLEAN,
68
- true,
69
- );
47
+ command = getSubCommandWithPositional("blah", true, false, ArgumentValueTypeName.BOOLEAN, true);
70
48
 
71
49
  expect(
72
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
73
- command.positionals![0]!,
74
- ]),
75
- ).toEqual(
76
- "FOO_BLAH_FOO",
77
- );
50
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [command.positionals![0]!]),
51
+ ).toEqual("FOO_BLAH_FOO");
78
52
 
79
- command = getSubCommandWithPositional(
80
- "blah",
81
- true,
82
- true,
83
- ArgumentValueTypeName.BOOLEAN,
84
- true,
85
- );
53
+ command = getSubCommandWithPositional("blah", true, true, ArgumentValueTypeName.BOOLEAN, true);
86
54
 
87
55
  expect(
88
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
89
- command.positionals![0]!,
90
- ]),
91
- ).toEqual(
92
- "FOO_BLAH_FOO[_<index>]",
93
- );
56
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [command.positionals![0]!]),
57
+ ).toEqual("FOO_BLAH_FOO[_<index>]");
94
58
 
95
59
  command = getSubCommandWithPositional(
96
60
  "blah",
@@ -102,23 +66,17 @@ describe("configHelper tests", () => {
102
66
  );
103
67
 
104
68
  expect(
105
- getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
106
- command.positionals![0]!,
107
- ]),
108
- ).toEqual(
109
- "FOO_BAR[_<index>]",
110
- );
69
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [command.positionals![0]!]),
70
+ ).toEqual("FOO_BAR[_<index>]");
111
71
  });
112
72
 
113
73
  test("getConfigurationKey works for simple option argument", () => {
114
74
  let command = getSubCommandWithOption("blah", true, false, true);
115
75
 
116
76
  expect(
117
- getSubCommandArgumentConfigurationKey(
118
- getCLIConfig(),
119
- command,
120
- [command.options![0] as Option],
121
- ),
77
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
78
+ command.options![0] as Option,
79
+ ]),
122
80
  ).toBeUndefined();
123
81
 
124
82
  command = getSubCommandWithOption(
@@ -132,14 +90,10 @@ describe("configHelper tests", () => {
132
90
  );
133
91
 
134
92
  expect(
135
- getSubCommandArgumentConfigurationKey(
136
- getCLIConfig(),
137
- command,
138
- [command.options![0] as Option],
139
- ),
140
- ).toEqual(
141
- "FOO_BLAH_FOO",
142
- );
93
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
94
+ command.options![0] as Option,
95
+ ]),
96
+ ).toEqual("FOO_BLAH_FOO");
143
97
 
144
98
  command = getSubCommandWithOption(
145
99
  "blah",
@@ -152,14 +106,10 @@ describe("configHelper tests", () => {
152
106
  );
153
107
 
154
108
  expect(
155
- getSubCommandArgumentConfigurationKey(
156
- getCLIConfig(),
157
- command,
158
- [command.options![0] as Option],
159
- ),
160
- ).toEqual(
161
- "FOO_BLAH_FOO[_<index>]",
162
- );
109
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
110
+ command.options![0] as Option,
111
+ ]),
112
+ ).toEqual("FOO_BLAH_FOO[_<index>]");
163
113
 
164
114
  command = getSubCommandWithOption(
165
115
  "blah",
@@ -173,14 +123,10 @@ describe("configHelper tests", () => {
173
123
  );
174
124
 
175
125
  expect(
176
- getSubCommandArgumentConfigurationKey(
177
- getCLIConfig(),
178
- command,
179
- [command.options![0] as Option],
180
- ),
181
- ).toEqual(
182
- "FOO_BAR[_<index>]",
183
- );
126
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
127
+ command.options![0] as Option,
128
+ ]),
129
+ ).toEqual("FOO_BAR[_<index>]");
184
130
  });
185
131
 
186
132
  test("getConfigurationKey works for complex option argument", () => {
@@ -191,15 +137,11 @@ describe("configHelper tests", () => {
191
137
  let arg2 = arg1.properties[0] as Option;
192
138
 
193
139
  expect(
194
- getSubCommandArgumentConfigurationKey(
195
- getCLIConfig(),
196
- command,
197
- [
198
- arg0 as unknown as SubCommandArgument,
199
- arg1 as unknown as SubCommandArgument,
200
- arg2 as unknown as SubCommandArgument,
201
- ],
202
- ),
140
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
141
+ arg0 as unknown as SubCommandArgument,
142
+ arg1 as unknown as SubCommandArgument,
143
+ arg2 as unknown as SubCommandArgument,
144
+ ]),
203
145
  ).toBeUndefined();
204
146
 
205
147
  command = getSubCommandWithComplexOptions(true, true);
@@ -209,50 +151,32 @@ describe("configHelper tests", () => {
209
151
  arg2 = arg1.properties[0] as Option;
210
152
 
211
153
  expect(
212
- getSubCommandArgumentConfigurationKey(
213
- getCLIConfig(),
214
- command,
215
- [
216
- arg0 as unknown as SubCommandArgument,
217
- arg1 as unknown as SubCommandArgument,
218
- arg2 as unknown as SubCommandArgument,
219
- ],
220
- ),
221
- ).toEqual(
222
- "FOO_SUBCOMMAND_ALPHA[_<index>]_BETA[_<index>]_GAMMA",
223
- );
154
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
155
+ arg0 as unknown as SubCommandArgument,
156
+ arg1 as unknown as SubCommandArgument,
157
+ arg2 as unknown as SubCommandArgument,
158
+ ]),
159
+ ).toEqual("FOO_SUBCOMMAND_ALPHA[_<index>]_BETA[_<index>]_GAMMA");
224
160
 
225
161
  arg2 = arg1.properties[1] as Option;
226
162
 
227
163
  expect(
228
- getSubCommandArgumentConfigurationKey(
229
- getCLIConfig(),
230
- command,
231
- [
232
- arg0 as unknown as SubCommandArgument,
233
- arg1 as unknown as SubCommandArgument,
234
- arg2 as unknown as SubCommandArgument,
235
- ],
236
- ),
237
- ).toEqual(
238
- "FOO_SUBCOMMAND_ALPHA[_<index>]_BETA[_<index>]_DELTA[_<index>]",
239
- );
164
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
165
+ arg0 as unknown as SubCommandArgument,
166
+ arg1 as unknown as SubCommandArgument,
167
+ arg2 as unknown as SubCommandArgument,
168
+ ]),
169
+ ).toEqual("FOO_SUBCOMMAND_ALPHA[_<index>]_BETA[_<index>]_DELTA[_<index>]");
240
170
 
241
171
  arg0 = command.options![1] as ComplexOption;
242
172
  arg1 = arg0.properties[0] as ComplexOption;
243
173
 
244
174
  expect(
245
- getSubCommandArgumentConfigurationKey(
246
- getCLIConfig(),
247
- command,
248
- [
249
- arg0 as unknown as SubCommandArgument,
250
- arg1 as unknown as SubCommandArgument,
251
- ],
252
- ),
253
- ).toEqual(
254
- "FOO_SUBCOMMAND_EPSILON_FOO_BAR_A",
255
- );
175
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
176
+ arg0 as unknown as SubCommandArgument,
177
+ arg1 as unknown as SubCommandArgument,
178
+ ]),
179
+ ).toEqual("FOO_SUBCOMMAND_EPSILON_FOO_BAR_A");
256
180
 
257
181
  command = getSubCommandWithComplexOptions(true, true, true);
258
182
 
@@ -260,16 +184,10 @@ describe("configHelper tests", () => {
260
184
  arg1 = arg0.properties[1] as ComplexOption;
261
185
 
262
186
  expect(
263
- getSubCommandArgumentConfigurationKey(
264
- getCLIConfig(),
265
- command,
266
- [
267
- arg0 as unknown as SubCommandArgument,
268
- arg1 as unknown as SubCommandArgument,
269
- ],
270
- ),
271
- ).toEqual(
272
- "FOO_SUBCOMMAND_EPSILON_FOO_BAR_B[_<index>]",
273
- );
187
+ getSubCommandArgumentConfigurationKey(getCLIConfig(), command, [
188
+ arg0 as unknown as SubCommandArgument,
189
+ arg1 as unknown as SubCommandArgument,
190
+ ]),
191
+ ).toEqual("FOO_SUBCOMMAND_EPSILON_FOO_BAR_B[_<index>]");
274
192
  });
275
193
  });
@@ -19,37 +19,23 @@ describe("envVarHelper tests", () => {
19
19
  try {
20
20
  let command = getGlobalCommand("blah", true);
21
21
 
22
- expect(
23
- getGlobalCommandValueFromEnvVars(getCLIConfig(), command),
24
- ).toBeUndefined();
22
+ expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toBeUndefined();
25
23
 
26
24
  command = getGlobalCommand("blah", true, false, true);
27
25
 
28
- expect(
29
- getGlobalCommandValueFromEnvVars(getCLIConfig(), command),
30
- ).toBeUndefined();
26
+ expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toBeUndefined();
31
27
 
32
28
  process.env["FOO_BLAH"] = "foo";
33
29
 
34
- expect(
35
- getGlobalCommandValueFromEnvVars(getCLIConfig(), command),
36
- ).toEqual(
37
- "foo",
38
- );
30
+ expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toEqual("foo");
39
31
 
40
32
  command = getGlobalCommand("blah", true, false, true, "FOO_BAR");
41
33
 
42
- expect(
43
- getGlobalCommandValueFromEnvVars(getCLIConfig(), command),
44
- ).toBeUndefined();
34
+ expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toBeUndefined();
45
35
 
46
36
  process.env["FOO_BAR"] = "foo";
47
37
 
48
- expect(
49
- getGlobalCommandValueFromEnvVars(getCLIConfig(), command),
50
- ).toEqual(
51
- "foo",
52
- );
38
+ expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toEqual("foo");
53
39
 
54
40
  command = getGlobalModifierCommandWithArgument(
55
41
  "FOO_BAR",
@@ -65,27 +51,17 @@ describe("envVarHelper tests", () => {
65
51
  // any env var value should set boolean option to true
66
52
  process.env["FOO_BAR"] = "foo";
67
53
 
68
- expect(
69
- getGlobalCommandValueFromEnvVars(getCLIConfig(), command),
70
- ).toEqual(
71
- "true",
72
- );
54
+ expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toEqual("true");
73
55
 
74
56
  // empty env var value should set boolean option to false
75
57
  process.env["FOO_BAR"] = "";
76
58
 
77
- expect(
78
- getGlobalCommandValueFromEnvVars(getCLIConfig(), command),
79
- ).toEqual(
80
- "false",
81
- );
59
+ expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toEqual("false");
82
60
 
83
61
  // no env var value should not set boolean option to false
84
62
  delete process.env["FOO_BAR"];
85
63
 
86
- expect(
87
- getGlobalCommandValueFromEnvVars(getCLIConfig(), command),
88
- ).toBeUndefined();
64
+ expect(getGlobalCommandValueFromEnvVars(getCLIConfig(), command)).toBeUndefined();
89
65
  } finally {
90
66
  delete process.env["FOO_BLAH_VALUE"];
91
67
  delete process.env["FOO_BAR"];
@@ -96,9 +72,7 @@ describe("envVarHelper tests", () => {
96
72
  try {
97
73
  let command = getSubCommandWithOption("blah", true, false);
98
74
 
99
- expect(
100
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
101
- ).toBeUndefined();
75
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
102
76
 
103
77
  command = getSubCommandWithOption(
104
78
  "blah",
@@ -110,17 +84,13 @@ describe("envVarHelper tests", () => {
110
84
  true,
111
85
  );
112
86
 
113
- expect(
114
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
115
- ).toBeUndefined();
87
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
116
88
 
117
89
  process.env["FOO_BLAH_FOO"] = "bar";
118
90
 
119
- expect(
120
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
121
- ).toEqual(
122
- { foo: "bar" },
123
- );
91
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
92
+ foo: "bar",
93
+ });
124
94
 
125
95
  command = getSubCommandWithOption(
126
96
  "blah",
@@ -133,17 +103,13 @@ describe("envVarHelper tests", () => {
133
103
  "FOO_BAR",
134
104
  );
135
105
 
136
- expect(
137
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
138
- ).toBeUndefined();
106
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
139
107
 
140
108
  process.env["FOO_BAR"] = "bar";
141
109
 
142
- expect(
143
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
144
- ).toEqual(
145
- { foo: "bar" },
146
- );
110
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
111
+ foo: "bar",
112
+ });
147
113
 
148
114
  command = getSubCommandWithOption(
149
115
  "blah",
@@ -159,27 +125,21 @@ describe("envVarHelper tests", () => {
159
125
  // any env var value should set boolean option to true
160
126
  process.env["FOO_BAR"] = "foo";
161
127
 
162
- expect(
163
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
164
- ).toEqual(
165
- { foo: "true" },
166
- );
128
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
129
+ foo: "true",
130
+ });
167
131
 
168
132
  // empty env var value should set boolean option to false
169
133
  process.env["FOO_BAR"] = "";
170
134
 
171
- expect(
172
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
173
- ).toEqual(
174
- { foo: "false" },
175
- );
135
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
136
+ foo: "false",
137
+ });
176
138
 
177
139
  delete process.env["FOO_BAR"];
178
140
 
179
141
  // no env var value should not set boolean option to false
180
- expect(
181
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
182
- ).toBeUndefined();
142
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
183
143
  } finally {
184
144
  delete process.env["FOO_BLAH_FOO"];
185
145
  delete process.env["FOO_BAR"];
@@ -190,9 +150,7 @@ describe("envVarHelper tests", () => {
190
150
  try {
191
151
  let command = getSubCommandWithPositional("blah", true, false);
192
152
 
193
- expect(
194
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
195
- ).toBeUndefined();
153
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
196
154
 
197
155
  command = getSubCommandWithPositional(
198
156
  "blah",
@@ -202,17 +160,13 @@ describe("envVarHelper tests", () => {
202
160
  true,
203
161
  );
204
162
 
205
- expect(
206
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
207
- ).toBeUndefined();
163
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
208
164
 
209
165
  process.env["FOO_BLAH_FOO"] = "bar";
210
166
 
211
- expect(
212
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
213
- ).toEqual(
214
- { foo: "bar" },
215
- );
167
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
168
+ foo: "bar",
169
+ });
216
170
 
217
171
  command = getSubCommandWithPositional(
218
172
  "blah",
@@ -223,17 +177,13 @@ describe("envVarHelper tests", () => {
223
177
  "FOO_BAR",
224
178
  );
225
179
 
226
- expect(
227
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
228
- ).toBeUndefined();
180
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
229
181
 
230
182
  process.env["FOO_BAR"] = "bar";
231
183
 
232
- expect(
233
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
234
- ).toEqual(
235
- { foo: "bar" },
236
- );
184
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
185
+ foo: "bar",
186
+ });
237
187
 
238
188
  command = getSubCommandWithPositional(
239
189
  "blah",
@@ -247,27 +197,21 @@ describe("envVarHelper tests", () => {
247
197
  // any env var value should set boolean option to true
248
198
  process.env["FOO_BAR"] = "foo";
249
199
 
250
- expect(
251
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
252
- ).toEqual(
253
- { foo: "true" },
254
- );
200
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
201
+ foo: "true",
202
+ });
255
203
 
256
204
  // empty env var value should set boolean option to false
257
205
  process.env["FOO_BAR"] = "";
258
206
 
259
- expect(
260
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
261
- ).toEqual(
262
- { foo: "false" },
263
- );
207
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
208
+ foo: "false",
209
+ });
264
210
 
265
211
  // no env var value should not set boolean option to false
266
212
  delete process.env["FOO_BAR"];
267
213
 
268
- expect(
269
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
270
- ).toBeUndefined();
214
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
271
215
  } finally {
272
216
  delete process.env["FOO_BLAH_FOO"];
273
217
  delete process.env["FOO_BAR"];
@@ -278,18 +222,14 @@ describe("envVarHelper tests", () => {
278
222
  try {
279
223
  const command = getSubCommandWithComplexOptions(true, true);
280
224
 
281
- expect(
282
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
283
- ).toBeUndefined();
225
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
284
226
 
285
227
  process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_GAMMA"] = "bar1";
286
228
  process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_DELTA_0"] = "bar2";
287
229
 
288
- expect(
289
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
290
- ).toEqual(
291
- { alpha: [{ beta: [{ delta: ["bar2"], gamma: "bar1" }] }] },
292
- );
230
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toEqual({
231
+ alpha: [{ beta: [{ delta: ["bar2"], gamma: "bar1" }] }],
232
+ });
293
233
  } finally {
294
234
  delete process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_GAMMA"];
295
235
  delete process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_DELTA_0"];
@@ -300,16 +240,12 @@ describe("envVarHelper tests", () => {
300
240
  try {
301
241
  const command = getSubCommandWithComplexOptions(true);
302
242
 
303
- expect(
304
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
305
- ).toBeUndefined();
243
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
306
244
 
307
245
  process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_GAMMA"] = "bar1";
308
246
  process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_DELTA_0"] = "bar2";
309
247
 
310
- expect(
311
- getSubCommandValuesFromEnvVars(getCLIConfig(), command),
312
- ).toBeUndefined();
248
+ expect(getSubCommandValuesFromEnvVars(getCLIConfig(), command)).toBeUndefined();
313
249
  } finally {
314
250
  delete process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_GAMMA"];
315
251
  delete process.env["FOO_SUBCOMMAND_ALPHA_0_BETA_0_DELTA_0"];