UNPKG

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