isUnicodeSupported.mjs 1.0 KB

1234567891011121314151617181920212223242526
  1. import process from 'node:process';
  2. /**
  3. * Originally copied from https://github.com/sindresorhus/is-unicode-supported/blob/506f27260df3636555714bf10ed40ab9e6a6c96e/index.js
  4. * @version 2.0.0
  5. * @summary Detect whether the terminal supports Unicode
  6. * @see https://github.com/sindresorhus/is-unicode-supported/pull/1#issuecomment-827321546
  7. * @see microsoft/terminal#13680
  8. */
  9. export default function isUnicodeSupported() {
  10. if (process.platform !== 'win32') {
  11. return process.env.TERM !== 'linux'; // Linux console (kernel)
  12. }
  13. return (
  14. Boolean(process.env.WT_SESSION) || // Windows Terminal
  15. Boolean(process.env.TERMINUS_SUBLIME) || // Terminus (<0.2.27)
  16. process.env.ConEmuTask === '{cmd::Cmder}' || // ConEmu and cmder
  17. process.env.TERM_PROGRAM === 'Terminus-Sublime' ||
  18. process.env.TERM_PROGRAM === 'vscode' ||
  19. process.env.TERM === 'xterm-256color' ||
  20. process.env.TERM === 'alacritty' ||
  21. process.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm' ||
  22. process.env.TERM?.startsWith('rxvt-unicode') // fork of rxvt
  23. );
  24. }