Command
Accessors
getBashCompletions
Added in v1.0.0
Source
Signature
declare const getBashCompletions: <Name extends string, R, E, A>(
self: Command<Name, R, E, A>,
programName: string,
) => Effect<Array<string>>;getFishCompletions
Added in v1.0.0
Source
Signature
declare const getFishCompletions: <Name extends string, R, E, A>(
self: Command<Name, R, E, A>,
programName: string,
) => Effect<Array<string>>;Signature
declare const getHelp: <Name extends string, R, E, A>(
self: Command<Name, R, E, A>,
config: CliConfig,
) => HelpDoc;Signature
declare const getNames: <Name extends string, R, E, A>(
self: Command<Name, R, E, A>,
) => HashSet<string>;getSubcommands
Added in v1.0.0
Source
Signature
declare const getSubcommands: <Name extends string, R, E, A>(
self: Command<Name, R, E, A>,
) => HashMap<string, Descriptor.Command<unknown>>;Signature
declare const getUsage: <Name extends string, R, E, A>(self: Command<Name, R, E, A>) => Usage;getZshCompletions
Added in v1.0.0
Source
Signature
declare const getZshCompletions: <Name extends string, R, E, A>(
self: Command<Name, R, E, A>,
programName: string,
) => Effect<Array<string>>;Signature
declare const wizard: {
(prefix: readonly Array<string>, config: CliConfig): <Name extends string, R, E, A>(self: Command<Name, R, E, A>) => Effect<Array<string>, any, any>;
<Name extends string, R, E, A>(self: Command<Name, R, E, A>, prefix: readonly Array<string>, config: CliConfig): Effect<Array<string>, any, any>;
}Combinators
Signature
declare const provide: {
<A, LR, LE, LA>(layer: Layer<LA, LE, LR> | (_: A) => Layer<LA, LE, LR>): <Name extends string, R, E>(self: Command<Name, R, E, A>) => Command<Name, LR | Exclude<R, LA>, LE | E, A>;
<Name extends string, R, E, A, LR, LE, LA>(self: Command<Name, R, E, A>, layer: Layer<LA, LE, LR> | (_: A) => Layer<LA, LE, LR>): Command<Name, LR | Exclude<R, LA>, E | LE, A>;
}provideEffect
Added in v1.0.0
Source
Signature
declare const provideEffect: {
<I, S, A, R2, E2>(tag: Tag<I, S>, effect: Effect<S, E2, R2> | (_: A) => Effect<S, E2, R2>): <Name extends string, R, E>(self: Command<Name, R, E, A>) => Command<Name, R2 | Exclude<R, I>, E2 | E, A>;
<Name extends string, R, E, A, I, S, R2, E2>(self: Command<Name, R, E, A>, tag: Tag<I, S>, effect: Effect<S, E2, R2> | (_: A) => Effect<S, E2, R2>): Command<Name, R2 | Exclude<R, I>, E | E2, A>;
}provideEffectDiscard
Added in v1.0.0
Source
Signature
declare const provideEffectDiscard: {
<A, R2, E2, _>(effect: Effect<_, E2, R2> | (_: A) => Effect<_, E2, R2>): <Name extends string, R, E>(self: Command<Name, R, E, A>) => Command<Name, R2 | R, E2 | E, A>;
<Name extends string, R, E, A, R2, E2, _>(self: Command<Name, R, E, A>, effect: Effect<_, E2, R2> | (_: A) => Effect<_, E2, R2>): Command<Name, R | R2, E | E2, A>;
}provideSync
Added in v1.0.0
Source
Signature
declare const provideSync: {
<I, S, A>(tag: Tag<I, S>, service: S | (_: A) => S): <Name extends string, R, E>(self: Command<Name, R, E, A>) => Command<Name, Exclude<R, I>, E, A>;
<Name extends string, R, E, A, I, S>(self: Command<Name, R, E, A>, tag: Tag<I, S>, service: S | (_: A) => S): Command<Name, Exclude<R, I>, E, A>;
}transformHandler
Added in v1.0.0
Source
Signature
declare const transformHandler: {
<R, E, A, R2, E2>(
f: (effect: Effect<void, E, R>, config: A) => Effect<void, E2, R2>,
): <Name extends string>(self: Command<Name, R, E, A>) => Command<Name, R | R2, E | E2, A>;
<Name extends string, R, E, A, R2, E2>(
self: Command<Name, R, E, A>,
f: (effect: Effect<void, E, R>, config: A) => Effect<void, E2, R2>,
): Command<Name, R | R2, E | E2, A>;
};withDescription
Added in v1.0.0
Source
Signature
declare const withDescription: {
(
help: string | HelpDoc,
): <Name extends string, R, E, A>(self: Command<Name, R, E, A>) => Command<Name, R, E, A>;
<Name extends string, R, E, A>(
self: Command<Name, R, E, A>,
help: string | HelpDoc,
): Command<Name, R, E, A>;
};withHandler
Added in v1.0.0
Source
Signature
declare const withHandler: {
<A, R, E>(
handler: (_: A) => Effect<void, E, R>,
): <Name extends string, XR, XE>(self: Command<Name, XR, XE, A>) => Command<Name, R, E, A>;
<Name extends string, XR, XE, A, R, E>(
self: Command<Name, XR, XE, A>,
handler: (_: A) => Effect<void, E, R>,
): Command<Name, R, E, A>;
};withSubcommands
Added in v1.0.0
Source
Signature
declare const withSubcommands: {
<Subcommand extends readonly [Command<any, any, any, any>, Command<any, any, any, any>]>(subcommands: Subcommand): <Name extends string, R, E, A>(self: Command<Name, R, E, A>) => Command<Name, any, any, ComputeParsedType<A & Readonly<{
subcommand: Option<Descriptor.Command.GetParsedType<...[...]["descriptor"]>>;
}>>>;
<Name extends string, R, E, A, Subcommand extends readonly [Command<any, any, any, any>, Command<any, any, any, any>]>(self: Command<Name, R, E, A>, subcommands: Subcommand): Command<Name, any, any, ComputeParsedType<A & Readonly<{
subcommand: Option<Descriptor.Command.GetParsedType<Subcommand[number]["descriptor"]>>;
}>>>;
}Constructors
fromDescriptor
Added in v1.0.0
Source
Signature
declare const fromDescriptor: {
(): <
A extends {
readonly name: string;
},
>(
command: Command<A>,
) => Command<A["name"], never, never, A>;
<
A extends {
readonly name: string;
},
R,
E,
>(
handler: (_: A) => Effect<void, E, R>,
): (command: Command<A>) => Command<A["name"], R, E, A>;
<
A extends {
readonly name: string;
},
>(
descriptor: Command<A>,
): Command<A["name"], never, never, A>;
<
A extends {
readonly name: string;
},
R,
E,
>(
descriptor: Command<A>,
handler: (_: A) => Effect<void, E, R>,
): Command<A["name"], R, E, A>;
};Signature
declare const make: {
<Name extends string>(name: Name): Command<Name, never, never, {}>;
<Name extends string, Config extends Config>(
name: Name,
config: Config,
): Command<
Name,
never,
never,
Simplify<Simplify<{ [Key in string | number | symbol]: ParseConfigValue<Config[Key]> }>>
>;
<Name extends string, Config extends Config, R, E>(
name: Name,
config: Config,
handler: (
_: Simplify<Simplify<{ [Key in string | number | symbol]: ParseConfigValue<Config[Key]> }>>,
) => Effect<void, E, R>,
): Command<
Name,
R,
E,
Simplify<Simplify<{ [Key in string | number | symbol]: ParseConfigValue<Config[Key]> }>>
>;
};Signature
declare const prompt: <Name extends string, A, R, E>(
name: Name,
prompt: Prompt<A>,
handler: (_: A) => Effect<void, E, R>,
) => Command<string, R, E, A>;Conversions
Signature
declare const run: {
(config: Omit<CliApp.ConstructorArgs<never>, "command">): <Name extends string, R, E, A>(self: Command<Name, R, E, A>) => (args: readonly Array<string>) => Effect<void, ValidationError | E, any>;
<Name extends string, R, E, A>(self: Command<Name, R, E, A>, config: Omit<CliApp.ConstructorArgs<never>, "command">): (args: readonly Array<string>) => Effect<void, ValidationError | E, any>;
}Models
Signature
interface Command<Name extends string, R, E, A>
extends Pipeable, Effect<A, never, Command.Context<Name>> {
readonly [TypeId]: typeof TypeId;
readonly descriptor: Command<A>;
readonly handler: (_: A) => Effect<void, E, R>;
readonly tag: Tag<Context<Name>, A>;
readonly transform: Transform<R, E, A>;
}