convert_ansi.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', {
  3. value: true
  4. });
  5. exports.serialize = exports.test = undefined;
  6. var _ansiRegex = require('ansi-regex');
  7. var _ansiRegex2 = _interopRequireDefault(_ansiRegex);
  8. var _ansiStyles = require('ansi-styles');
  9. var _ansiStyles2 = _interopRequireDefault(_ansiStyles);
  10. function _interopRequireDefault(obj) {
  11. return obj && obj.__esModule ? obj : {default: obj};
  12. }
  13. const toHumanReadableAnsi = text =>
  14. text.replace((0, _ansiRegex2.default)(), (match, offset, string) => {
  15. switch (match) {
  16. case _ansiStyles2.default.red.close:
  17. case _ansiStyles2.default.green.close:
  18. case _ansiStyles2.default.cyan.close:
  19. case _ansiStyles2.default.gray.close:
  20. case _ansiStyles2.default.white.close:
  21. case _ansiStyles2.default.yellow.close:
  22. case _ansiStyles2.default.bgRed.close:
  23. case _ansiStyles2.default.bgGreen.close:
  24. case _ansiStyles2.default.bgYellow.close:
  25. case _ansiStyles2.default.inverse.close:
  26. case _ansiStyles2.default.dim.close:
  27. case _ansiStyles2.default.bold.close:
  28. case _ansiStyles2.default.reset.open:
  29. case _ansiStyles2.default.reset.close:
  30. return '</>';
  31. case _ansiStyles2.default.red.open:
  32. return '<red>';
  33. case _ansiStyles2.default.green.open:
  34. return '<green>';
  35. case _ansiStyles2.default.cyan.open:
  36. return '<cyan>';
  37. case _ansiStyles2.default.gray.open:
  38. return '<gray>';
  39. case _ansiStyles2.default.white.open:
  40. return '<white>';
  41. case _ansiStyles2.default.yellow.open:
  42. return '<yellow>';
  43. case _ansiStyles2.default.bgRed.open:
  44. return '<bgRed>';
  45. case _ansiStyles2.default.bgGreen.open:
  46. return '<bgGreen>';
  47. case _ansiStyles2.default.bgYellow.open:
  48. return '<bgYellow>';
  49. case _ansiStyles2.default.inverse.open:
  50. return '<inverse>';
  51. case _ansiStyles2.default.dim.open:
  52. return '<dim>';
  53. case _ansiStyles2.default.bold.open:
  54. return '<bold>';
  55. default:
  56. return '';
  57. }
  58. });
  59. /**
  60. * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
  61. *
  62. * This source code is licensed under the MIT license found in the
  63. * LICENSE file in the root directory of this source tree.
  64. *
  65. *
  66. */
  67. const test = (exports.test = val =>
  68. typeof val === 'string' && val.match((0, _ansiRegex2.default)()));
  69. const serialize = (exports.serialize = (
  70. val,
  71. config,
  72. indentation,
  73. depth,
  74. refs,
  75. printer
  76. ) => printer(toHumanReadableAnsi(val), config, indentation, depth, refs));
  77. exports.default = {serialize: serialize, test: test};