configuration-parser.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.parse = void 0;
  4. var configuration_1 = require("./configuration");
  5. function parse(conf) {
  6. return merge(defaultConfiguration, conf);
  7. }
  8. exports.parse = parse;
  9. var isWindows = process && process.platform === "win32";
  10. var defaultConfiguration = {
  11. colors: {
  12. enabled: true,
  13. failed: "red",
  14. pending: "yellow",
  15. successful: "green",
  16. prettyStacktraceFilename: "cyan",
  17. prettyStacktraceLineNumber: "yellow",
  18. prettyStacktraceColumnNumber: "yellow",
  19. prettyStacktraceError: "red",
  20. },
  21. customProcessors: [],
  22. prefixes: {
  23. failed: isWindows ? "\u00D7 " : "✗ ",
  24. pending: "* ",
  25. successful: isWindows ? "\u221A " : "✓ ",
  26. },
  27. print: function (stuff) { return console.log(stuff); },
  28. spec: {
  29. displayDuration: false,
  30. displayErrorMessages: true,
  31. displayFailed: true,
  32. displayPending: false,
  33. displayStacktrace: configuration_1.StacktraceOption.NONE,
  34. displaySuccessful: true,
  35. },
  36. stacktrace: {
  37. filter: function (stacktrace) {
  38. var lines = stacktrace.split("\n");
  39. var filtered = [];
  40. for (var i = 1; i < lines.length; i++) {
  41. if (!/(jasmine[^\/]*\.js|Timer\.listOnTimeout)/.test(lines[i])) {
  42. filtered.push(lines[i]);
  43. }
  44. }
  45. return filtered.join("\n");
  46. }
  47. },
  48. suite: {
  49. displayNumber: false,
  50. },
  51. summary: {
  52. displayDuration: true,
  53. displayErrorMessages: true,
  54. displayFailed: true,
  55. displayPending: true,
  56. displayStacktrace: configuration_1.StacktraceOption.NONE,
  57. displaySuccessful: false,
  58. },
  59. };
  60. function merge(template, override) {
  61. var result = {};
  62. for (var key in template) {
  63. if (template[key] instanceof Object
  64. && !(template[key] instanceof Array)
  65. && !(template[key] instanceof Function)
  66. && override instanceof Object
  67. && override[key] instanceof Object
  68. && !(override[key] instanceof Array)
  69. && !(override[key] instanceof Function)) {
  70. result[key] = merge(template[key], override[key]);
  71. }
  72. else if (override instanceof Object
  73. && Object.keys(override).indexOf(key) !== -1) {
  74. result[key] = override[key];
  75. if (key === "displayStacktrace" && typeof override[key] === "boolean") {
  76. console.warn("WARN: jasmine-spec-reporter 'displayStacktrace' option supports value ('none', 'raw', 'pretty'), default to 'none'\n");
  77. result[key] = configuration_1.StacktraceOption.NONE;
  78. }
  79. }
  80. else {
  81. result[key] = template[key];
  82. }
  83. }
  84. if (override instanceof Object && override.customOptions) {
  85. result.customOptions = override.customOptions;
  86. }
  87. return result;
  88. }
  89. //# sourceMappingURL=configuration-parser.js.map