UNPKG

force-stdin-tty

Version:
42 lines (30 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.forceStdinTty = void 0; var _fs = _interopRequireDefault(require("fs")); var _tty = _interopRequireDefault(require("tty")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var forceStdinTty = function forceStdinTty() { if (process.stdin.isTTY) { return false; } // Use `O_NOCTTY` to not take control of spawned processes? var _fs$constants = _fs["default"].constants, O_RDONLY = _fs$constants.O_RDONLY, O_NOCTTY = _fs$constants.O_NOCTTY; var fd = _fs["default"].openSync('/dev/tty', O_RDONLY + O_NOCTTY); // @ts-ignore: `ReadStream` in @types/node incorrectly expects an object. // https://github.com/DefinitelyTyped/DefinitelyTyped/pull/37174 var stdin = new _tty["default"].ReadStream(fd); // Use `Object.defineProperty()` because `process.stdin` has no setter. // Taken from node.js source: // https://github.com/nodejs/node/blob/6271ef005eb311c819b7ab041e09f50e4155ec1e/lib/internal/bootstrap/node.js#L354-L358 Object.defineProperty(process, 'stdin', { configurable: true, enumerable: true, get: function get() { return stdin; } }); return true; }; exports.forceStdinTty = forceStdinTty;