effect 4.0.0-beta.10 → 4.0.0-beta.12
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/Channel.d.ts +7 -7
- package/dist/Config.d.ts +157 -0
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +56 -1
- package/dist/Config.js.map +1 -1
- package/dist/Effect.d.ts +296 -8
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +72 -0
- package/dist/Effect.js.map +1 -1
- package/dist/ErrorReporter.d.ts +376 -0
- package/dist/ErrorReporter.d.ts.map +1 -0
- package/dist/ErrorReporter.js +246 -0
- package/dist/ErrorReporter.js.map +1 -0
- package/dist/Fiber.d.ts +2 -2
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +3 -6
- package/dist/Graph.js.map +1 -1
- package/dist/LogLevel.d.ts +5 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +25 -91
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +2 -3
- package/dist/Logger.js.map +1 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +0 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +17 -0
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +17 -0
- package/dist/Random.js.map +1 -1
- package/dist/References.d.ts +3 -3
- package/dist/References.d.ts.map +1 -1
- package/dist/Schema.d.ts +3 -1
- package/dist/Schema.d.ts.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +2 -1
- package/dist/SchemaAST.js.map +1 -1
- package/dist/Stream.d.ts +5 -5
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/effect.js +98 -33
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +2 -2
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +86 -14
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +112 -36
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +47 -10
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +33 -6
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +16 -0
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +14 -0
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/cli/CliOutput.js +37 -6
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +199 -7
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +116 -6
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +60 -2
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +11 -1
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +33 -8
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +10 -2
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +27 -10
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +28 -4
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +3 -8
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +25 -31
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +4 -8
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +14 -27
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +37 -44
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +5 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +2 -0
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
- package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js +10 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +29 -9
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +7 -4
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/reactivity/Atom.js +1 -1
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +22 -1
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +14 -0
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +34 -9
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +0 -7
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +9 -10
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +6 -0
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +131 -0
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +1 -1
- package/src/Channel.ts +9 -9
- package/src/Config.ts +171 -9
- package/src/Effect.ts +315 -8
- package/src/ErrorReporter.ts +459 -0
- package/src/Fiber.ts +9 -2
- package/src/Graph.ts +16 -6
- package/src/LogLevel.ts +6 -0
- package/src/Logger.ts +28 -95
- package/src/Queue.ts +0 -1
- package/src/Random.ts +18 -0
- package/src/References.ts +4 -4
- package/src/Schema.ts +1 -1
- package/src/SchemaAST.ts +2 -1
- package/src/Stream.ts +7 -7
- package/src/index.ts +5 -0
- package/src/internal/effect.ts +205 -49
- package/src/internal/hashMap.ts +2 -2
- package/src/unstable/ai/LanguageModel.ts +117 -16
- package/src/unstable/ai/McpSchema.ts +57 -11
- package/src/unstable/ai/McpServer.ts +44 -6
- package/src/unstable/ai/Tool.ts +15 -0
- package/src/unstable/cli/CliOutput.ts +45 -6
- package/src/unstable/cli/Command.ts +298 -11
- package/src/unstable/cli/HelpDoc.ts +68 -2
- package/src/unstable/cli/internal/command.ts +47 -11
- package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
- package/src/unstable/cli/internal/parser.ts +11 -3
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +2 -2
- package/src/unstable/http/Headers.ts +28 -13
- package/src/unstable/http/HttpClient.ts +45 -10
- package/src/unstable/http/HttpEffect.ts +30 -44
- package/src/unstable/http/HttpMiddleware.ts +4 -14
- package/src/unstable/http/HttpServerError.ts +42 -45
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +3 -1
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApiBuilder.ts +2 -1
- package/src/unstable/httpapi/HttpApiError.ts +30 -9
- package/src/unstable/observability/OtlpLogger.ts +9 -5
- package/src/unstable/reactivity/Atom.ts +1 -1
- package/src/unstable/reactivity/AtomRegistry.ts +29 -1
- package/src/unstable/rpc/RpcSchema.ts +17 -0
- package/src/unstable/rpc/RpcSerialization.ts +44 -9
- package/src/unstable/rpc/RpcServer.ts +14 -19
- package/src/unstable/workflow/WorkflowEngine.ts +178 -0
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 4.0.0
|
|
3
|
-
*/
|
|
4
1
|
import * as Console from "../../Console.js";
|
|
5
2
|
import * as Effect from "../../Effect.js";
|
|
6
3
|
import { dual } from "../../Function.js";
|
|
7
4
|
import * as Predicate from "../../Predicate.js";
|
|
8
5
|
import * as References from "../../References.js";
|
|
9
6
|
import * as Result from "../../Result.js";
|
|
7
|
+
import * as ServiceMap from "../../ServiceMap.js";
|
|
10
8
|
import * as Terminal from "../../Terminal.js";
|
|
11
9
|
import * as CliError from "./CliError.js";
|
|
12
10
|
import * as CliOutput from "./CliOutput.js";
|
|
@@ -118,6 +116,49 @@ export const withHandler = /*#__PURE__*/dual(2, (self, handler) => makeCommand({
|
|
|
118
116
|
...toImpl(self),
|
|
119
117
|
handle: handler
|
|
120
118
|
}));
|
|
119
|
+
const normalizeSubcommandEntries = entries => {
|
|
120
|
+
const flat = [];
|
|
121
|
+
const grouped = new Map();
|
|
122
|
+
const addToGroup = (group, command) => {
|
|
123
|
+
flat.push(command);
|
|
124
|
+
const existing = grouped.get(group);
|
|
125
|
+
if (existing) {
|
|
126
|
+
existing.push(command);
|
|
127
|
+
} else {
|
|
128
|
+
grouped.set(group, [command]);
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
for (const entry of entries) {
|
|
132
|
+
if (isCommand(entry)) {
|
|
133
|
+
addToGroup(undefined, entry);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
for (const command of entry.commands) {
|
|
137
|
+
addToGroup(entry.group, command);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const groups = [];
|
|
141
|
+
const ungroupedCommands = grouped.get(undefined);
|
|
142
|
+
if (ungroupedCommands && ungroupedCommands.length > 0) {
|
|
143
|
+
groups.push({
|
|
144
|
+
group: undefined,
|
|
145
|
+
commands: ungroupedCommands
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
for (const [group, commands] of grouped) {
|
|
149
|
+
if (group === undefined) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
groups.push({
|
|
153
|
+
group,
|
|
154
|
+
commands
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
flat,
|
|
159
|
+
groups
|
|
160
|
+
};
|
|
161
|
+
};
|
|
121
162
|
/**
|
|
122
163
|
* Adds subcommands to a command, creating a hierarchical command structure.
|
|
123
164
|
*
|
|
@@ -155,9 +196,10 @@ export const withHandler = /*#__PURE__*/dual(2, (self, handler) => makeCommand({
|
|
|
155
196
|
* @category combinators
|
|
156
197
|
*/
|
|
157
198
|
export const withSubcommands = /*#__PURE__*/dual(2, (self, subcommands) => {
|
|
158
|
-
|
|
199
|
+
const normalized = normalizeSubcommandEntries(subcommands);
|
|
200
|
+
checkForDuplicateFlags(self, normalized.flat);
|
|
159
201
|
const impl = toImpl(self);
|
|
160
|
-
const byName = new Map(
|
|
202
|
+
const byName = new Map(normalized.flat.map(s => [s.name, toImpl(s)]));
|
|
161
203
|
const parse = Effect.fnUntraced(function* (raw) {
|
|
162
204
|
const parent = yield* impl.parse(raw);
|
|
163
205
|
if (!raw.subcommand) {
|
|
@@ -193,8 +235,11 @@ export const withSubcommands = /*#__PURE__*/dual(2, (self, subcommands) => {
|
|
|
193
235
|
name: impl.name,
|
|
194
236
|
config: impl.config,
|
|
195
237
|
description: impl.description,
|
|
238
|
+
shortDescription: impl.shortDescription,
|
|
239
|
+
annotations: impl.annotations,
|
|
240
|
+
examples: impl.examples,
|
|
196
241
|
service: impl.service,
|
|
197
|
-
subcommands,
|
|
242
|
+
subcommands: normalized.groups,
|
|
198
243
|
parse,
|
|
199
244
|
handle
|
|
200
245
|
});
|
|
@@ -227,6 +272,71 @@ export const withDescription = /*#__PURE__*/dual(2, (self, description) => makeC
|
|
|
227
272
|
...toImpl(self),
|
|
228
273
|
description
|
|
229
274
|
}));
|
|
275
|
+
/**
|
|
276
|
+
* Sets a short description for a command.
|
|
277
|
+
*
|
|
278
|
+
* Short descriptions are used when listing subcommands in help output and
|
|
279
|
+
* shell completions. If no short description is provided, the full
|
|
280
|
+
* `description` is used as a fallback.
|
|
281
|
+
*
|
|
282
|
+
* @since 4.0.0
|
|
283
|
+
* @category combinators
|
|
284
|
+
*/
|
|
285
|
+
export const withShortDescription = /*#__PURE__*/dual(2, (self, shortDescription) => makeCommand({
|
|
286
|
+
...toImpl(self),
|
|
287
|
+
shortDescription
|
|
288
|
+
}));
|
|
289
|
+
/**
|
|
290
|
+
* Adds a custom annotation to a command.
|
|
291
|
+
*
|
|
292
|
+
* @since 4.0.0
|
|
293
|
+
* @category combinators
|
|
294
|
+
*/
|
|
295
|
+
export const annotate = /*#__PURE__*/dual(3, (self, service, value) => {
|
|
296
|
+
const impl = toImpl(self);
|
|
297
|
+
return makeCommand({
|
|
298
|
+
...impl,
|
|
299
|
+
annotations: ServiceMap.add(impl.annotations, service, value)
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
/**
|
|
303
|
+
* Merges a ServiceMap of annotations into a command.
|
|
304
|
+
*
|
|
305
|
+
* @since 4.0.0
|
|
306
|
+
* @category combinators
|
|
307
|
+
*/
|
|
308
|
+
export const annotateMerge = /*#__PURE__*/dual(2, (self, annotations) => {
|
|
309
|
+
const impl = toImpl(self);
|
|
310
|
+
return makeCommand({
|
|
311
|
+
...impl,
|
|
312
|
+
annotations: ServiceMap.merge(impl.annotations, annotations)
|
|
313
|
+
});
|
|
314
|
+
});
|
|
315
|
+
/**
|
|
316
|
+
* Sets usage examples for a command.
|
|
317
|
+
*
|
|
318
|
+
* Examples are exposed in structured `HelpDoc` data and rendered by the
|
|
319
|
+
* default formatter in an `EXAMPLES` section.
|
|
320
|
+
*
|
|
321
|
+
* @example
|
|
322
|
+
* ```ts
|
|
323
|
+
* import { Command } from "effect/unstable/cli"
|
|
324
|
+
*
|
|
325
|
+
* const login = Command.make("login").pipe(
|
|
326
|
+
* Command.withExamples([
|
|
327
|
+
* { command: "myapp login", description: "Log in with browser OAuth" },
|
|
328
|
+
* { command: "myapp login --token sbp_abc123", description: "Log in with a token" }
|
|
329
|
+
* ])
|
|
330
|
+
* )
|
|
331
|
+
* ```
|
|
332
|
+
*
|
|
333
|
+
* @since 4.0.0
|
|
334
|
+
* @category combinators
|
|
335
|
+
*/
|
|
336
|
+
export const withExamples = /*#__PURE__*/dual(2, (self, examples) => makeCommand({
|
|
337
|
+
...toImpl(self),
|
|
338
|
+
examples
|
|
339
|
+
}));
|
|
230
340
|
/* ========================================================================== */
|
|
231
341
|
/* Providing Services */
|
|
232
342
|
/* ========================================================================== */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Command.js","names":["Console","Effect","dual","Predicate","References","Result","Terminal","CliError","CliOutput","checkForDuplicateFlags","getHelpForCommandPath","makeCommand","toImpl","TypeId","CommandDescriptor","Completions","parseConfig","Lexer","Parser","isCommand","u","hasProperty","make","name","config","handler","parsedConfig","isNotUndefined","handle","withHandler","self","withSubcommands","subcommands","impl","byName","Map","map","s","parse","fnUntraced","raw","parent","subcommand","sub","get","result","parsedInput","Object","assign","_subcommand","input","path","internal","child","ShowHelp","commandPath","pipe","provideService","service","description","withDescription","mapHandler","f","provide","args","layer","options","provideSync","implementation","provideEffect","effect","provideServiceEffect","provideEffectDiscard","andThen","showHelp","command","errors","gen","formatter","Formatter","helpDoc","log","formatHelpDoc","length","error","formatErrors","run","process","argv","slice","runWith","commandImpl","tokens","trailingOperands","lex","completions","help","logLevel","remainder","version","extractBuiltInOptions","parsedArgs","parseArgs","getCommandPath","undefined","descriptor","fromCommand","generate","formatVersion","parseResult","_tag","failure","parsed","success","program","withLogLevel","MinimumLogLevel","catchIf","isCliError","succeed","fail","e","isQuitError","_","interrupt"],"sources":["../../../src/unstable/cli/Command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Command.js","names":["Console","Effect","dual","Predicate","References","Result","ServiceMap","Terminal","CliError","CliOutput","checkForDuplicateFlags","getHelpForCommandPath","makeCommand","toImpl","TypeId","CommandDescriptor","Completions","parseConfig","Lexer","Parser","isCommand","u","hasProperty","make","name","config","handler","parsedConfig","isNotUndefined","handle","withHandler","self","normalizeSubcommandEntries","entries","flat","grouped","Map","addToGroup","group","command","push","existing","get","set","entry","undefined","commands","groups","ungroupedCommands","length","withSubcommands","subcommands","normalized","impl","byName","map","s","parse","fnUntraced","raw","parent","subcommand","sub","result","parsedInput","Object","assign","_subcommand","input","path","internal","child","ShowHelp","commandPath","pipe","provideService","service","description","shortDescription","annotations","examples","withDescription","withShortDescription","annotate","value","add","annotateMerge","merge","withExamples","mapHandler","f","provide","args","layer","options","provideSync","implementation","provideEffect","effect","provideServiceEffect","provideEffectDiscard","andThen","showHelp","errors","gen","formatter","Formatter","helpDoc","log","formatHelpDoc","error","formatErrors","run","process","argv","slice","runWith","commandImpl","tokens","trailingOperands","lex","completions","help","logLevel","remainder","version","extractBuiltInOptions","parsedArgs","parseArgs","getCommandPath","descriptor","fromCommand","generate","formatVersion","parseResult","_tag","failure","parsed","success","program","withLogLevel","MinimumLogLevel","catchIf","isCliError","succeed","fail","e","isQuitError","_","interrupt"],"sources":["../../../src/unstable/cli/Command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
|
+
import type { NonEmptyReadonlyArray } from "../../Array.ts";
|
|
5
|
+
import type * as ServiceMap from "../../ServiceMap.ts";
|
|
4
6
|
/**
|
|
5
7
|
* Structured representation of help documentation for a command.
|
|
6
8
|
* This data structure is independent of formatting, allowing for
|
|
@@ -8,11 +10,13 @@
|
|
|
8
10
|
*
|
|
9
11
|
* @example
|
|
10
12
|
* ```ts
|
|
13
|
+
* import { ServiceMap } from "effect"
|
|
11
14
|
* import type * as HelpDoc from "effect/unstable/cli/HelpDoc"
|
|
12
15
|
*
|
|
13
16
|
* const deployCommandHelp: HelpDoc.HelpDoc = {
|
|
14
17
|
* description: "Deploy your application to the cloud",
|
|
15
18
|
* usage: "myapp deploy [options] <target>",
|
|
19
|
+
* annotations: ServiceMap.empty(),
|
|
16
20
|
* flags: [
|
|
17
21
|
* {
|
|
18
22
|
* name: "verbose",
|
|
@@ -58,6 +62,10 @@ export interface HelpDoc {
|
|
|
58
62
|
* List of available flags/options for this command
|
|
59
63
|
*/
|
|
60
64
|
readonly flags: ReadonlyArray<FlagDoc>;
|
|
65
|
+
/**
|
|
66
|
+
* Custom command annotations.
|
|
67
|
+
*/
|
|
68
|
+
readonly annotations: ServiceMap.ServiceMap<never>;
|
|
61
69
|
/**
|
|
62
70
|
* List of positional arguments for this command
|
|
63
71
|
*/
|
|
@@ -65,7 +73,27 @@ export interface HelpDoc {
|
|
|
65
73
|
/**
|
|
66
74
|
* Optional list of subcommands if this is a parent command
|
|
67
75
|
*/
|
|
68
|
-
readonly subcommands?: ReadonlyArray<
|
|
76
|
+
readonly subcommands?: ReadonlyArray<SubcommandGroupDoc>;
|
|
77
|
+
/**
|
|
78
|
+
* Optional concrete usage examples for the command
|
|
79
|
+
*/
|
|
80
|
+
readonly examples?: ReadonlyArray<ExampleDoc>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Documentation for a command usage example
|
|
84
|
+
*
|
|
85
|
+
* @since 4.0.0
|
|
86
|
+
* @category models
|
|
87
|
+
*/
|
|
88
|
+
export interface ExampleDoc {
|
|
89
|
+
/**
|
|
90
|
+
* Command line invocation example
|
|
91
|
+
*/
|
|
92
|
+
readonly command: string;
|
|
93
|
+
/**
|
|
94
|
+
* Optional explanation for the example
|
|
95
|
+
*/
|
|
96
|
+
readonly description?: string | undefined;
|
|
69
97
|
}
|
|
70
98
|
/**
|
|
71
99
|
* Documentation for a single command-line flag/option
|
|
@@ -121,15 +149,18 @@ export interface FlagDoc {
|
|
|
121
149
|
*
|
|
122
150
|
* @example
|
|
123
151
|
* ```ts
|
|
152
|
+
* import { ServiceMap } from "effect"
|
|
124
153
|
* import type { HelpDoc } from "effect/unstable/cli"
|
|
125
154
|
*
|
|
126
155
|
* const deploySubcommand: HelpDoc.SubcommandDoc = {
|
|
127
156
|
* name: "deploy",
|
|
157
|
+
* shortDescription: "Deploy app",
|
|
128
158
|
* description: "Deploy the application to the cloud"
|
|
129
159
|
* }
|
|
130
160
|
*
|
|
131
161
|
* const buildSubcommand: HelpDoc.SubcommandDoc = {
|
|
132
162
|
* name: "build",
|
|
163
|
+
* shortDescription: undefined,
|
|
133
164
|
* description: "Build the application for production"
|
|
134
165
|
* }
|
|
135
166
|
*
|
|
@@ -137,8 +168,12 @@ export interface FlagDoc {
|
|
|
137
168
|
* const mainCommandHelp: HelpDoc.HelpDoc = {
|
|
138
169
|
* description: "Cloud deployment tool",
|
|
139
170
|
* usage: "myapp <command> [options]",
|
|
171
|
+
* annotations: ServiceMap.empty(),
|
|
140
172
|
* flags: [],
|
|
141
|
-
* subcommands: [
|
|
173
|
+
* subcommands: [{
|
|
174
|
+
* group: undefined,
|
|
175
|
+
* commands: [deploySubcommand, buildSubcommand]
|
|
176
|
+
* }]
|
|
142
177
|
* }
|
|
143
178
|
* ```
|
|
144
179
|
*
|
|
@@ -150,16 +185,38 @@ export interface SubcommandDoc {
|
|
|
150
185
|
* Name of the subcommand
|
|
151
186
|
*/
|
|
152
187
|
readonly name: string;
|
|
188
|
+
/**
|
|
189
|
+
* Optional short description of what the subcommand does.
|
|
190
|
+
*/
|
|
191
|
+
readonly shortDescription: string | undefined;
|
|
153
192
|
/**
|
|
154
193
|
* Brief description of what the subcommand does
|
|
155
194
|
*/
|
|
156
195
|
readonly description: string;
|
|
157
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Documentation for a grouped subcommand listing
|
|
199
|
+
*
|
|
200
|
+
* @since 4.0.0
|
|
201
|
+
* @category models
|
|
202
|
+
*/
|
|
203
|
+
export interface SubcommandGroupDoc {
|
|
204
|
+
/**
|
|
205
|
+
* Group name used in help output.
|
|
206
|
+
* Undefined means the default ungrouped section.
|
|
207
|
+
*/
|
|
208
|
+
readonly group: string | undefined;
|
|
209
|
+
/**
|
|
210
|
+
* Subcommands in this group.
|
|
211
|
+
*/
|
|
212
|
+
readonly commands: NonEmptyReadonlyArray<SubcommandDoc>;
|
|
213
|
+
}
|
|
158
214
|
/**
|
|
159
215
|
* Documentation for a positional argument
|
|
160
216
|
*
|
|
161
217
|
* @example
|
|
162
218
|
* ```ts
|
|
219
|
+
* import { ServiceMap } from "effect"
|
|
163
220
|
* import type { HelpDoc } from "effect/unstable/cli"
|
|
164
221
|
*
|
|
165
222
|
* const sourceArg: HelpDoc.ArgDoc = {
|
|
@@ -182,6 +239,7 @@ export interface SubcommandDoc {
|
|
|
182
239
|
* const copyCommandHelp: HelpDoc.HelpDoc = {
|
|
183
240
|
* description: "Copy files from source to destination",
|
|
184
241
|
* usage: "copy <source> [files...]",
|
|
242
|
+
* annotations: ServiceMap.empty(),
|
|
185
243
|
* flags: [],
|
|
186
244
|
* args: [sourceArg, filesArg]
|
|
187
245
|
* }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HelpDoc.d.ts","sourceRoot":"","sources":["../../../src/unstable/cli/HelpDoc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"HelpDoc.d.ts","sourceRoot":"","sources":["../../../src/unstable/cli/HelpDoc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,KAAK,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAE5B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IAEtC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAElD;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAErC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAA;IAExD;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAA;CAC9C;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAEvC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAExC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAA;IAE7C;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAElC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,aAAa,CAAC,CAAA;CACxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;IAExC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAE1B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAC3B"}
|
|
@@ -5,12 +5,17 @@
|
|
|
5
5
|
* Internal implementation details for CLI commands.
|
|
6
6
|
* Public API is in ../Command.ts
|
|
7
7
|
*/
|
|
8
|
+
import * as Arr from "../../../Array.ts";
|
|
8
9
|
import * as Effect from "../../../Effect.ts";
|
|
9
10
|
import * as ServiceMap from "../../../ServiceMap.ts";
|
|
10
11
|
import * as CliError from "../CliError.ts";
|
|
11
12
|
import type { HelpDoc } from "../HelpDoc.ts";
|
|
12
13
|
import { type ConfigInternal } from "./config.ts";
|
|
13
14
|
import type { Command, CommandContext, Environment, ParsedTokens } from "../Command.ts";
|
|
15
|
+
interface SubcommandGroup {
|
|
16
|
+
readonly group: string | undefined;
|
|
17
|
+
readonly commands: Arr.NonEmptyReadonlyArray<Command<any, unknown, unknown, unknown>>;
|
|
18
|
+
}
|
|
14
19
|
/**
|
|
15
20
|
* Internal implementation interface with all the machinery.
|
|
16
21
|
* Use toImpl() to access from internal code.
|
|
@@ -18,6 +23,7 @@ import type { Command, CommandContext, Environment, ParsedTokens } from "../Comm
|
|
|
18
23
|
export interface CommandInternal<Name extends string, Input, E, R> extends Command<Name, Input, E, R> {
|
|
19
24
|
readonly config: ConfigInternal;
|
|
20
25
|
readonly service: ServiceMap.Service<CommandContext<Name>, Input>;
|
|
26
|
+
readonly annotations: ServiceMap.ServiceMap<never>;
|
|
21
27
|
readonly parse: (input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>;
|
|
22
28
|
readonly handle: (input: Input, commandPath: ReadonlyArray<string>) => Effect.Effect<void, E | CliError.CliError, R | Environment>;
|
|
23
29
|
readonly buildHelpDoc: (commandPath: ReadonlyArray<string>) => HelpDoc;
|
|
@@ -40,8 +46,11 @@ export declare const makeCommand: <const Name extends string, Input, E, R>(optio
|
|
|
40
46
|
readonly name: Name;
|
|
41
47
|
readonly config: ConfigInternal;
|
|
42
48
|
readonly service?: ServiceMap.Service<CommandContext<Name>, Input> | undefined;
|
|
49
|
+
readonly annotations?: ServiceMap.ServiceMap<never> | undefined;
|
|
43
50
|
readonly description?: string | undefined;
|
|
44
|
-
readonly
|
|
51
|
+
readonly shortDescription?: string | undefined;
|
|
52
|
+
readonly examples?: ReadonlyArray<Command.Example> | undefined;
|
|
53
|
+
readonly subcommands?: ReadonlyArray<SubcommandGroup> | undefined;
|
|
45
54
|
readonly parse?: ((input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>) | undefined;
|
|
46
55
|
readonly handle?: ((input: Input, commandPath: ReadonlyArray<string>) => Effect.Effect<void, E, R | Environment>) | undefined;
|
|
47
56
|
}) => Command<Name, Input, E, R>;
|
|
@@ -54,4 +63,5 @@ export declare const checkForDuplicateFlags: <Name extends string, Input>(parent
|
|
|
54
63
|
* Navigates through the command hierarchy to find the right command.
|
|
55
64
|
*/
|
|
56
65
|
export declare const getHelpForCommandPath: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, commandPath: ReadonlyArray<string>) => HelpDoc;
|
|
66
|
+
export {};
|
|
57
67
|
//# sourceMappingURL=command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAI5C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Internal implementation details for CLI commands.
|
|
6
6
|
* Public API is in ../Command.ts
|
|
7
7
|
*/
|
|
8
|
+
import * as Arr from "../../../Array.js";
|
|
8
9
|
import * as Effect from "../../../Effect.js";
|
|
9
10
|
import { YieldableProto } from "../../../internal/core.js";
|
|
10
11
|
import { pipeArguments } from "../../../Pipeable.js";
|
|
@@ -47,6 +48,8 @@ export const Proto = {
|
|
|
47
48
|
export const makeCommand = options => {
|
|
48
49
|
const service = options.service ?? ServiceMap.Service(`${TypeId}/${options.name}`);
|
|
49
50
|
const config = options.config;
|
|
51
|
+
const annotations = options.annotations ?? ServiceMap.empty();
|
|
52
|
+
const subcommands = options.subcommands ?? [];
|
|
50
53
|
const handle = (input, commandPath) => Predicate.isNotUndefined(options.handle) ? options.handle(input, commandPath) : Effect.fail(new CliError.ShowHelp({
|
|
51
54
|
commandPath
|
|
52
55
|
}));
|
|
@@ -75,8 +78,7 @@ export const makeCommand = options => {
|
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
80
|
let usage = commandPath.length > 0 ? commandPath.join(" ") : options.name;
|
|
78
|
-
|
|
79
|
-
if (subcommands.length > 0) {
|
|
81
|
+
if (subcommands.some(group => group.commands.length > 0)) {
|
|
80
82
|
usage += " <subcommand>";
|
|
81
83
|
}
|
|
82
84
|
usage += " [flags]";
|
|
@@ -97,26 +99,40 @@ export const makeCommand = options => {
|
|
|
97
99
|
});
|
|
98
100
|
}
|
|
99
101
|
}
|
|
100
|
-
const subcommandDocs =
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
const subcommandDocs = [];
|
|
103
|
+
for (const group of subcommands) {
|
|
104
|
+
subcommandDocs.push({
|
|
105
|
+
group: group.group,
|
|
106
|
+
commands: Arr.map(group.commands, subcommand => ({
|
|
107
|
+
name: subcommand.name,
|
|
108
|
+
shortDescription: subcommand.shortDescription,
|
|
109
|
+
description: subcommand.description ?? ""
|
|
110
|
+
}))
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
const examples = options.examples ?? [];
|
|
104
114
|
return {
|
|
105
115
|
description: options.description ?? "",
|
|
106
116
|
usage,
|
|
107
117
|
flags,
|
|
118
|
+
annotations,
|
|
108
119
|
...(args.length > 0 && {
|
|
109
120
|
args
|
|
110
121
|
}),
|
|
111
122
|
...(subcommandDocs.length > 0 && {
|
|
112
123
|
subcommands: subcommandDocs
|
|
124
|
+
}),
|
|
125
|
+
...(examples.length > 0 && {
|
|
126
|
+
examples
|
|
113
127
|
})
|
|
114
128
|
};
|
|
115
129
|
};
|
|
116
130
|
return Object.assign(Object.create(Proto), {
|
|
117
131
|
[TypeId]: TypeId,
|
|
118
132
|
name: options.name,
|
|
119
|
-
|
|
133
|
+
examples: options.examples ?? [],
|
|
134
|
+
annotations,
|
|
135
|
+
subcommands,
|
|
120
136
|
config,
|
|
121
137
|
service,
|
|
122
138
|
parse,
|
|
@@ -124,6 +140,9 @@ export const makeCommand = options => {
|
|
|
124
140
|
buildHelpDoc,
|
|
125
141
|
...(Predicate.isNotUndefined(options.description) ? {
|
|
126
142
|
description: options.description
|
|
143
|
+
} : {}),
|
|
144
|
+
...(Predicate.isNotUndefined(options.shortDescription) ? {
|
|
145
|
+
shortDescription: options.shortDescription
|
|
127
146
|
} : {})
|
|
128
147
|
});
|
|
129
148
|
};
|
|
@@ -187,7 +206,13 @@ export const getHelpForCommandPath = (command, commandPath) => {
|
|
|
187
206
|
// Navigate through the command path to find the target command
|
|
188
207
|
for (let i = 1; i < commandPath.length; i++) {
|
|
189
208
|
const subcommandName = commandPath[i];
|
|
190
|
-
|
|
209
|
+
let subcommand = undefined;
|
|
210
|
+
for (const group of currentCommand.subcommands) {
|
|
211
|
+
subcommand = group.commands.find(sub => sub.name === subcommandName);
|
|
212
|
+
if (subcommand) {
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
191
216
|
if (subcommand) {
|
|
192
217
|
currentCommand = subcommand;
|
|
193
218
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","names":["Effect","YieldableProto","pipeArguments","Predicate","ServiceMap","CliError","Param","Primitive","reconstructTree","TypeId","toImpl","self","Proto","pipe","arguments","asEffect","service","makeCommand","options","Service","name","config","handle","input","commandPath","isNotUndefined","fail","ShowHelp","parse","fnUntraced","parsedArgs","flags","values","parseParams","orderedParams","tree","buildHelpDoc","args","arg","singles","extractSingleParams","metadata","getParamMetadata","single","push","type","typeName","getTypeName","primitiveType","description","required","isOptional","variadic","isVariadic","usage","length","join","
|
|
1
|
+
{"version":3,"file":"command.js","names":["Arr","Effect","YieldableProto","pipeArguments","Predicate","ServiceMap","CliError","Param","Primitive","reconstructTree","TypeId","toImpl","self","Proto","pipe","arguments","asEffect","service","makeCommand","options","Service","name","config","annotations","empty","subcommands","handle","input","commandPath","isNotUndefined","fail","ShowHelp","parse","fnUntraced","parsedArgs","flags","values","parseParams","orderedParams","tree","buildHelpDoc","args","arg","singles","extractSingleParams","metadata","getParamMetadata","single","push","type","typeName","getTypeName","primitiveType","description","required","isOptional","variadic","isVariadic","usage","length","join","some","group","commands","argName","option","formattedAliases","aliases","map","alias","_tag","subcommandDocs","subcommand","shortDescription","examples","Object","assign","create","params","results","currentArguments","remainingArguments","parsed","checkForDuplicateFlags","parent","parentImpl","parentOptionNames","Set","extractNames","add","subImpl","has","DuplicateOption","parentCommand","childCommand","getHelpForCommandPath","command","currentCommand","i","subcommandName","undefined","find","sub"],"sources":["../../../../src/unstable/cli/internal/command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -119,10 +119,15 @@ export const fromCommand = cmd => {
|
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
-
const subcommands =
|
|
122
|
+
const subcommands = [];
|
|
123
|
+
for (const group of cmd.subcommands) {
|
|
124
|
+
for (const subcommand of group.commands) {
|
|
125
|
+
subcommands.push(fromCommand(subcommand));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
123
128
|
return {
|
|
124
129
|
name: cmd.name,
|
|
125
|
-
description: cmd.description,
|
|
130
|
+
description: cmd.shortDescription ?? cmd.description,
|
|
126
131
|
flags,
|
|
127
132
|
arguments: args,
|
|
128
133
|
subcommands
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandDescriptor.js","names":["Param","Primitive","toImpl","toFlagType","single","tag","primitiveType","_tag","keys","getChoiceKeys","values","typeName","pathType","toArgumentType","fromCommand","cmd","impl","config","flags","flag","singles","extractSingleParams","kind","push","name","aliases","description","type","args","arg","arguments","metadata","getParamMetadata","required","isOptional","variadic","isVariadic","subcommands","
|
|
1
|
+
{"version":3,"file":"CommandDescriptor.js","names":["Param","Primitive","toImpl","toFlagType","single","tag","primitiveType","_tag","keys","getChoiceKeys","values","typeName","pathType","toArgumentType","fromCommand","cmd","impl","config","flags","flag","singles","extractSingleParams","kind","push","name","aliases","description","type","args","arg","arguments","metadata","getParamMetadata","required","isOptional","variadic","isVariadic","subcommands","group","subcommand","commands","shortDescription"],"sources":["../../../../../src/unstable/cli/internal/completions/CommandDescriptor.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -137,7 +137,15 @@ const createFlagRegistry = params => {
|
|
|
137
137
|
index
|
|
138
138
|
};
|
|
139
139
|
};
|
|
140
|
-
const buildSubcommandIndex = subcommands =>
|
|
140
|
+
const buildSubcommandIndex = subcommands => {
|
|
141
|
+
const index = new Map();
|
|
142
|
+
for (const group of subcommands) {
|
|
143
|
+
for (const subcommand of group.commands) {
|
|
144
|
+
index.set(subcommand.name, subcommand);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return index;
|
|
148
|
+
};
|
|
141
149
|
/* ========================================================================== */
|
|
142
150
|
/* Flag Accumulator */
|
|
143
151
|
/* ========================================================================== */
|
|
@@ -313,7 +321,7 @@ const resolveFirstValue = (value, cursor, context, state) => {
|
|
|
313
321
|
// Not a subcommand. Check if this looks like a typo.
|
|
314
322
|
const expectsArgs = toImpl(command).config.arguments.length > 0;
|
|
315
323
|
if (!expectsArgs && subIndex.size > 0) {
|
|
316
|
-
const suggestions = suggest(value,
|
|
324
|
+
const suggestions = suggest(value, Array.from(subIndex.keys()));
|
|
317
325
|
state.errors.push(new CliError.UnknownSubcommand({
|
|
318
326
|
subcommand: value,
|
|
319
327
|
parent: commandPath,
|