Skip to content

Options

49 exports Added in v1.0.0 Source

Combinators

atLeast

Added in v1.0.0 Source

Signature

declare const atLeast: {
  (times: 0): <A>(self: Options<A>) => Options<Array<A>>;
  (times: number): <A>(self: Options<A>) => Options<[A, ...Array<A>]>;
  <A>(self: Options<A>, times: 0): Options<Array<A>>;
  <A>(self: Options<A>, times: number): Options<[A, ...Array<A>]>;
};

atMost

Added in v1.0.0 Source

Signature

declare const atMost: {
  (times: number): <A>(self: Options<A>) => Options<Array<A>>;
  <A>(self: Options<A>, times: number): Options<Array<A>>;
};

between

Added in v1.0.0 Source

Signature

declare const between: {
  (min: 0, max: number): <A>(self: Options<A>) => Options<Array<A>>;
  (min: number, max: number): <A>(self: Options<A>) => Options<[A, ...Array<A>]>;
  <A>(self: Options<A>, min: 0, max: number): Options<Array<A>>;
  <A>(self: Options<A>, min: number, max: number): Options<[A, ...Array<A>]>;
};

filterMap

Added in v1.0.0 Source

Signature

declare const filterMap: {
  <A, B>(f: (a: A) => Option<B>, message: string): (self: Options<A>) => Options<B>;
  <A, B>(self: Options<A>, f: (a: A) => Option<B>, message: string): Options<B>;
};

getHelp

Added in v1.0.0 Source

Signature

declare const getHelp: <A>(self: Options<A>) => HelpDoc;

Signature

declare const getIdentifier: <A>(self: Options<A>) => Option<string>;

getUsage

Added in v1.0.0 Source

Signature

declare const getUsage: <A>(self: Options<A>) => Usage;

isBool

Added in v1.0.0 Source

Returns true if the specified Options is a boolean flag, false otherwise.

Signature

declare const isBool: <A>(self: Options<A>) => boolean;

map

Added in v1.0.0 Source

Signature

declare const map: {
  <A, B>(f: (a: A) => B): (self: Options<A>) => Options<B>;
  <A, B>(self: Options<A>, f: (a: A) => B): Options<B>;
};

mapEffect

Added in v1.0.0 Source

Signature

declare const mapEffect: {
  <A, B>(f: (a: A) => Effect<B, ValidationError, any>): (self: Options<A>) => Options<B>;
  <A, B>(self: Options<A>, f: (a: A) => Effect<B, ValidationError, any>): Options<B>;
};

mapTryCatch

Added in v1.0.0 Source

Signature

declare const mapTryCatch: {
  <A, B>(f: (a: A) => B, onError: (e: unknown) => HelpDoc): (self: Options<A>) => Options<B>;
  <A, B>(self: Options<A>, f: (a: A) => B, onError: (e: unknown) => HelpDoc): Options<B>;
};

optional

Added in v1.0.0 Source

Signature

declare const optional: <A>(self: Options<A>) => Options<Option<A>>;

orElse

Added in v1.0.0 Source

Signature

declare const orElse: {
  <A>(that: Options<A>): <B>(self: Options<B>) => Options<A | B>;
  <A, B>(self: Options<A>, that: Options<B>): Options<A | B>;
};

orElseEither

Added in v1.0.0 Source

Signature

declare const orElseEither: {
  <A>(that: Options<A>): <B>(self: Options<B>) => Options<Either<A, B>>;
  <A, B>(self: Options<A>, that: Options<B>): Options<Either<A, B>>;
};

parse

Added in v1.0.0 Source

Signature

declare const parse: {
  (args: HashMap<string, readonly Array<string>>, config: CliConfig): <A>(self: Options<A>) => Effect<A, ValidationError, FileSystem>;
  <A>(self: Options<A>, args: HashMap<string, readonly Array<string>>, config: CliConfig): Effect<A, ValidationError, FileSystem>;
}

Processes the provided command-line arguments, searching for the specified Options.

Returns an Option<ValidationError>, any leftover arguments, and the constructed value of type A. The possible error inside Option<ValidationError> would only be triggered if there is an error when parsing the command-line arguments. This is because ValidationErrors are also used internally to control the end of the command-line arguments (i.e. the command-line symbol --) corresponding to options.

Signature

declare const processCommandLine: {
  (args: readonly Array<string>, config: CliConfig): <A>(self: Options<A>) => Effect<[Option<ValidationError>, Array<string>, A], ValidationError, any>;
  <A>(self: Options<A>, args: readonly Array<string>, config: CliConfig): Effect<[Option<ValidationError>, Array<string>, A], ValidationError, any>;
}

repeated

Added in v1.0.0 Source

Indicates that the specified command-line option can be repeated 0 or more times.

NOTE: if the command-line option is not provided, and empty array will be returned as the value for said option.

Signature

declare const repeated: <A>(self: Options<A>) => Options<Array<A>>;

withAlias

Added in v1.0.0 Source

Signature

declare const withAlias: {
  (alias: string): <A>(self: Options<A>) => Options<A>;
  <A>(self: Options<A>, alias: string): Options<A>;
};

withDefault

Added in v1.0.0 Source

Signature

declare const withDefault: {
  <B>(fallback: B): <A>(self: Options<A>) => Options<B | A>;
  <A, B>(self: Options<A>, fallback: B): Options<A | B>;
};

Signature

declare const withDescription: {
  (description: string): <A>(self: Options<A>) => Options<A>;
  <A>(self: Options<A>, description: string): Options<A>;
};

