Skip to content

@toolcog/util/tui

Toolcog utilities

Classes

Context

Constructors

new Context()

new Context(view, update): Context

Parameters

view: View

update

Returns

Context

Defined in

context.ts:28

Accessors

view

get view(): View

Returns

View

Defined in

context.ts:41

Methods

batch()

batch<F>(func, …args): ReturnType<F>

Type Parameters

F extends (…args) => unknown

Parameters

func: F

• …args: Parameters<F>

Returns

ReturnType<F>

Defined in

context.ts:57

enqueue()

enqueue(effect): void

Parameters

effect

Returns

void

Defined in

context.ts:74

reset()

reset(): void

Returns

void

Defined in

context.ts:45

runCleanups()

runCleanups(): void

Returns

void

Defined in

context.ts:98

runEffects()

runEffects(): void

Returns

void

Defined in

context.ts:89

update()

update(): void

Returns

void

Defined in

context.ts:49

useSlot()

useSlot<T, R>(hook): R

Type Parameters

T

R

Parameters

hook

Returns

R

Defined in

context.ts:104

current()

static current(): Context

Returns

Context

Defined in

context.ts:138

get()

static get(): null | Context

Returns

null | Context

Defined in

context.ts:146

global()

static global(): null | Context

Returns

null | Context

Defined in

context.ts:126

run()

static run<F>(context, func, …args): ReturnType<F>

Type Parameters

F extends (…args) => unknown

Parameters

context: Context

func: F

• …args: Parameters<F>

Returns

ReturnType<F>

Defined in

context.ts:150

setGlobal()

static setGlobal(context): void

Parameters

context: null | Context

Returns

void

Defined in

context.ts:130


View

Constructors

new View()

new View(options?): View

Parameters

options?: ViewOptions

Returns

View

Defined in

view.ts:41

Accessors

columns

get columns(): number

Returns

number

Defined in

view.ts:81

hidden

get hidden(): boolean

Returns

boolean

Defined in

view.ts:105

input

get input(): ReadableStream

Returns

ReadableStream

Defined in

view.ts:69

line

get line(): string

set line(line): void

Parameters

line: string

Returns

string

Defined in

view.ts:89

output

get output(): MuteStream

Returns

MuteStream

Defined in

view.ts:73

readline

get readline(): Interface

Returns

Interface

Defined in

view.ts:85

rows

get rows(): undefined | number

Returns

undefined | number

Defined in

view.ts:77

style

get style(): Style

Returns

Style

Defined in

view.ts:101

styled

get styled(): boolean

Returns

boolean

Defined in

view.ts:97

Methods

clean()

clean(): void

Returns

void

Defined in

view.ts:229

clearContent()

clearContent(): void

Returns

void

Defined in

view.ts:244

clearLine()

clearLine(dir): void

Parameters

dir: -1 | 0 | 1

Returns

void

Defined in

view.ts:260

close()

close(): void

Returns

void

Defined in

view.ts:279

hide()

hide(): void

Returns

void

Defined in

view.ts:109

render()

render(content, bottomContent?, consoleCalls?): void

Parameters

content: string

bottomContent?: string

consoleCalls?: () => void[]

Returns

void

Defined in

view.ts:140

show()

show(): void

Returns

void

Defined in

view.ts:126

updateCursor()

updateCursor(): void

Returns

void

Defined in

view.ts:215

write()
write(data, key)

write(data, key?): void

Parameters

data: string | Buffer

key?: Key

Returns

void

Defined in

view.ts:270

write(data, key)

write(data, key): void

Parameters

data: undefined | null | string | Buffer

key: Key

Returns

void

Defined in

view.ts:271

Interfaces

ComponentOptions

Extends

Properties

input?

optional input: ReadableStream

Inherited from

ViewOptions.input

Defined in

view.ts:19

interceptConsole?

optional interceptConsole: boolean

Defined in

component.ts:15

output?

optional output: WritableStream

Inherited from

ViewOptions.output

Defined in

view.ts:20

readline?

optional readline: Interface

Inherited from

ViewOptions.readline

Defined in

view.ts:21

signal?

optional signal: AbortSignal

Defined in

component.ts:13

styled?

optional styled: boolean

Inherited from

ViewOptions.styled

Defined in

view.ts:22

transient?

optional transient: boolean

Defined in

component.ts:14

view?

optional view: View

Defined in

component.ts:12


ConfirmProps

Properties

default?

optional default: boolean

Defined in

confirm.ts:13

format()?

optional format: (value, final) => string

Parameters

value: boolean

final: boolean

Returns

string

Defined in

confirm.ts:14

message

message: string

Defined in

confirm.ts:12

theme?

optional theme: RootTheme

