dd-trace
Version:
Datadog APM tracing client for JavaScript
48 lines (40 loc) • 1.01 kB
JavaScript
const { storage } = require('../../datadog-core')
const baggageStorage = storage('baggage')
/**
* @param {string} key
* @param {string} value
*/
function setBaggageItem (key, value) {
storage('baggage').enterWith({ ...baggageStorage.getStore(), [key]: value })
return storage('baggage').getStore()
}
/**
* @param {string} key
*/
function getBaggageItem (key) {
return storage('baggage').getStore()?.[key]
}
function getAllBaggageItems () {
return storage('baggage').getStore() ?? {}
}
/**
* @param {string} keyToRemove
* @returns {Record<string, unknown>}
*/
function removeBaggageItem (keyToRemove) {
const { [keyToRemove]: _, ...newBaggage } = storage('baggage').getStore()
storage('baggage').enterWith(newBaggage)
return newBaggage
}
function removeAllBaggageItems () {
storage('baggage').enterWith()
return storage('baggage').getStore()
}
module.exports = {
setBaggageItem,
getBaggageItem,
getAllBaggageItems,
removeBaggageItem,
removeAllBaggageItems
}