convert_ansi.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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) { return obj && obj.__esModule ? obj : { default: obj }; }
  11. const toHumanReadableAnsi = text => {
  12. return text.replace((0, _ansiRegex2.default)(), (match, offset, string) => {
  13. switch (match) {
  14. case _ansiStyles2.default.red.close:
  15. case _ansiStyles2.default.green.close:
  16. case _ansiStyles2.default.cyan.close:
  17. case _ansiStyles2.default.gray.close:
  18. case _ansiStyles2.default.white.close:
  19. case _ansiStyles2.default.yellow.close:
  20. case _ansiStyles2.default.bgRed.close:
  21. case _ansiStyles2.default.bgGreen.close:
  22. case _ansiStyles2.default.bgYellow.close:
  23. case _ansiStyles2.default.inverse.close:
  24. case _ansiStyles2.default.dim.close:
  25. case _ansiStyles2.default.bold.close:
  26. case _ansiStyles2.default.reset.open:
  27. case _ansiStyles2.default.reset.close:
  28. return '</>';
  29. case _ansiStyles2.default.red.open:
  30. return '<red>';
  31. case _ansiStyles2.default.green.open:
  32. return '<green>';
  33. case _ansiStyles2.default.cyan.open:
  34. return '<cyan>';
  35. case _ansiStyles2.default.gray.open:
  36. return '<gray>';
  37. case _ansiStyles2.default.white.open:
  38. return '<white>';
  39. case _ansiStyles2.default.yellow.open:
  40. return '<yellow>';
  41. case _ansiStyles2.default.bgRed.open:
  42. return '<bgRed>';
  43. case _ansiStyles2.default.bgGreen.open:
  44. return '<bgGreen>';
  45. case _ansiStyles2.default.bgYellow.open:
  46. return '<bgYellow>';
  47. case _ansiStyles2.default.inverse.open:
  48. return '<inverse>';
  49. case _ansiStyles2.default.dim.open:
  50. return '<dim>';
  51. case _ansiStyles2.default.bold.open:
  52. return '<bold>';
  53. default:
  54. return '';
  55. }
  56. });
  57. }; /**
  58. * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
  59. *
  60. * This source code is licensed under the MIT license found in the
  61. * LICENSE file in the root directory of this source tree.
  62. *
  63. *
  64. */
  65. const test = exports.test = val => typeof val === 'string' && val.match((0, _ansiRegex2.default)());
  66. const serialize = exports.serialize = (val, config, indentation, depth, refs, printer) => printer(toHumanReadableAnsi(val), config, indentation, depth, refs);
  67. exports.default = { serialize, test };