Defined in

confirm.ts:15


InputProps

Properties

default?

optional default: string

Defined in

input.ts:13

format()?

optional format: (value, final) => string

Parameters

value: string

final: boolean

Returns

string

Defined in

input.ts:18

message

message: string

Defined in

input.ts:12

required?

optional required: boolean

Defined in

input.ts:14

theme?

optional theme: RootTheme

Defined in

input.ts:19

validate()?

optional validate: (value) => string | boolean | Promise<string | boolean>

Parameters

value: string

Returns

string | boolean | Promise<string | boolean>

Defined in

input.ts:15


Key

Properties

ctrl

ctrl: boolean

Defined in

key.ts:3

name

name: string

Defined in

key.ts:2


MultiselectOption<T>

Type Parameters

T

Properties

disabled?

optional disabled: string | boolean

Defined in

multiselect.ts:45

name?

optional name: string

Defined in

multiselect.ts:43

selected?

optional selected: boolean

Defined in

multiselect.ts:46

type?

optional type: undefined

Defined in

multiselect.ts:42

value

value: T

Defined in

multiselect.ts:44


MultiselectProps<T>

Type Parameters

T

Properties

format()?

optional format: (selection, items) => string

Parameters

selection: readonly MultiselectOption<T>[]

items: readonly MultiselectItem<T>[]

Returns

string

Defined in

multiselect.ts:68

instructions?

optional instructions: string | boolean

Defined in

multiselect.ts:60

loop?

optional loop: boolean

Defined in

multiselect.ts:62

message

message: string

Defined in

multiselect.ts:57

options

options: readonly MultiselectItem<T>[]

Defined in

multiselect.ts:58

pageSize?

optional pageSize: number

Defined in

multiselect.ts:61

required?

optional required: boolean

Defined in

multiselect.ts:59

theme?

optional theme: MultiselectTheme & RootTheme

Defined in

multiselect.ts:74

validate()?

optional validate: (validate) => string | boolean | Promise<string | boolean>

Parameters

validate: readonly MultiselectOption<T>[]

Returns

string | boolean | Promise<string | boolean>

Defined in

multiselect.ts:63


MultiselectSeparator

Properties

separator?

optional separator: string

Defined in

multiselect.ts:51

type

type: "separator"

Defined in

multiselect.ts:50


MultiselectTheme

Properties

helpMode

readonly helpMode: "always" | "never" | "auto"

Defined in

multiselect.ts:28

icon

readonly icon: object

cursor

readonly cursor: string

disabled

readonly disabled: string

selected

readonly selected: string

unselected

readonly unselected: string

Defined in

multiselect.ts:22


PaginateOptions<T>

Type Parameters

T

Properties

active

active: number

Defined in

paginate.ts:5

items

items: readonly T[]

Defined in

paginate.ts:4

maxWidth

maxWidth: number

Defined in

paginate.ts:8

pageSize

pageSize: number

Defined in

paginate.ts:7

position

position: number

Defined in

paginate.ts:6

renderItem()

renderItem: (item, active, index) => string

Parameters

item: T

active: boolean

index: number

Returns

string

Defined in

paginate.ts:9


PasswordProps

Properties

mask?

optional mask: string | boolean

Defined in

password.ts:14

message

message: string

Defined in

password.ts:13

theme?

optional theme: RootTheme

Defined in

password.ts:18

validate()?

optional validate: (value) => string | boolean | Promise<string | boolean>

Parameters

value: string

Returns

string | boolean | Promise<string | boolean>

Defined in

password.ts:15


RootTheme

Properties

prefix

readonly prefix: string

Defined in

theme.ts:10

spinner

readonly spinner: object

frames

readonly frames: readonly string[]

interval

readonly interval: number

Defined in

theme.ts:11

style

readonly style: object

answer()

readonly answer: (text) => string

Parameters

text: string

Returns

string

default()

readonly default: (text) => string

Parameters

text: string

Returns

string

disabled()

readonly disabled: (text) => string

Parameters

text: string

Returns

string

error()

readonly error: (text) => string

Parameters

text: string

Returns

string

help()

readonly help: (text) => string

Parameters

text: string

Returns

string

highlight()

readonly highlight: (text) => string

Parameters

text: string

Returns

string

key()

readonly key: (text) => string

Parameters

text: string

Returns

string

message()

readonly message: (text) => string

Parameters

text: string

Returns

string

prefix()

readonly prefix: (text) => string

Parameters

text: string

Returns

string

spinner()

readonly spinner: (text) => string

Parameters

text: string

Returns

string

Defined in

theme.ts:15


SelectOption<T>

Type Parameters

T

Properties

description?

optional description: string

Defined in

