dd-trace
Version:
Datadog APM tracing client for JavaScript
27 lines (20 loc) • 569 B
JavaScript
const Plugin = require('./plugin')
class CompositePlugin extends Plugin {
constructor (...args) {
super(...args)
for (const [name, PluginClass] of Object.entries(this.constructor.plugins)) {
this[name] = new PluginClass(...args)
}
}
configure (config) {
super.configure(config)
for (const name in this.constructor.plugins) {
const pluginConfig = config[name] === false
? false
: { ...config, ...config[name] }
this[name].configure(pluginConfig)
}
}
}
module.exports = CompositePlugin