UNPKG

4.55 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIl9zcmMvcmVwb3J0ZXItcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSwyQ0FBc0Q7QUFDdEQsMkNBQThFO0FBQzlFLDJDQUE4RTtBQUk5RTtJQUdFO1FBQ0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxRQUFRLENBQUMsRUFBVSxFQUFFLE9BQXdCO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEVBQVUsRUFBRSxPQUFZO1FBQ3BDLE1BQU0sT0FBTyxHQUFnQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRSxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUU7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQy9GO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBbEJELDRDQWtCQztBQUVZLFFBQUEsZ0JBQWdCLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztBQUV6RSx3QkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLHlCQUFrQixDQUFDLENBQUM7QUFDdEQsd0JBQWdCLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSw2QkFBc0IsQ0FBQyxDQUFDO0FBQy9ELHdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUseUJBQWtCLENBQUMsQ0FBQztBQUN0RCw2QkFBNkI7QUFDN0Isd0JBQWdCLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSw2QkFBc0IsQ0FBQyxDQUFDO0FBQzlELHdCQUFnQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsNkJBQXNCLENBQUMsQ0FBQztBQUMvRCx3QkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLHlCQUFrQixDQUFDLENBQUMiLCJmaWxlIjoicmVwb3J0ZXItcmVnaXN0cnkuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBvcnRlciB9IGZyb20gXCIuL3JlcG9ydGVyXCI7XG5pbXBvcnQgeyBjcmVhdGVIdG1sUmVwb3J0ZXIgfSBmcm9tIFwiLi9yZXBvcnRlcnMvaHRtbFwiO1xuaW1wb3J0IHsgY3JlYXRlTGNvdkZpbGVSZXBvcnRlciwgY3JlYXRlTGNvdlJlcG9ydGVyIH0gZnJvbSBcIi4vcmVwb3J0ZXJzL2xjb3ZcIjtcbmltcG9ydCB7IGNyZWF0ZVRleHRGaWxlUmVwb3J0ZXIsIGNyZWF0ZVRleHRSZXBvcnRlciB9IGZyb20gXCIuL3JlcG9ydGVycy90ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIFJlcG9ydGVyRmFjdG9yeSA9IChvcHRpb25zOiBhbnkpID0+IFJlcG9ydGVyO1xuXG5leHBvcnQgY2xhc3MgUmVwb3J0ZXJSZWdpc3RyeSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVnaXN0cnk6IE1hcDxzdHJpbmcsIFJlcG9ydGVyRmFjdG9yeT47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5yZWdpc3RyeSA9IG5ldyBNYXAoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlcihpZDogc3RyaW5nLCBmYWN0b3J5OiBSZXBvcnRlckZhY3RvcnkpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdHJ5LnNldChpZCwgZmFjdG9yeSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlKGlkOiBzdHJpbmcsIG9wdGlvbnM6IGFueSk6IFJlcG9ydGVyIHtcbiAgICBjb25zdCBmYWN0b3J5OiBSZXBvcnRlckZhY3RvcnkgfCB1bmRlZmluZWQgPSB0aGlzLnJlZ2lzdHJ5LmdldChpZCk7XG4gICAgaWYgKGZhY3RvcnkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHJlcG9ydGVyICR7aWR9LCBhdmFpbGFibGU6ICR7Wy4uLnRoaXMucmVnaXN0cnkua2V5cygpXS5qb2luKFwiLCBcIil9YCk7XG4gICAgfVxuICAgIHJldHVybiBmYWN0b3J5KG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFR0lTVFJZOiBSZXBvcnRlclJlZ2lzdHJ5ID0gbmV3IFJlcG9ydGVyUmVnaXN0cnkoKTtcblxuREVGQVVMVF9SRUdJU1RSWS5yZWdpc3RlcihcInRleHRcIiwgY3JlYXRlVGV4dFJlcG9ydGVyKTtcbkRFRkFVTFRfUkVHSVNUUlkucmVnaXN0ZXIoXCJ0ZXh0LWZpbGVcIiwgY3JlYXRlVGV4dEZpbGVSZXBvcnRlcik7XG5ERUZBVUxUX1JFR0lTVFJZLnJlZ2lzdGVyKFwibGNvdlwiLCBjcmVhdGVMY292UmVwb3J0ZXIpO1xuLy8gVE9ETzogRGVwcmVjYXRlIGBsY292b25seWBcbkRFRkFVTFRfUkVHSVNUUlkucmVnaXN0ZXIoXCJsY292b25seVwiLCBjcmVhdGVMY292RmlsZVJlcG9ydGVyKTtcbkRFRkFVTFRfUkVHSVNUUlkucmVnaXN0ZXIoXCJsY292LWZpbGVcIiwgY3JlYXRlTGNvdkZpbGVSZXBvcnRlcik7XG5ERUZBVUxUX1JFR0lTVFJZLnJlZ2lzdGVyKFwiaHRtbFwiLCBjcmVhdGVIdG1sUmVwb3J0ZXIpO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==