UNPKG

4.57 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const html_1 = require("./reporters/html");
4const lcov_1 = require("./reporters/lcov");
5const text_1 = require("./reporters/text");
6class ReporterRegistry {
7 constructor() {
8 this.registry = new Map();
9 }
10 register(id, factory) {
11 this.registry.set(id, factory);
12 }
13 create(id, options) {
14 const factory = this.registry.get(id);
15 if (factory === undefined) {
16 throw new Error(`Unknown reporter ${id}, available: ${[...this.registry.keys()].join(", ")}`);
17 }
18 return factory(options);
19 }
20}
21exports.ReporterRegistry = ReporterRegistry;
22exports.DEFAULT_REGISTRY = new ReporterRegistry();
23exports.DEFAULT_REGISTRY.register("text", text_1.createTextReporter);
24exports.DEFAULT_REGISTRY.register("text-file", text_1.createTextFileReporter);
25exports.DEFAULT_REGISTRY.register("lcov", lcov_1.createLcovReporter);
26// TODO: Deprecate `lcovonly`
27exports.DEFAULT_REGISTRY.register("lcovonly", lcov_1.createLcovFileReporter);
28exports.DEFAULT_REGISTRY.register("lcov-file", lcov_1.createLcovFileReporter);
29exports.DEFAULT_REGISTRY.register("html", html_1.createHtmlReporter);
30
31//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvcmVwb3J0ZXItcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSwyQ0FBc0Q7QUFDdEQsMkNBQThFO0FBQzlFLDJDQUE4RTtBQUk5RSxNQUFhLGdCQUFnQjtJQUczQjtRQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sUUFBUSxDQUFDLEVBQVUsRUFBRSxPQUF3QjtRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxFQUFVLEVBQUUsT0FBWTtRQUNwQyxNQUFNLE9BQU8sR0FBZ0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkUsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMvRjtRQUNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFCLENBQUM7Q0FDRjtBQWxCRCw0Q0FrQkM7QUFFWSxRQUFBLGdCQUFnQixHQUFxQixJQUFJLGdCQUFnQixFQUFFLENBQUM7QUFFekUsd0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSx5QkFBa0IsQ0FBQyxDQUFDO0FBQ3RELHdCQUFnQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsNkJBQXNCLENBQUMsQ0FBQztBQUMvRCx3QkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLHlCQUFrQixDQUFDLENBQUM7QUFDdEQsNkJBQTZCO0FBQzdCLHdCQUFnQixDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsNkJBQXNCLENBQUMsQ0FBQztBQUM5RCx3QkFBZ0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLDZCQUFzQixDQUFDLENBQUM7QUFDL0Qsd0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSx5QkFBa0IsQ0FBQyxDQUFDIiwiZmlsZSI6InJlcG9ydGVyLXJlZ2lzdHJ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVwb3J0ZXIgfSBmcm9tIFwiLi9yZXBvcnRlclwiO1xuaW1wb3J0IHsgY3JlYXRlSHRtbFJlcG9ydGVyIH0gZnJvbSBcIi4vcmVwb3J0ZXJzL2h0bWxcIjtcbmltcG9ydCB7IGNyZWF0ZUxjb3ZGaWxlUmVwb3J0ZXIsIGNyZWF0ZUxjb3ZSZXBvcnRlciB9IGZyb20gXCIuL3JlcG9ydGVycy9sY292XCI7XG5pbXBvcnQgeyBjcmVhdGVUZXh0RmlsZVJlcG9ydGVyLCBjcmVhdGVUZXh0UmVwb3J0ZXIgfSBmcm9tIFwiLi9yZXBvcnRlcnMvdGV4dFwiO1xuXG5leHBvcnQgdHlwZSBSZXBvcnRlckZhY3RvcnkgPSAob3B0aW9uczogYW55KSA9PiBSZXBvcnRlcjtcblxuZXhwb3J0IGNsYXNzIFJlcG9ydGVyUmVnaXN0cnkge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5OiBNYXA8c3RyaW5nLCBSZXBvcnRlckZhY3Rvcnk+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMucmVnaXN0cnkgPSBuZXcgTWFwKCk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXIoaWQ6IHN0cmluZywgZmFjdG9yeTogUmVwb3J0ZXJGYWN0b3J5KTogdm9pZCB7XG4gICAgdGhpcy5yZWdpc3RyeS5zZXQoaWQsIGZhY3RvcnkpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZShpZDogc3RyaW5nLCBvcHRpb25zOiBhbnkpOiBSZXBvcnRlciB7XG4gICAgY29uc3QgZmFjdG9yeTogUmVwb3J0ZXJGYWN0b3J5IHwgdW5kZWZpbmVkID0gdGhpcy5yZWdpc3RyeS5nZXQoaWQpO1xuICAgIGlmIChmYWN0b3J5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biByZXBvcnRlciAke2lkfSwgYXZhaWxhYmxlOiAke1suLi50aGlzLnJlZ2lzdHJ5LmtleXMoKV0uam9pbihcIiwgXCIpfWApO1xuICAgIH1cbiAgICByZXR1cm4gZmFjdG9yeShvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9SRUdJU1RSWTogUmVwb3J0ZXJSZWdpc3RyeSA9IG5ldyBSZXBvcnRlclJlZ2lzdHJ5KCk7XG5cbkRFRkFVTFRfUkVHSVNUUlkucmVnaXN0ZXIoXCJ0ZXh0XCIsIGNyZWF0ZVRleHRSZXBvcnRlcik7XG5ERUZBVUxUX1JFR0lTVFJZLnJlZ2lzdGVyKFwidGV4dC1maWxlXCIsIGNyZWF0ZVRleHRGaWxlUmVwb3J0ZXIpO1xuREVGQVVMVF9SRUdJU1RSWS5yZWdpc3RlcihcImxjb3ZcIiwgY3JlYXRlTGNvdlJlcG9ydGVyKTtcbi8vIFRPRE86IERlcHJlY2F0ZSBgbGNvdm9ubHlgXG5ERUZBVUxUX1JFR0lTVFJZLnJlZ2lzdGVyKFwibGNvdm9ubHlcIiwgY3JlYXRlTGNvdkZpbGVSZXBvcnRlcik7XG5ERUZBVUxUX1JFR0lTVFJZLnJlZ2lzdGVyKFwibGNvdi1maWxlXCIsIGNyZWF0ZUxjb3ZGaWxlUmVwb3J0ZXIpO1xuREVGQVVMVF9SRUdJU1RSWS5yZWdpc3RlcihcImh0bWxcIiwgY3JlYXRlSHRtbFJlcG9ydGVyKTtcbiJdLCJzb3VyY2VSb290IjoiIn0=