pear-terminal
v1.1.4
Published
Pear Terminal User Interface library
Readme
pear-terminal
Pear Terminal User Interface library
API
usage
Strings for CLI banners & footers.
Returns { header, version, banner, footer }.
permit(ipc, info, cmd)
Ask user to trust or unlock an app/template.
Returns Promise<void>.
ipc:{ permit({ key, password? }), close() }info:{ key: Buffer|string, encrypted: boolean }cmd:'run'|'init'|'stage'|'seed'|'dump'|'info'
confirm(dialog, ask, delim, validation, msg)
One-shot confirmation prompt.
Returns Promise<void>.
dialog:stringpreface textask:stringprompt labeldelim:stringdelimiter (e.g.':'or '?'`)validation:(value:string) => boolean|Promise<boolean>msg:stringerror message on invalid input
const interact = new Interact(header, params[, opts])
Interactive prompt runner.
header:stringshown once before promptsparams:Array<{ name, prompt, default?, delim?, validation?, msg?, shave? }>opts.masked:booleanmask user input (passwords)opts.defaults:{ [name:string]: any }fallback values
interact.run([opts])
Process prompts and return answers.
Returns Promise<{ fields, shave }>.
opts.autosubmit:booleanfill with defaults without prompting
stdio
Thin stdio wrapper with Bare/TTY streams.
Returns object with:
in,out,err: lazy streamssize() -> { width, height }raw(bool) -> voidset raw modedrained(stream) -> Promise<void>inAttached:boolean
ansi
ANSI styling helpers (no-op on Windows).
Returns object with:
- text:
bold, dim, italic, underline, inverse, red, green, yellow, gray - cursor:
upHome(n),hideCursor(),showCursor() - links:
link(url, text?) - glyphs:
sep, tick, cross, warning, pear, dot, key, down, up
indicator(value[, type])
Status glyph helper.
Returns string.
value:true|false|null|number(>0success,<0fail,0|nullneutral)type:'success'|'diff'(diff:+ | - | ~)
status(message[, success])
Live status line (TTY-aware).
Returns void.
message:stringsuccess:boolean|null|number(seeindicator)
print(message[, success])
Plain line print with optional status glyph.
Returns void.
message:stringsuccess:boolean|null|number
byteDiff({ type, sizes, message })
Pretty-print byte deltas.
Returns void.
type: any value passed toindicator(..., 'diff')sizes:number[]byte changes (signed)message:string
outputter(cmd[, taggers])
Create a stream consumer that routes tagged events to print/status (TTY) or JSON.
Returns (opts, stream, info?, ipc?) -> Promise<void>.
cmd:stringcommand nametaggers:{ [tag]: (data, info, ipc) => string|{ output, message, success }|false|Promise<...> }output:'print'|'status'message:string|string[]success:boolean
opts:{ json?: boolean, log?: (msg, { output, success? }) => void, ctrlTTY?: boolean }stream:Readable|Arrayof{ tag, data }eventsinfo: any extra contextipc: optional IPC handle
Behavior:
opts.json === true→ emits JSON lines:{ cmd, tag, data }taggerresultfalse:- for
tag==='final'prints default success/failure - otherwise suppressed
- for
- TTY: hides/shows cursor, handles Ctrl+C cleanup
explain(bail)
Processes failure mode flow for various Pear scenarios that prints sensible output showing stacks for operational errors and beautified output user errors.
Returns void.
bail: a paparam bail object
isTTY
boolean indicating stdin TTY status.
byteSize(bytes)
Format bytes into human-friendly string.
Returns string.
License
Apache-2.0
