Blame view

lib/jsdom/virtual-console.js 758 Bytes
858f2bdf5   Boyan Georgiev   fixes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  "use strict";
  const { EventEmitter } = require("events");
  
  module.exports = class VirtualConsole extends EventEmitter {
    constructor() {
      super();
  
      this.on("error", () => {
        // If "error" event has no listeners,
        // EventEmitter throws an exception
      });
    }
  
    sendTo(anyConsole, options) {
      if (options === undefined) {
        options = {};
      }
  
      for (const method of Object.keys(anyConsole)) {
        if (typeof anyConsole[method] === "function") {
          function onMethodCall() {
            anyConsole[method](...arguments);
          }
          this.on(method, onMethodCall);
        }
      }
  
      if (!options.omitJSDOMErrors) {
        this.on("jsdomError", e => anyConsole.error(e.stack, e.detail));
      }
  
      return this;
    }
  };