There's `blessed` [0], a plain JS lib similar to `ncurses`. There's also `react-blessed` [1], which is a React renderer that targets `blessed` as the display layer, and `ink` [2], which is also a text-based React renderer but using its own display layer.
[0] https://github.com/chjj/blessed
[1] https://github.com/Yomguithereal/react-blessed
[2] https://github.com/vadimdemedes/ink