JSPM

force-stdin-tty

0.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 78
  • Score
    100M100P100Q81075F
  • License MIT

Force stdin to be assigned to /dev/tty

Package Exports

  • force-stdin-tty

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (force-stdin-tty) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

force-stdin-tty

Force stdin to be assigned to /dev/tty

Install

Using npm:

npm install --save-dev force-stdin-tty

or using yarn:

yarn add force-stdin-tty --dev

Usage

This package can be used to force git hooks to allow prompts for user input. If the user is using a UI and not a terminal, you can tell them to use a terminal. See this stackoverflow question.

import { forceStdinTty } from 'force-stdin-tty';

let overwroteStdin = false;
try {
  overwroteStdin = forceStdinTty();
} catch {
  console.error('Please push your code in a terminal.');
  process.exit(1);
}

if (overwroteStdin) {
  process.stdin.destroy();
}

husky support

This package works with husky.

husky initially did add support for stdin, but later removed it due to a Windows bug:

husky changelog

husky getScript.ts

husky current code

The husky author suggests using the undocumented ~/.huskyrc to enable prompts for git hooks. But it isn't ideal because each developer would have to enable it.

See:

husky#442

husky#385

TypeScript support

This package supports TypeScript.