select.ts:43

disabled?

optional disabled: string | boolean

Defined in

select.ts:44

name?

optional name: string

Defined in

select.ts:41

type?

optional type: undefined

Defined in

select.ts:40

value

value: T

Defined in

select.ts:42


SelectProps<T>

Type Parameters

T

Properties

default?

optional default: unknown

Defined in

select.ts:57

loop?

optional loop: boolean

Defined in

select.ts:59

message

message: string

Defined in

select.ts:55

options

options: readonly SelectItem<T>[]

Defined in

select.ts:56

pageSize?

optional pageSize: number

Defined in

select.ts:58

theme?

optional theme: SelectTheme & RootTheme

Defined in

select.ts:60


SelectSeparator

Properties

separator?

optional separator: string

Defined in

select.ts:49

type

type: "separator"

Defined in

select.ts:48


SelectTheme

Properties

helpMode

readonly helpMode: "always" | "never" | "auto"

Defined in

select.ts:28

icon

readonly icon: object

cursor

readonly cursor: string

disabled

readonly disabled: string

Defined in

select.ts:24


UsePaginationOptions<T>

Type Parameters

T

Properties

active

active: number

Defined in

use-pagination.ts:8

items

items: readonly T[]

Defined in

use-pagination.ts:7

loop?

optional loop: boolean

Defined in

use-pagination.ts:10

pageSize

pageSize: number

Defined in

use-pagination.ts:9

renderItem()

renderItem: (item, active, index) => string

Parameters

item: T

active: boolean

index: number

Returns

string

Defined in

use-pagination.ts:11


UsePrefixOptions

Properties

loading?

optional loading: boolean

Defined in

use-prefix.ts:8

theme?

optional theme: RootTheme

Defined in

use-prefix.ts:9


ViewOptions

Extended by

Properties

input?

optional input: ReadableStream

Defined in

view.ts:19

output?

optional output: WritableStream

Defined in

view.ts:20

readline?

optional readline: Interface

Defined in

view.ts:21

styled?

optional styled: boolean

Defined in

view.ts:22

Type Aliases

Component()<Props, R>

Component<Props, R>: (props, options?) => Promise<R>

Type Parameters

Props

R

Parameters

props: Props

options?: ComponentOptions

Returns

Promise<R>

Defined in

component.ts:18


ComponentFunction()<Props, R>

ComponentFunction<Props, R>: (props, finish) => [string, string | undefined] | string

Type Parameters

Props

R

Parameters

props: Props

finish

Returns

[string, string | undefined] | string

Defined in

component.ts:6


MultiselectItem<T>

MultiselectItem<T>: MultiselectOption<T> | MultiselectSeparator

Type Parameters

T

Defined in

multiselect.ts:54


PartialTheme<T>

PartialTheme<T>: T extends { [P in PropertyKey]: unknown } ? { [P in keyof T]?: PartialTheme<T[P]> } : T

Type Parameters

T

Defined in

theme.ts:4


SelectItem<T>

SelectItem<T>: SelectOption<T> | SelectSeparator

Type Parameters

T

Defined in

select.ts:52


Slot<T>

Slot<T>: object | object

Type Parameters

T

Defined in

context.ts:4

Variables

multiselectTheme

const multiselectTheme: MultiselectTheme & RootTheme

Defined in

multiselect.ts:31


rootTheme

const rootTheme: RootTheme

Defined in

theme.ts:31


selectTheme

const selectTheme: SelectTheme & RootTheme

Defined in

select.ts:31


style

const style: Style

Defined in

theme.ts:29

Functions

batch()

batch<F>(func, …args): ReturnType<F>

Type Parameters

F extends (…args) => unknown

Parameters

func: F

• …args: Parameters<F>

Returns

ReturnType<F>

Defined in

context.ts:163


batched()

batched<F>(func): (…args) => ReturnType<F>

Type Parameters

F extends (…args) => unknown

Parameters

func: F

Returns

Function

Parameters

• …args: Parameters<F>

Returns

ReturnType<F>

Defined in

context.ts:170


confirm()

confirm(props, options?): Promise<boolean>

Parameters

props: ConfirmProps

options?: ComponentOptions

Returns

Promise<boolean>

Defined in

confirm.ts:18


createComponent()

createComponent<Props, R>(render): Component<Props, R>

Type Parameters

Props

R

Parameters

render: ComponentFunction<Props, R>

Returns

Component<Props, R>

Defined in

component.ts:23


enqueue()

enqueue(effect): void

Parameters

effect

Returns

void

Defined in

context.ts:178


input()

input(props, options?): Promise<string>

Parameters

props: InputProps

options?: ComponentOptions

Returns

Promise<string>

Defined in

