UNPKG

intern

Version:

Intern. A next-generation code testing stack for JavaScript.

134 lines 4.7 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports", "@theintern/common"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.eventHandler = exports.createEventHandler = void 0; var common_1 = require("@theintern/common"); var Reporter = (function () { function Reporter(executor, options) { if (options === void 0) { options = {}; } if (options.output) { this.output = options.output; } if (options.console) { this.console = options.console; } this.executor = executor; this._registerEventHandlers(); } Object.defineProperty(Reporter.prototype, "console", { get: function () { if (!this._console) { this._console = getConsole(); } return this._console; }, set: function (value) { this._console = value; }, enumerable: false, configurable: true }); Object.defineProperty(Reporter.prototype, "output", { get: function () { if (!this._output) { if (common_1.global.process != null) { return common_1.global.process.stdout; } else { var _console_1 = this.console; this._output = { write: function (chunk, _encoding, callback) { _console_1.log(chunk); callback(); }, end: function (chunk, _encoding, callback) { _console_1.log(chunk); callback(); } }; } } return this._output; }, set: function (value) { this._output = value; }, enumerable: false, configurable: true }); Reporter.prototype.formatError = function (error, options) { return this.executor.formatError(error, options); }; Reporter.prototype._registerEventHandlers = function () { var _this = this; if (!this._eventHandlers) { return; } var _loop_1 = function (name_1) { this_1.executor.on(name_1, function () { var _a; var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } var handler = _this._eventHandlers[name_1]; return (_a = _this)[handler].apply(_a, args); }); }; var this_1 = this; for (var name_1 in this._eventHandlers) { _loop_1(name_1); } }; return Reporter; }()); exports.default = Reporter; function createEventHandler() { return function () { function decorate(target, propertyKey, _descriptor) { if (!target.hasOwnProperty('_eventHandlers')) { if (target._eventHandlers != null) { target._eventHandlers = Object.create(target._eventHandlers); } else { target._eventHandlers = {}; } } target._eventHandlers[propertyKey] = propertyKey; } return decorate; }; } exports.createEventHandler = createEventHandler; exports.eventHandler = createEventHandler(); function getConsole() { if (typeof console !== 'undefined') { return console; } return { assert: noop, count: noop, dir: noop, error: noop, exception: noop, info: noop, log: noop, table: noop, time: noop, timeEnd: noop, trace: noop, warn: noop }; } function noop() { } }); //# sourceMappingURL=Reporter.js.map