Skip to content
Effect 4.0 is here. One ecosystem. Zero dependencies.

Terminal

6 exports Since v1.0.0 Source

Model

Key

interface
Since v1.0.0

Signature

interface Key {
readonly ctrl: boolean;
readonly meta: boolean;
readonly name: string;
readonly shift: boolean;
}

A QuitException represents an exception that occurs when a user attempts to quit out of a Terminal prompt for input (usually by entering ctrl+c).

Signature

declare class QuitException extends YieldableError<this> & {
readonly _tag: "QuitException";
} & Readonly<{}> {
constructor(args: void);
}

UserInput

interface
Since v1.0.0

Signature

interface UserInput {
readonly input: Option<string>;
readonly key: Key;
}

Models

Terminal

interface
Since v1.0.0

A Terminal represents a command-line interface which can read input from a user and display messages to a user.

Signature

interface Terminal {
readonly columns: Effect<number>;
readonly display: (text: string) => Effect<void, PlatformError>;
readonly isTTY: Effect<boolean>;
readonly readInput: Effect<ReadonlyMailbox<UserInput>, never, Scope>;
readonly readLine: Effect<string, QuitException>;
readonly rows: Effect<number>;
}

Refinements

Signature

declare function isQuitException(u: unknown): u is QuitException

Tag

Since v1.0.0

Signature

declare const Terminal: Tag<Terminal, Terminal>