Signature

declare const withFallbackConfig: {
  <B>(config: Config<B>): <A>(self: Options<A>) => Options<B | A>;
  <A, B>(self: Options<A>, config: Config<B>): Options<A | B>;
};

Signature

declare const withFallbackPrompt: {
  <B>(prompt: Prompt<B>): <A>(self: Options<A>) => Options<B | A>;
  <A, B>(self: Options<A>, prompt: Prompt<B>): Options<A | B>;
};

Signature

declare const withPseudoName: {
  (pseudoName: string): <A>(self: Options<A>) => Options<A>;
  <A>(self: Options<A>, pseudoName: string): Options<A>;
};

withSchema

Added in v1.0.0 Source

Signature

declare const withSchema: {
  <A, I, B>(schema: any): (self: Options<A>) => Options<B>;
  <A, I, B>(self: Options<A>, schema: any): Options<B>;
};

wizard

Added in v1.0.0 Source

Signature

declare const wizard: {
  (config: CliConfig): <A>(self: Options<A>) => Effect<Array<string>, any, any>;
  <A>(self: Options<A>, config: CliConfig): Effect<Array<string>, any, any>;
};

Constructors

all

Added in v1.0.0 Source

Signature

declare const all: <Arg extends Iterable<Options<any>> | Record<string, Options<any>>>(
  arg: Arg,
) => All.Return<Arg>;

boolean

Added in v1.0.0 Source

Signature

declare const boolean: (name: string, options?: Options.BooleanOptionsConfig) => Options<boolean>;

choice

Added in v1.0.0 Source

Constructs command-line Options that represent a choice between several inputs. The input will be mapped to it's associated value during parsing.

Signature

declare const choice: <A extends string, C extends ReadonlyArray<A>>(
  name: string,
  choices: C,
) => Options<C[number]>;

Example

import * as Options from "@effect/cli/Options"

export const animal: Options.Options<"dog" | "cat"> = Options.choice("animal", ["dog", "cat"])

Constructs command-line Options that represent a choice between several inputs. The input will be mapped to it's associated value during parsing.

Signature

declare const choiceWithValue: <C extends ReadonlyArray<[string, any]>>(
  name: string,
  choices: C,
) => Options<C[number][1]>;

Example

import * as Options from "@effect/cli/Options"
import * as Data from "effect/Data"

export type Animal = Dog | Cat

export interface Dog {
  readonly _tag: "Dog"
}

export const Dog = Data.tagged<Dog>("Dog")

export interface Cat {
  readonly _tag: "Cat"
}

export const Cat = Data.tagged<Cat>("Cat")

export const animal: Options.Options<Animal> = Options.choiceWithValue("animal", [
  ["dog", Dog()],
  ["cat", Cat()],
])

date

Added in v1.0.0 Source

Signature

declare const date: (name: string) => Options<globalThis.Date>;

directory

Added in v1.0.0 Source

Creates a parameter expecting path to a directory.

Signature

declare const directory: (name: string, config?: Options.PathOptionsConfig) => Options<string>;

file

Added in v1.0.0 Source

Creates a parameter expecting path to a file.

Signature

declare const file: (name: string, config?: Options.PathOptionsConfig) => Options<string>;

fileContent

Added in v1.0.0 Source

Creates a parameter expecting path to a file and reads its contents.

Signature

declare const fileContent: (name: string) => Options<readonly [path: string, content: Uint8Array]>;

fileParse

Added in v1.0.0 Source

Creates a parameter expecting path to a file and parse its contents.

Signature

declare const fileParse: (
  name: string,
  format?: "json" | "yaml" | "ini" | "toml",
) => Options<unknown>;

fileSchema

Added in v1.0.0 Source

Creates a parameter expecting path to a file, parse its contents and validate it with a Schema.

Signature

declare const fileSchema: <I, A>(
  name: string,
  schema: Schema<A, I, FileSystem | Path | Terminal>,
  format?: "json" | "yaml" | "ini" | "toml",
) => Options<A>;

fileText

Added in v1.0.0 Source

Creates a parameter expecting path to a file and reads its contents.

Signature

declare const fileText: (name: string) => Options<readonly [path: string, content: string]>;

float

Added in v1.0.0 Source

Signature

declare const float: (name: string) => Options<number>;

integer

Added in v1.0.0 Source

Signature

declare const integer: (name: string) => Options<number>;

keyValueMap

Added in v1.0.0 Source

Signature

declare const keyValueMap: (option: string | Options<string>) => Options<HashMap<string, string>>;

none

Added in v1.0.0 Source

Signature

declare const none: Options<void>;

redacted

Added in v1.0.0 Source

Signature

declare const redacted: (name: string) => Options<Redacted>;

secret

Added in v1.0.0 Source

Signature

declare const secret: (name: string) => Options<Secret>;

text

Added in v1.0.0 Source

Signature

declare const text: (name: string) => Options<string>;

Models

Options interface

Added in v1.0.0 Source

Signature

interface Options<A> extends Variance<A>, Pipeable {}

Other

All

Added in v1.0.0 Source

Options

Added in v1.0.0 Source

Refinements

isOptions

Added in v1.0.0 Source

Signature

declare const isOptions: (u: unknown) => u is Options<unknown>;

Symbols

Signature

declare const OptionsTypeId: unique symbol;

OptionsTypeId type

Added in v1.0.0 Source

Signature

type OptionsTypeId = typeof OptionsTypeId;