@bugsnag/core-performance
Version:
Core performance client
30 lines (27 loc) • 916 B
JavaScript
import PrioritizedSet from './prioritized-set.js';
// base class for classes that can be used with SpanControlProvider, where S represents
// the type of span control that the query will retrieve. Using an abstract class
// allows providers to verify query types at runtime using instanceof checks.
class SpanQuery {
}
class CompositeSpanControlProvider {
constructor() {
this.providers = new PrioritizedSet();
}
addProvider(provider, priority) {
this.providers.add(provider, priority);
}
addProviders(providers) {
this.providers.addAll(providers);
}
getSpanControls(query) {
for (const provider of this.providers) {
const spanControl = provider.getSpanControls(query);
if (spanControl) {
return spanControl;
}
}
return null;
}
}
export { CompositeSpanControlProvider, SpanQuery };