UNPKG

@revoloo/cypress6

Version:

Cypress.io end to end testing tool

63 lines (46 loc) 1.26 kB
const tty = require('tty') const terminalSize = require('./terminal-size') // polyfills node's getWindowSize // by returning an array of columns/rows function getWindowSize () { const { columns, rows } = terminalSize.get() return [columns, rows] } function patchStream (patched, name) { const stream = process[name] stream.isTTY = true patched[stream.fd] = true } const override = () => { const isatty = tty.isatty const patched = { 0: false, 1: false, 2: false, } // polyfill in node's getWindowSize // if it doesn't exist on stdout and stdin // (if we are a piped process) or we are // in windows on electron ;['stdout', 'stderr'].forEach((fn) => { if (!process[fn].getWindowSize) { process[fn].getWindowSize = getWindowSize } }) tty.isatty = function (fd) { if (patched[fd]) { // force stderr to return true return true } // else pass through return isatty.call(tty, fd) } if (process.env.FORCE_STDIN_TTY === '1') patchStream(patched, 'stdin') if (process.env.FORCE_STDOUT_TTY === '1') patchStream(patched, 'stdout') if (process.env.FORCE_STDERR_TTY === '1') patchStream(patched, 'stderr') return } module.exports = { override, getWindowSize, }