input.ts:22


isBackspaceKey()

isBackspaceKey(key): boolean

Parameters

key: Key

Returns

boolean

Defined in

key.ts:20


isDownKey()

isDownKey(key): boolean

Parameters

key: Key

Returns

boolean

Defined in

key.ts:11


isEnterKey()

isEnterKey(key): boolean

Parameters

key: Key

Returns

boolean

Defined in

key.ts:24


isNumberKey()

isNumberKey(key): boolean

Parameters

key: Key

Returns

boolean

Defined in

key.ts:22


isSpaceKey()

isSpaceKey(key): boolean

Parameters

key: Key

Returns

boolean

Defined in

key.ts:18


isTabKey()

isTabKey(key): boolean

Parameters

key: Key

Returns

boolean

Defined in

key.ts:16


isUpKey()

isUpKey(key): boolean

Parameters

key: Key

Returns

boolean

Defined in

key.ts:6


makeTheme()

makeTheme(theme)

makeTheme<Theme>(theme): Theme & RootTheme

Type Parameters

Theme

Parameters

theme: Theme

Returns

Theme & RootTheme

Defined in

theme.ts:52

makeTheme(theme, baseTheme)

makeTheme<Theme, BaseTheme>(theme, baseTheme): Theme & BaseTheme

Type Parameters

Theme extends object

BaseTheme extends object

Parameters

theme: PartialTheme<Theme>

baseTheme: BaseTheme

Returns

Theme & BaseTheme

Defined in

theme.ts:53


multiselect()

multiselect<T>(props, options?): Promise<T[]>

Type Parameters

T

Parameters

props: MultiselectProps<T>

options?: ComponentOptions

Returns

Promise<T[]>

Defined in

multiselect.ts:93


paginate()

paginate<T>(options): string[]

Type Parameters

T

Parameters

options: PaginateOptions<T>

Returns

string[]

Defined in

paginate.ts:12


password()

password(props, options?): Promise<string>

Parameters

props: PasswordProps

options?: ComponentOptions

Returns

Promise<string>

Defined in

password.ts:21


select()

select<T>(props, options?): Promise<T>

Type Parameters

T

Parameters

props: SelectProps<T>

options?: ComponentOptions

Returns

Promise<T>

Defined in

select.ts:67


update()

update(): void

Returns

void

Defined in

context.ts:159


useEffect()

useEffect(effect, dependencies): void

Parameters

effect

dependencies: readonly unknown[]

Returns

void

Defined in

use-effect.ts:5


useKeypress()

useKeypress(callback): void

Parameters

callback

Returns

void

Defined in

use-keypress.ts:7


useMemo()

useMemo<T>(compute, dependencies): T

Type Parameters

T

Parameters

compute

dependencies: readonly unknown[]

Returns

T

Defined in

use-memo.ts:4


usePagination()

usePagination<T>(options): string

Type Parameters

T

Parameters

options: UsePaginationOptions<T>

Returns

string

Defined in

use-pagination.ts:14


usePrefix()

usePrefix(options): string

Parameters

options: UsePrefixOptions

Returns

string

Defined in

use-prefix.ts:12


useRef()

useRef(value)

useRef<T>(value): object

Type Parameters

T

Parameters

value: T

Returns

object

current

current: T

Defined in

use-ref.ts:5

useRef(value)

useRef<T>(value?): object

Type Parameters

T

Parameters

value?: T

Returns

object

current

current: undefined | T

Defined in

use-ref.ts:6


useSlot()

useSlot<T, R>(hook): R

Type Parameters

T

R

Parameters

hook

Returns

R

Defined in

context.ts:182


useState()

useState(initialValue)

useState<T>(initialValue): [T, (newValue) => void]

Type Parameters

T

Parameters

initialValue: T extends (…args) => unknown ? never : T | () => T

Returns

[T, (newValue) => void]

Defined in

use-state.ts:5

useState(initialValue)

useState<T>(initialValue?): [undefined | T, (newValue) => void]

Type Parameters

T

Parameters

initialValue?: T extends (…args) => unknown ? never : T | () => T

Returns

[undefined | T, (newValue) => void]

Defined in

use-state.ts:10


useTheme()

useTheme(theme)

useTheme(theme): RootTheme

Parameters

theme: undefined | RootTheme

Returns

RootTheme

Defined in

use-theme.ts:6

useTheme(theme, baseTheme)

useTheme<Theme>(theme, baseTheme): Theme

Type Parameters

Theme extends object

Parameters

theme: undefined | PartialTheme<Theme>

baseTheme: Theme

Returns

Theme

Defined in

use-theme.ts:7


useView()

useView(): View

Returns

View

Defined in

context.ts:186