'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.default = void 0; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ class ReporterDispatcher { constructor() { _defineProperty(this, '_reporters', void 0); this._reporters = []; } register(reporter) { this._reporters.push(reporter); } unregister(ReporterClass) { this._reporters = this._reporters.filter( reporter => !(reporter instanceof ReporterClass) ); } async onTestResult(test, testResult, results) { for (const reporter of this._reporters) { reporter.onTestResult && (await reporter.onTestResult(test, testResult, results)); } // Release memory if unused later. testResult.sourceMaps = undefined; testResult.coverage = undefined; testResult.console = undefined; } async onTestStart(test) { for (const reporter of this._reporters) { reporter.onTestStart && (await reporter.onTestStart(test)); } } async onRunStart(results, options) { for (const reporter of this._reporters) { reporter.onRunStart && (await reporter.onRunStart(results, options)); } } async onRunComplete(contexts, results) { for (const reporter of this._reporters) { reporter.onRunComplete && (await reporter.onRunComplete(contexts, results)); } } // Return a list of last errors for every reporter getErrors() { return this._reporters.reduce((list, reporter) => { const error = reporter.getLastError && reporter.getLastError(); return error ? list.concat(error) : list; }, []); } hasErrors() { return this.getErrors().length !== 0; } } exports.default = ReporterDispatcher;