dd-trace
Version:
Datadog APM tracing client for JavaScript
30 lines (23 loc) • 596 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)
}
}
/**
* @override
*/
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