benchpress
Version:
Benchpress - a framework for e2e performance tests
24 lines • 4.17 kB
JavaScript
import { bind, Injector, OpaqueToken } from 'angular2/src/core/di';
import { PromiseWrapper } from 'angular2/src/facade/async';
import { Reporter } from '../reporter';
export class MultiReporter extends Reporter {
constructor(reporters) {
super();
this._reporters = reporters;
}
static createBindings(childTokens) {
return [
bind(_CHILDREN)
.toFactory((injector) => childTokens.map(token => injector.get(token)), [Injector]),
bind(MultiReporter).toFactory(children => new MultiReporter(children), [_CHILDREN])
];
}
reportMeasureValues(values) {
return PromiseWrapper.all(this._reporters.map(reporter => reporter.reportMeasureValues(values)));
}
reportSample(completeSample, validSample) {
return PromiseWrapper.all(this._reporters.map(reporter => reporter.reportSample(completeSample, validSample)));
}
}
var _CHILDREN = new OpaqueToken('MultiReporter.children');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlfcmVwb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmaW5nX3BsdWdpbl93cmFwcGVyLW91dHB1dF9wYXRoLXhCTElCclZSLnRtcC9iZW5jaHByZXNzL3NyYy9yZXBvcnRlci9tdWx0aV9yZXBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiT0FBTyxFQUFDLElBQUksRUFBcUIsUUFBUSxFQUFFLFdBQVcsRUFBQyxNQUFNLHNCQUFzQjtPQUM1RSxFQUFDLGNBQWMsRUFBQyxNQUFNLDJCQUEyQjtPQUdqRCxFQUFDLFFBQVEsRUFBQyxNQUFNLGFBQWE7QUFFcEMsbUNBQW1DLFFBQVE7SUFZekMsWUFBWSxTQUFTO1FBQ25CLE9BQU8sQ0FBQztRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFkRCxPQUFPLGNBQWMsQ0FBQyxXQUFrQjtRQUN0QyxNQUFNLENBQUM7WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDO2lCQUNWLFNBQVMsQ0FBQyxDQUFDLFFBQWtCLEtBQUssV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNyRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDcEYsQ0FBQztJQUNKLENBQUM7SUFTRCxtQkFBbUIsQ0FBQyxNQUFxQjtRQUN2QyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELFlBQVksQ0FBQyxjQUErQixFQUFFLFdBQTRCO1FBQ3hFLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBSSxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsd0JBQXdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YmluZCwgcHJvdmlkZSwgUHJvdmlkZXIsIEluamVjdG9yLCBPcGFxdWVUb2tlbn0gZnJvbSAnYW5ndWxhcjIvc3JjL2NvcmUvZGknO1xuaW1wb3J0IHtQcm9taXNlV3JhcHBlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9hc3luYyc7XG5cbmltcG9ydCB7TWVhc3VyZVZhbHVlc30gZnJvbSAnLi4vbWVhc3VyZV92YWx1ZXMnO1xuaW1wb3J0IHtSZXBvcnRlcn0gZnJvbSAnLi4vcmVwb3J0ZXInO1xuXG5leHBvcnQgY2xhc3MgTXVsdGlSZXBvcnRlciBleHRlbmRzIFJlcG9ydGVyIHtcbiAgc3RhdGljIGNyZWF0ZUJpbmRpbmdzKGNoaWxkVG9rZW5zOiBhbnlbXSk6IFByb3ZpZGVyW10ge1xuICAgIHJldHVybiBbXG4gICAgICBiaW5kKF9DSElMRFJFTilcbiAgICAgICAgICAudG9GYWN0b3J5KChpbmplY3RvcjogSW5qZWN0b3IpID0+IGNoaWxkVG9rZW5zLm1hcCh0b2tlbiA9PiBpbmplY3Rvci5nZXQodG9rZW4pKSxcbiAgICAgICAgICAgICAgICAgICAgIFtJbmplY3Rvcl0pLFxuICAgICAgYmluZChNdWx0aVJlcG9ydGVyKS50b0ZhY3RvcnkoY2hpbGRyZW4gPT4gbmV3IE11bHRpUmVwb3J0ZXIoY2hpbGRyZW4pLCBbX0NISUxEUkVOXSlcbiAgICBdO1xuICB9XG5cbiAgX3JlcG9ydGVyczogUmVwb3J0ZXJbXTtcblxuICBjb25zdHJ1Y3RvcihyZXBvcnRlcnMpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3JlcG9ydGVycyA9IHJlcG9ydGVycztcbiAgfVxuXG4gIHJlcG9ydE1lYXN1cmVWYWx1ZXModmFsdWVzOiBNZWFzdXJlVmFsdWVzKTogUHJvbWlzZTxhbnlbXT4ge1xuICAgIHJldHVybiBQcm9taXNlV3JhcHBlci5hbGwoXG4gICAgICAgIHRoaXMuX3JlcG9ydGVycy5tYXAocmVwb3J0ZXIgPT4gcmVwb3J0ZXIucmVwb3J0TWVhc3VyZVZhbHVlcyh2YWx1ZXMpKSk7XG4gIH1cblxuICByZXBvcnRTYW1wbGUoY29tcGxldGVTYW1wbGU6IE1lYXN1cmVWYWx1ZXNbXSwgdmFsaWRTYW1wbGU6IE1lYXN1cmVWYWx1ZXNbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICByZXR1cm4gUHJvbWlzZVdyYXBwZXIuYWxsKFxuICAgICAgICB0aGlzLl9yZXBvcnRlcnMubWFwKHJlcG9ydGVyID0+IHJlcG9ydGVyLnJlcG9ydFNhbXBsZShjb21wbGV0ZVNhbXBsZSwgdmFsaWRTYW1wbGUpKSk7XG4gIH1cbn1cblxudmFyIF9DSElMRFJFTiA9IG5ldyBPcGFxdWVUb2tlbignTXVsdGlSZXBvcnRlci5jaGlsZHJlbicpO1xuIl19