get-pty-output
TypeScript icon, indicating that this package has built-in type declarations

0.8.2 • Public • Published

get-pty-output

https://github.com/CyriacBr/get-pty-output/actions

An alternative to child_process.exec with PTY support

Node doesn't natively support creating pseudo-terminals. When running an external command with child_process.spawn or exec, ansi colors are lost because most of CLIs disable colors when they aren't run inside a TTY environment. You can make your child inherit the parent stdio, thus allowing colors, but this results in the inability to properly capture outputs.

Some packages like node-pty aim to solve this problem, but they rely on node-gyp, and doesn't support newer Node versions. This package leverage Rust's portable-pty(unix) and conpty(windows) crates with n-api-rs for bindings, allowing way better cross-platform support and easier installation.

Install

yarn add get-pty-output

Usage

import { exec, execSync } from 'get-pty-output'

const res = await exec('node -e console.log(100)')
res.output // in color! ✨

Options

exec(cmd, {
  cwd: 'path-to-desired-wd',
  /**
   * Close the pty after a timeout.
   */
  timeout: 10,
  /**
   * Close the pty after a timeout since the command became idle.
   * A command is considered idle when it has stopped writing on stdout.
   * Only works on UNIX platforms for now.
   */
  idleTimeout: 5,
  /**
   * Remove cursor transformations from the output.
   * Defaults to true. You may disable this if you notice your output is weirdly truncated.
   * If the command you're executing transforms the terminal cursor (spinners, progress bars, etc),
   * you likely want to keep this to true
   */
  purify: true
})

Output is truncated when a timeout happens. res.truncated; // true

Publishing

  • Remove all optional deps
  • Bump version if needed
  • Run prepare-release
  • Push or manually start CI workflow
  • Download CI artifacts and put them under ./npm in their respective directory
  • Run npm publish

Credits & Thanks

Readme

Keywords

Package Sidebar

Install

npm i get-pty-output

Weekly Downloads

1,903

Version

0.8.2

License

MIT

Unpacked Size

15.3 kB

Total Files

7

Last publish

Collaborators

  • cyriac_br