effect 4.0.0-beta.13 → 4.0.0-beta.15
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 +6 -6
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +4 -4
- package/dist/Channel.js.map +1 -1
- package/dist/Effect.d.ts +7 -7
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js.map +1 -1
- package/dist/Stream.d.ts +7 -7
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +8 -6
- package/dist/Stream.js.map +1 -1
- package/dist/Types.d.ts +70 -0
- package/dist/Types.d.ts.map +1 -1
- package/dist/internal/effect.js +4 -4
- package/dist/internal/effect.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +2 -0
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +34 -4
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +75 -20
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +25 -62
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/GlobalFlag.js +41 -87
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +3 -0
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +2 -0
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts +18 -4
- package/dist/unstable/cli/internal/help.d.ts.map +1 -1
- package/dist/unstable/cli/internal/help.js +62 -9
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +10 -4
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +17 -6
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +7 -2
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +3 -4
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +2 -2
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +2 -6
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/package.json +1 -1
- package/src/Channel.ts +24 -14
- package/src/Effect.ts +30 -8
- package/src/Stream.ts +46 -22
- package/src/Types.ts +66 -0
- package/src/internal/effect.ts +41 -14
- package/src/unstable/ai/LanguageModel.ts +9 -6
- package/src/unstable/cli/Command.ts +122 -24
- package/src/unstable/cli/GlobalFlag.ts +98 -197
- package/src/unstable/cli/internal/command.ts +5 -0
- package/src/unstable/cli/internal/help.ts +104 -24
- package/src/unstable/httpapi/HttpApiBuilder.ts +68 -13
- package/src/unstable/httpapi/HttpApiEndpoint.ts +13 -4
- package/src/unstable/httpapi/OpenApi.ts +3 -4
- package/src/unstable/reactivity/AtomHttpApi.ts +2 -2
- package/src/unstable/reactivity/AtomRegistry.ts +2 -6
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Effect from "../../Effect.ts";
|
|
5
|
-
import
|
|
6
|
-
import type { LogLevel } from "../../LogLevel.ts";
|
|
5
|
+
import type { LogLevel as LogLevelType } from "../../LogLevel.ts";
|
|
7
6
|
import * as Option from "../../Option.ts";
|
|
8
7
|
import * as ServiceMap from "../../ServiceMap.ts";
|
|
9
8
|
import type * as Command from "./Command.ts";
|
|
@@ -36,10 +35,20 @@ export interface Action<A> {
|
|
|
36
35
|
* @since 4.0.0
|
|
37
36
|
* @category models
|
|
38
37
|
*/
|
|
39
|
-
export interface Setting<A> {
|
|
38
|
+
export interface Setting<Id extends string, A> extends ServiceMap.Service<Setting.Identifier<Id>, A> {
|
|
40
39
|
readonly _tag: "Setting";
|
|
40
|
+
readonly id: Id;
|
|
41
41
|
readonly flag: Flag.Flag<A>;
|
|
42
|
-
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @since 4.0.0
|
|
45
|
+
*/
|
|
46
|
+
export declare namespace Setting {
|
|
47
|
+
/**
|
|
48
|
+
* @since 4.0.0
|
|
49
|
+
* @category models
|
|
50
|
+
*/
|
|
51
|
+
type Identifier<Id extends string> = `effect/unstable/cli/GlobalFlag/${Id}`;
|
|
43
52
|
}
|
|
44
53
|
/**
|
|
45
54
|
* Global flag discriminated union.
|
|
@@ -47,7 +56,7 @@ export interface Setting<A> {
|
|
|
47
56
|
* @since 4.0.0
|
|
48
57
|
* @category models
|
|
49
58
|
*/
|
|
50
|
-
export type GlobalFlag<A> = Action<A> | Setting<A>;
|
|
59
|
+
export type GlobalFlag<A> = Action<A> | Setting<any, A>;
|
|
51
60
|
/**
|
|
52
61
|
* Creates an Action flag that performs a side effect and exits.
|
|
53
62
|
*
|
|
@@ -64,10 +73,9 @@ export declare const action: <A>(options: {
|
|
|
64
73
|
* @since 4.0.0
|
|
65
74
|
* @category constructors
|
|
66
75
|
*/
|
|
67
|
-
export declare const setting: <A>(options: {
|
|
76
|
+
export declare const setting: <const Id extends string>(id: Id) => <A>(options: {
|
|
68
77
|
readonly flag: Flag.Flag<A>;
|
|
69
|
-
|
|
70
|
-
}) => Setting<A>;
|
|
78
|
+
}) => Setting<Id, A>;
|
|
71
79
|
/**
|
|
72
80
|
* The `--help` / `-h` global flag.
|
|
73
81
|
* Shows help documentation for the command.
|
|
@@ -75,7 +83,7 @@ export declare const setting: <A>(options: {
|
|
|
75
83
|
* @since 4.0.0
|
|
76
84
|
* @category references
|
|
77
85
|
*/
|
|
78
|
-
export declare const Help:
|
|
86
|
+
export declare const Help: Action<boolean>;
|
|
79
87
|
/**
|
|
80
88
|
* The `--version` global flag.
|
|
81
89
|
* Shows version information for the command.
|
|
@@ -83,7 +91,7 @@ export declare const Help: ServiceMap.Reference<Action<boolean>>;
|
|
|
83
91
|
* @since 4.0.0
|
|
84
92
|
* @category references
|
|
85
93
|
*/
|
|
86
|
-
export declare const Version:
|
|
94
|
+
export declare const Version: Action<boolean>;
|
|
87
95
|
/**
|
|
88
96
|
* The `--completions` global flag.
|
|
89
97
|
* Prints shell completion script for the given shell.
|
|
@@ -91,7 +99,7 @@ export declare const Version: ServiceMap.Reference<Action<boolean>>;
|
|
|
91
99
|
* @since 4.0.0
|
|
92
100
|
* @category references
|
|
93
101
|
*/
|
|
94
|
-
export declare const
|
|
102
|
+
export declare const Completions: Action<Option.Option<"bash" | "zsh" | "fish">>;
|
|
95
103
|
/**
|
|
96
104
|
* The `--log-level` global flag.
|
|
97
105
|
* Sets the minimum log level for the command.
|
|
@@ -99,64 +107,19 @@ export declare const CompletionsFlag: ServiceMap.Reference<Action<Option.Option<
|
|
|
99
107
|
* @since 4.0.0
|
|
100
108
|
* @category references
|
|
101
109
|
*/
|
|
102
|
-
export declare const
|
|
110
|
+
export declare const LogLevel: Setting<"log-level", Option.Option<LogLevelType>>;
|
|
103
111
|
/**
|
|
104
|
-
*
|
|
105
|
-
* The parser iterates this set to know which flags to extract.
|
|
112
|
+
* Built-in global flags in default precedence order.
|
|
106
113
|
*
|
|
107
114
|
* @since 4.0.0
|
|
108
115
|
* @category references
|
|
109
116
|
*/
|
|
110
|
-
export declare const
|
|
111
|
-
/**
|
|
112
|
-
* Adds a global flag to the registry.
|
|
113
|
-
*
|
|
114
|
-
* @since 4.0.0
|
|
115
|
-
* @category modifiers
|
|
116
|
-
*/
|
|
117
|
-
export declare const add: {
|
|
118
|
-
/**
|
|
119
|
-
* Adds a global flag to the registry.
|
|
120
|
-
*
|
|
121
|
-
* @since 4.0.0
|
|
122
|
-
* @category modifiers
|
|
123
|
-
*/
|
|
124
|
-
<A>(ref: ServiceMap.Reference<GlobalFlag<A>>): <B, E, R>(self: Effect.Effect<B, E, R>) => Effect.Effect<B, E, R>;
|
|
125
|
-
/**
|
|
126
|
-
* Adds a global flag to the registry.
|
|
127
|
-
*
|
|
128
|
-
* @since 4.0.0
|
|
129
|
-
* @category modifiers
|
|
130
|
-
*/
|
|
131
|
-
<B, E, R, A>(self: Effect.Effect<B, E, R>, ref: ServiceMap.Reference<GlobalFlag<A>>): Effect.Effect<B, E, R>;
|
|
132
|
-
};
|
|
133
|
-
/**
|
|
134
|
-
* Removes a global flag by its reference.
|
|
135
|
-
*
|
|
136
|
-
* @since 4.0.0
|
|
137
|
-
* @category modifiers
|
|
138
|
-
*/
|
|
139
|
-
export declare const remove: {
|
|
140
|
-
/**
|
|
141
|
-
* Removes a global flag by its reference.
|
|
142
|
-
*
|
|
143
|
-
* @since 4.0.0
|
|
144
|
-
* @category modifiers
|
|
145
|
-
*/
|
|
146
|
-
<A>(ref: ServiceMap.Reference<GlobalFlag<A>>): <B, E, R>(self: Effect.Effect<B, E, R>) => Effect.Effect<B, E, R>;
|
|
147
|
-
/**
|
|
148
|
-
* Removes a global flag by its reference.
|
|
149
|
-
*
|
|
150
|
-
* @since 4.0.0
|
|
151
|
-
* @category modifiers
|
|
152
|
-
*/
|
|
153
|
-
<B, E, R, A>(self: Effect.Effect<B, E, R>, ref: ServiceMap.Reference<GlobalFlag<A>>): Effect.Effect<B, E, R>;
|
|
154
|
-
};
|
|
117
|
+
export declare const BuiltIns: ReadonlyArray<GlobalFlag<any>>;
|
|
155
118
|
/**
|
|
156
|
-
*
|
|
119
|
+
* Built-in setting context identifiers.
|
|
157
120
|
*
|
|
158
121
|
* @since 4.0.0
|
|
159
|
-
* @category
|
|
122
|
+
* @category models
|
|
160
123
|
*/
|
|
161
|
-
export
|
|
124
|
+
export type BuiltInSettingContext = Setting.Identifier<"log-level">;
|
|
162
125
|
//# sourceMappingURL=GlobalFlag.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalFlag.d.ts","sourceRoot":"","sources":["../../../src/unstable/cli/GlobalFlag.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"GlobalFlag.d.ts","sourceRoot":"","sources":["../../../src/unstable/cli/GlobalFlag.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Console from "../../Console.js";
|
|
5
5
|
import * as Effect from "../../Effect.js";
|
|
6
|
-
import { dual } from "../../Function.js";
|
|
7
|
-
import * as Layer from "../../Layer.js";
|
|
8
6
|
import * as Option from "../../Option.js";
|
|
9
|
-
import * as References from "../../References.js";
|
|
10
7
|
import * as ServiceMap from "../../ServiceMap.js";
|
|
11
8
|
import * as CliOutput from "./CliOutput.js";
|
|
12
9
|
import * as Flag from "./Flag.js";
|
|
@@ -30,16 +27,21 @@ export const action = options => ({
|
|
|
30
27
|
* @since 4.0.0
|
|
31
28
|
* @category constructors
|
|
32
29
|
*/
|
|
33
|
-
export const setting = options =>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
export const setting = id => options => {
|
|
31
|
+
settingIdCounter += 1;
|
|
32
|
+
const ref = ServiceMap.Service(`effect/unstable/cli/GlobalFlag/${id}/${settingIdCounter}`);
|
|
33
|
+
return Object.assign(ref, {
|
|
34
|
+
_tag: "Setting",
|
|
35
|
+
id,
|
|
36
|
+
flag: options.flag
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
let settingIdCounter = 0;
|
|
38
40
|
/* ========================================================================== */
|
|
39
41
|
/* Built-in Flag References */
|
|
40
42
|
/* ========================================================================== */
|
|
41
43
|
import * as CommandDescriptor from "./internal/completions/CommandDescriptor.js";
|
|
42
|
-
import * as
|
|
44
|
+
import * as CompletionsInternal from "./internal/completions/Completions.js";
|
|
43
45
|
import * as HelpInternal from "./internal/help.js";
|
|
44
46
|
/**
|
|
45
47
|
* The `--help` / `-h` global flag.
|
|
@@ -48,17 +50,15 @@ import * as HelpInternal from "./internal/help.js";
|
|
|
48
50
|
* @since 4.0.0
|
|
49
51
|
* @category references
|
|
50
52
|
*/
|
|
51
|
-
export const Help = /*#__PURE__*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
yield* Console.log(formatter.formatHelpDoc(helpDoc));
|
|
61
|
-
})
|
|
53
|
+
export const Help = /*#__PURE__*/action({
|
|
54
|
+
flag: /*#__PURE__*/Flag.boolean("help").pipe(/*#__PURE__*/Flag.withAlias("h"), /*#__PURE__*/Flag.withDescription("Show help information")),
|
|
55
|
+
run: (_, {
|
|
56
|
+
command,
|
|
57
|
+
commandPath
|
|
58
|
+
}) => Effect.gen(function* () {
|
|
59
|
+
const formatter = yield* CliOutput.Formatter;
|
|
60
|
+
const helpDoc = yield* HelpInternal.getHelpForCommandPath(command, commandPath, BuiltIns);
|
|
61
|
+
yield* Console.log(formatter.formatHelpDoc(helpDoc));
|
|
62
62
|
})
|
|
63
63
|
});
|
|
64
64
|
/**
|
|
@@ -68,16 +68,14 @@ export const Help = /*#__PURE__*/ServiceMap.Reference("effect/cli/GlobalFlag/Hel
|
|
|
68
68
|
* @since 4.0.0
|
|
69
69
|
* @category references
|
|
70
70
|
*/
|
|
71
|
-
export const Version = /*#__PURE__*/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
yield* Console.log(formatter.formatVersion(command.name, version));
|
|
80
|
-
})
|
|
71
|
+
export const Version = /*#__PURE__*/action({
|
|
72
|
+
flag: /*#__PURE__*/Flag.boolean("version").pipe(/*#__PURE__*/Flag.withDescription("Show version information")),
|
|
73
|
+
run: (_, {
|
|
74
|
+
command,
|
|
75
|
+
version
|
|
76
|
+
}) => Effect.gen(function* () {
|
|
77
|
+
const formatter = yield* CliOutput.Formatter;
|
|
78
|
+
yield* Console.log(formatter.formatVersion(command.name, version));
|
|
81
79
|
})
|
|
82
80
|
});
|
|
83
81
|
/**
|
|
@@ -87,16 +85,14 @@ export const Version = /*#__PURE__*/ServiceMap.Reference("effect/cli/GlobalFlag/
|
|
|
87
85
|
* @since 4.0.0
|
|
88
86
|
* @category references
|
|
89
87
|
*/
|
|
90
|
-
export const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
yield* Console.log(Completions.generate(command.name, shell.value, descriptor));
|
|
99
|
-
})
|
|
88
|
+
export const Completions = /*#__PURE__*/action({
|
|
89
|
+
flag: /*#__PURE__*/Flag.choice("completions", ["bash", "zsh", "fish", "sh"]).pipe(Flag.optional, /*#__PURE__*/Flag.map(v => Option.map(v, s => s === "sh" ? "bash" : s)), /*#__PURE__*/Flag.withDescription("Print shell completion script")),
|
|
90
|
+
run: (shell, {
|
|
91
|
+
command
|
|
92
|
+
}) => Effect.gen(function* () {
|
|
93
|
+
if (Option.isNone(shell)) return;
|
|
94
|
+
const descriptor = CommandDescriptor.fromCommand(command);
|
|
95
|
+
yield* Console.log(CompletionsInternal.generate(command.name, shell.value, descriptor));
|
|
100
96
|
})
|
|
101
97
|
});
|
|
102
98
|
/**
|
|
@@ -106,59 +102,17 @@ export const CompletionsFlag = /*#__PURE__*/ServiceMap.Reference("effect/cli/Glo
|
|
|
106
102
|
* @since 4.0.0
|
|
107
103
|
* @category references
|
|
108
104
|
*/
|
|
109
|
-
export const
|
|
110
|
-
|
|
111
|
-
flag: Flag.choiceWithValue("log-level", [["all", "All"], ["trace", "Trace"], ["debug", "Debug"], ["info", "Info"], ["warn", "Warn"], ["warning", "Warn"], ["error", "Error"], ["fatal", "Fatal"], ["none", "None"]]).pipe(Flag.optional, Flag.withDescription("Sets the minimum log level")),
|
|
112
|
-
layer: value => Option.match(value, {
|
|
113
|
-
onNone: () => Layer.empty,
|
|
114
|
-
onSome: level => Layer.succeed(References.MinimumLogLevel, level)
|
|
115
|
-
})
|
|
116
|
-
})
|
|
105
|
+
export const LogLevel = /*#__PURE__*/setting("log-level")({
|
|
106
|
+
flag: /*#__PURE__*/Flag.choiceWithValue("log-level", [["all", "All"], ["trace", "Trace"], ["debug", "Debug"], ["info", "Info"], ["warn", "Warn"], ["warning", "Warn"], ["error", "Error"], ["fatal", "Fatal"], ["none", "None"]]).pipe(Flag.optional, /*#__PURE__*/Flag.withDescription("Sets the minimum log level"))
|
|
117
107
|
});
|
|
118
108
|
/* ========================================================================== */
|
|
119
|
-
/*
|
|
109
|
+
/* References */
|
|
120
110
|
/* ========================================================================== */
|
|
121
111
|
/**
|
|
122
|
-
*
|
|
123
|
-
* The parser iterates this set to know which flags to extract.
|
|
112
|
+
* Built-in global flags in default precedence order.
|
|
124
113
|
*
|
|
125
114
|
* @since 4.0.0
|
|
126
115
|
* @category references
|
|
127
116
|
*/
|
|
128
|
-
export const
|
|
129
|
-
defaultValue: () => new Set([Help, Version, CompletionsFlag, LogLevelFlag])
|
|
130
|
-
});
|
|
131
|
-
/* ========================================================================== */
|
|
132
|
-
/* Public API */
|
|
133
|
-
/* ========================================================================== */
|
|
134
|
-
/**
|
|
135
|
-
* Adds a global flag to the registry.
|
|
136
|
-
*
|
|
137
|
-
* @since 4.0.0
|
|
138
|
-
* @category modifiers
|
|
139
|
-
*/
|
|
140
|
-
export const add = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, ref) {
|
|
141
|
-
const currentRegistry = yield* Registry;
|
|
142
|
-
const nextRegistry = new Set([...currentRegistry, ref]);
|
|
143
|
-
return yield* Effect.provideService(self, Registry, nextRegistry);
|
|
144
|
-
}));
|
|
145
|
-
/**
|
|
146
|
-
* Removes a global flag by its reference.
|
|
147
|
-
*
|
|
148
|
-
* @since 4.0.0
|
|
149
|
-
* @category modifiers
|
|
150
|
-
*/
|
|
151
|
-
export const remove = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, ref) {
|
|
152
|
-
const currentRegistry = yield* Registry;
|
|
153
|
-
const nextRegistry = new Set(currentRegistry);
|
|
154
|
-
nextRegistry.delete(ref);
|
|
155
|
-
return yield* Effect.provideService(self, Registry, nextRegistry);
|
|
156
|
-
}));
|
|
157
|
-
/**
|
|
158
|
-
* Removes all global flags (built-in and user-defined).
|
|
159
|
-
*
|
|
160
|
-
* @since 4.0.0
|
|
161
|
-
* @category modifiers
|
|
162
|
-
*/
|
|
163
|
-
export const clear = self => Effect.provideService(self, Registry, new Set());
|
|
117
|
+
export const BuiltIns = [Help, Version, Completions, LogLevel];
|
|
164
118
|
//# sourceMappingURL=GlobalFlag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalFlag.js","names":["Console","Effect","
|
|
1
|
+
{"version":3,"file":"GlobalFlag.js","names":["Console","Effect","Option","ServiceMap","CliOutput","Flag","action","options","_tag","flag","run","setting","id","settingIdCounter","ref","Service","Object","assign","CommandDescriptor","CompletionsInternal","HelpInternal","Help","boolean","pipe","withAlias","withDescription","_","command","commandPath","gen","formatter","Formatter","helpDoc","getHelpForCommandPath","BuiltIns","log","formatHelpDoc","Version","version","formatVersion","name","Completions","choice","optional","map","v","s","shell","isNone","descriptor","fromCommand","generate","value","LogLevel","choiceWithValue"],"sources":["../../../src/unstable/cli/GlobalFlag.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ import * as Arr from "../../../Array.ts";
|
|
|
9
9
|
import * as Effect from "../../../Effect.ts";
|
|
10
10
|
import * as ServiceMap from "../../../ServiceMap.ts";
|
|
11
11
|
import * as CliError from "../CliError.ts";
|
|
12
|
+
import type * as GlobalFlag from "../GlobalFlag.ts";
|
|
12
13
|
import type { HelpDoc } from "../HelpDoc.ts";
|
|
13
14
|
import { type ConfigInternal } from "./config.ts";
|
|
14
15
|
import type { Command, CommandContext, Environment, ParsedTokens } from "../Command.ts";
|
|
@@ -24,6 +25,7 @@ export interface CommandInternal<Name extends string, Input, E, R> extends Comma
|
|
|
24
25
|
readonly config: ConfigInternal;
|
|
25
26
|
readonly service: ServiceMap.Service<CommandContext<Name>, Input>;
|
|
26
27
|
readonly annotations: ServiceMap.ServiceMap<never>;
|
|
28
|
+
readonly globalFlags: ReadonlyArray<GlobalFlag.GlobalFlag<any>>;
|
|
27
29
|
readonly parse: (input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>;
|
|
28
30
|
readonly handle: (input: Input, commandPath: ReadonlyArray<string>) => Effect.Effect<void, E | CliError.CliError, R | Environment>;
|
|
29
31
|
readonly buildHelpDoc: (commandPath: ReadonlyArray<string>) => HelpDoc;
|
|
@@ -47,6 +49,7 @@ export declare const makeCommand: <const Name extends string, Input, E, R>(optio
|
|
|
47
49
|
readonly config: ConfigInternal;
|
|
48
50
|
readonly service?: ServiceMap.Service<CommandContext<Name>, Input> | undefined;
|
|
49
51
|
readonly annotations?: ServiceMap.ServiceMap<never> | undefined;
|
|
52
|
+
readonly globalFlags?: ReadonlyArray<GlobalFlag.GlobalFlag<any>> | undefined;
|
|
50
53
|
readonly description?: string | undefined;
|
|
51
54
|
readonly shortDescription?: string | undefined;
|
|
52
55
|
readonly alias?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/command.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,6 +49,7 @@ export const makeCommand = options => {
|
|
|
49
49
|
const service = options.service ?? ServiceMap.Service(`${TypeId}/${options.name}`);
|
|
50
50
|
const config = options.config;
|
|
51
51
|
const annotations = options.annotations ?? ServiceMap.empty();
|
|
52
|
+
const globalFlags = options.globalFlags ?? [];
|
|
52
53
|
const subcommands = options.subcommands ?? [];
|
|
53
54
|
const handle = (input, commandPath) => Predicate.isNotUndefined(options.handle) ? options.handle(input, commandPath) : Effect.fail(new CliError.ShowHelp({
|
|
54
55
|
commandPath
|
|
@@ -133,6 +134,7 @@ export const makeCommand = options => {
|
|
|
133
134
|
name: options.name,
|
|
134
135
|
examples: options.examples ?? [],
|
|
135
136
|
annotations,
|
|
137
|
+
globalFlags,
|
|
136
138
|
subcommands,
|
|
137
139
|
config,
|
|
138
140
|
service,
|
|
@@ -1 +1 @@
|
|
|
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"],"sources":["../../../../src/unstable/cli/internal/command.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;AAOA,OAAO,KAAKA,GAAG,MAAM,mBAAmB;AACxC,OAAO,KAAKC,MAAM,MAAM,oBAAoB;AAC5C,SAASC,cAAc,QAAQ,2BAA2B;AAC1D,SAASC,aAAa,QAAQ,sBAAsB;AACpD,OAAO,KAAKC,SAAS,MAAM,uBAAuB;AAClD,OAAO,KAAKC,UAAU,MAAM,wBAAwB;AACpD,OAAO,KAAKC,QAAQ,MAAM,gBAAgB;
|
|
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","globalFlags","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"],"sources":["../../../../src/unstable/cli/internal/command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -6,14 +6,28 @@
|
|
|
6
6
|
* Extracted from command.ts to avoid circular dependencies.
|
|
7
7
|
*/
|
|
8
8
|
import * as Effect from "../../../Effect.ts";
|
|
9
|
-
import type * as ServiceMap from "../../../ServiceMap.ts";
|
|
10
9
|
import type { Command } from "../Command.ts";
|
|
11
|
-
import type
|
|
10
|
+
import type * as GlobalFlag from "../GlobalFlag.ts";
|
|
12
11
|
import type { HelpDoc } from "../HelpDoc.ts";
|
|
12
|
+
/**
|
|
13
|
+
* Returns the resolved command lineage for the provided path.
|
|
14
|
+
* Includes the root command as the first element.
|
|
15
|
+
*/
|
|
16
|
+
export declare const getCommandsForCommandPath: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, commandPath: ReadonlyArray<string>) => ReadonlyArray<Command.Any>;
|
|
17
|
+
/**
|
|
18
|
+
* Returns active global flags for a command path.
|
|
19
|
+
* Built-ins are prepended and declarations are collected root -> leaf.
|
|
20
|
+
*/
|
|
21
|
+
export declare const getGlobalFlagsForCommandPath: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, commandPath: ReadonlyArray<string>, builtIns: ReadonlyArray<GlobalFlag.GlobalFlag<any>>) => ReadonlyArray<GlobalFlag.GlobalFlag<any>>;
|
|
22
|
+
/**
|
|
23
|
+
* Returns all global flags declared in a command tree.
|
|
24
|
+
* Built-ins are prepended and command declarations are deduplicated by identity.
|
|
25
|
+
*/
|
|
26
|
+
export declare const getGlobalFlagsForCommandTree: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, builtIns: ReadonlyArray<GlobalFlag.GlobalFlag<any>>) => ReadonlyArray<GlobalFlag.GlobalFlag<any>>;
|
|
13
27
|
/**
|
|
14
28
|
* Helper function to get help documentation for a specific command path.
|
|
15
29
|
* Navigates through the command hierarchy to find the right command.
|
|
16
|
-
* Reads global flags
|
|
30
|
+
* Reads active global flags for the path and includes them in the help doc.
|
|
17
31
|
*/
|
|
18
|
-
export declare const getHelpForCommandPath: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, commandPath: ReadonlyArray<string>,
|
|
32
|
+
export declare const getHelpForCommandPath: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, commandPath: ReadonlyArray<string>, builtIns: ReadonlyArray<GlobalFlag.GlobalFlag<any>>) => Effect.Effect<HelpDoc, never, never>;
|
|
19
33
|
//# sourceMappingURL=help.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,KAAK,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,UAAU,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAW,OAAO,EAAE,MAAM,eAAe,CAAA;AAoBrD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EACxE,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EACnC,aAAa,aAAa,CAAC,MAAM,CAAC,KACjC,aAAa,CAAC,OAAO,CAAC,GAAG,CAwB3B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAC3E,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EACnC,aAAa,aAAa,CAAC,MAAM,CAAC,EAClC,UAAU,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAClD,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAO1C,CAAA;AAqBD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAC3E,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EACnC,UAAU,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAClD,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAIvC,CAAA;AAEJ;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EACpE,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EACnC,aAAa,aAAa,CAAC,MAAM,CAAC,EAClC,UAAU,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAwBlC,CAAA"}
|
|
@@ -9,12 +9,24 @@ import * as Effect from "../../../Effect.js";
|
|
|
9
9
|
import * as Param from "../Param.js";
|
|
10
10
|
import * as Primitive from "../Primitive.js";
|
|
11
11
|
import { toImpl } from "./command.js";
|
|
12
|
+
const dedupeGlobalFlags = flags => {
|
|
13
|
+
const seen = new Set();
|
|
14
|
+
const deduped = [];
|
|
15
|
+
for (const flag of flags) {
|
|
16
|
+
if (seen.has(flag)) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
seen.add(flag);
|
|
20
|
+
deduped.push(flag);
|
|
21
|
+
}
|
|
22
|
+
return deduped;
|
|
23
|
+
};
|
|
12
24
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* Reads global flags from the registry and includes them in the help doc.
|
|
25
|
+
* Returns the resolved command lineage for the provided path.
|
|
26
|
+
* Includes the root command as the first element.
|
|
16
27
|
*/
|
|
17
|
-
export const
|
|
28
|
+
export const getCommandsForCommandPath = (command, commandPath) => {
|
|
29
|
+
const commands = [command];
|
|
18
30
|
let currentCommand = command;
|
|
19
31
|
for (let i = 1; i < commandPath.length; i++) {
|
|
20
32
|
const subcommandName = commandPath[i];
|
|
@@ -25,15 +37,56 @@ export const getHelpForCommandPath = (command, commandPath, registry) => Effect.
|
|
|
25
37
|
break;
|
|
26
38
|
}
|
|
27
39
|
}
|
|
28
|
-
if (subcommand) {
|
|
29
|
-
|
|
40
|
+
if (!subcommand) {
|
|
41
|
+
break;
|
|
30
42
|
}
|
|
43
|
+
commands.push(subcommand);
|
|
44
|
+
currentCommand = subcommand;
|
|
31
45
|
}
|
|
46
|
+
return commands;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Returns active global flags for a command path.
|
|
50
|
+
* Built-ins are prepended and declarations are collected root -> leaf.
|
|
51
|
+
*/
|
|
52
|
+
export const getGlobalFlagsForCommandPath = (command, commandPath, builtIns) => {
|
|
53
|
+
const commands = getCommandsForCommandPath(command, commandPath);
|
|
54
|
+
const declared = commands.flatMap(current => toImpl(current).globalFlags);
|
|
55
|
+
return dedupeGlobalFlags([...builtIns, ...declared]);
|
|
56
|
+
};
|
|
57
|
+
const collectDeclaredGlobalFlags = command => {
|
|
58
|
+
const collected = [];
|
|
59
|
+
const visit = current => {
|
|
60
|
+
const impl = toImpl(current);
|
|
61
|
+
for (const flag of impl.globalFlags) {
|
|
62
|
+
collected.push(flag);
|
|
63
|
+
}
|
|
64
|
+
for (const group of current.subcommands) {
|
|
65
|
+
for (const subcommand of group.commands) {
|
|
66
|
+
visit(subcommand);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
visit(command);
|
|
71
|
+
return dedupeGlobalFlags(collected);
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Returns all global flags declared in a command tree.
|
|
75
|
+
* Built-ins are prepended and command declarations are deduplicated by identity.
|
|
76
|
+
*/
|
|
77
|
+
export const getGlobalFlagsForCommandTree = (command, builtIns) => dedupeGlobalFlags([...builtIns, ...collectDeclaredGlobalFlags(command)]);
|
|
78
|
+
/**
|
|
79
|
+
* Helper function to get help documentation for a specific command path.
|
|
80
|
+
* Navigates through the command hierarchy to find the right command.
|
|
81
|
+
* Reads active global flags for the path and includes them in the help doc.
|
|
82
|
+
*/
|
|
83
|
+
export const getHelpForCommandPath = (command, commandPath, builtIns) => Effect.gen(function* () {
|
|
84
|
+
const commands = getCommandsForCommandPath(command, commandPath);
|
|
85
|
+
const currentCommand = commands.length > 0 ? commands[commands.length - 1] : command;
|
|
32
86
|
const baseDoc = toImpl(currentCommand).buildHelpDoc(commandPath);
|
|
33
|
-
const
|
|
87
|
+
const flags = getGlobalFlagsForCommandPath(command, commandPath, builtIns);
|
|
34
88
|
const globalFlagDocs = [];
|
|
35
|
-
for (const
|
|
36
|
-
const flag = yield* ref;
|
|
89
|
+
for (const flag of flags) {
|
|
37
90
|
const singles = Param.extractSingleParams(flag.flag);
|
|
38
91
|
for (const single of singles) {
|
|
39
92
|
const formattedAliases = single.aliases.map(alias => alias.length === 1 ? `-${alias}` : `--${alias}`);
|