UNPKG

@bugsnag/core-performance

Version:
30 lines (27 loc) 916 B
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 };