| /** | |
| * Global flags for Effect CLI command trees. Global flags are parsed outside a | |
| * single command's local flags and can apply to a command and its descendants. | |
| * | |
| * This module defines two kinds of global flags: action flags, which run an | |
| * effect and stop normal command execution, and setting flags, which provide a | |
| * parsed value to the command handler through the Effect context. It also | |
| * defines the built-in help, version, shell-completion, and log-level flags | |
| * used by `Command.run` and `Command.runWith`. | |
| * | |
| * @since 4.0.0 | |
| */ | |
| import * as Context from "../../Context.ts"; | |
| import * as Effect from "../../Effect.ts"; | |
| import type { LogLevel as LogLevelType } from "../../LogLevel.ts"; | |
| import * as Option from "../../Option.ts"; | |
| import type * as Command from "./Command.ts"; | |
| import * as Flag from "./Flag.ts"; | |
| /** | |
| * Context passed to action handlers. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export interface HandlerContext { | |
| readonly command: Command.Command.Any; | |
| readonly commandPath: ReadonlyArray<string>; | |
| readonly version: string; | |
| } | |
| /** | |
| * Action flag: side effect + exit (--help, --version, --completions). | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export interface Action<A> { | |
| readonly _tag: "Action"; | |
| readonly flag: Flag.Flag<A>; | |
| readonly run: (value: A, context: HandlerContext) => Effect.Effect<void>; | |
| } | |
| /** | |
| * Setting flag: configure command handler's environment (--log-level, --config). | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export interface Setting<Id extends string, A> extends Context.Service<Setting.Identifier<Id>, A> { | |
| readonly _tag: "Setting"; | |
| readonly id: Id; | |
| readonly flag: Flag.Flag<A>; | |
| } | |
| /** | |
| * Namespace containing type helpers for global setting flags. | |
| * | |
| * @since 4.0.0 | |
| */ | |
| export declare namespace Setting { | |
| /** | |
| * Type-level service identifier used by `Setting` global flags for the | |
| * parsed value associated with a setting id. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| type Identifier<Id extends string> = `effect/unstable/cli/GlobalFlag/${Id}`; | |
| } | |
| /** | |
| * Global flag discriminated union. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type GlobalFlag<A> = Action<A> | Setting<any, A>; | |
| /** | |
| * Creates an Action flag that performs a side effect and exits. | |
| * | |
| * @category constructors | |
| * @since 4.0.0 | |
| */ | |
| export declare const action: <A>(options: { | |
| readonly flag: Flag.Flag<A>; | |
| readonly run: (value: A, context: HandlerContext) => Effect.Effect<void>; | |
| }) => Action<A>; | |
| /** | |
| * Creates a Setting flag that configures the command handler's environment. | |
| * | |
| * @category constructors | |
| * @since 4.0.0 | |
| */ | |
| export declare const setting: <const Id extends string>(id: Id) => <A>(options: { | |
| readonly flag: Flag.Flag<A>; | |
| }) => Setting<Id, A>; | |
| /** | |
| * Defines the `--help` / `-h` global flag, which shows help documentation for the | |
| * active command path. | |
| * | |
| * @see {@link BuiltIns} for the default list containing this flag | |
| * @see {@link action} for defining custom action global flags | |
| * | |
| * @category references | |
| * @since 4.0.0 | |
| */ | |
| export declare const Help: Action<boolean>; | |
| /** | |
| * Defines the global action flag for showing command version information. | |
| * | |
| * **When to use** | |
| * | |
| * Use to add a built-in `--version / -v` flag to a command runner. | |
| * | |
| * @category references | |
| * @since 4.0.0 | |
| */ | |
| export declare const Version: Action<boolean>; | |
| /** | |
| * Defines the `--completions` global flag, which prints a shell completion script for | |
| * the given shell. | |
| * | |
| * **Details** | |
| * | |
| * Accepted values are `bash`, `zsh`, `fish`, and `sh`; `sh` is normalized to | |
| * `bash`. | |
| * | |
| * @category references | |
| * @since 4.0.0 | |
| */ | |
| export declare const Completions: Action<Option.Option<"bash" | "zsh" | "fish">>; | |
| /** | |
| * Defines the global setting flag for command log level. | |
| * | |
| * **When to use** | |
| * | |
| * Use to add a built-in `--log-level` option that configures the minimum log | |
| * level for the command. | |
| * | |
| * @category references | |
| * @since 4.0.0 | |
| */ | |
| export declare const LogLevel: Setting<"log-level", Option.Option<LogLevelType>>; | |
| /** | |
| * Built-in global flags in default precedence order. | |
| * | |
| * **When to use** | |
| * | |
| * Use when extending or inspecting the default global-flag set that | |
| * `Command.runWith` prepends before user-defined global flags. | |
| * | |
| * **Details** | |
| * | |
| * The built-ins are `Help`, `Version`, `Completions`, and `LogLevel`. | |
| * `Command.runWith` prepends these built-ins when collecting and parsing global | |
| * flags. | |
| * | |
| * **Gotchas** | |
| * | |
| * Action flags are processed in active flag order and the first present action | |
| * exits, so this array controls built-in action precedence. | |
| * | |
| * @see {@link Help} for the help action flag | |
| * @see {@link Version} for the version action flag | |
| * @see {@link Completions} for the shell-completions action flag | |
| * @see {@link LogLevel} for the built-in log-level setting flag | |
| * | |
| * @category references | |
| * @since 4.0.0 | |
| */ | |
| export declare const BuiltIns: ReadonlyArray<GlobalFlag<any>>; | |
| /** | |
| * Built-in setting context identifiers. | |
| * | |
| * @category models | |
| * @since 4.0.0 | |
| */ | |
| export type BuiltInSettingContext = Setting.Identifier<"log-level">; | |
| //# sourceMappingURL=GlobalFlag.d.ts.map |
Xet Storage Details
- Size:
- 5.14 kB
- Xet hash:
- abecda34055d6f60a3906beea4784e1134c1d4a2c13f35c0e471a25fb94af8c9
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.