| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- /*
 
-  * Copyright The OpenTelemetry Authors
 
-  *
 
-  * Licensed under the Apache License, Version 2.0 (the "License");
 
-  * you may not use this file except in compliance with the License.
 
-  * You may obtain a copy of the License at
 
-  *
 
-  *      https://www.apache.org/licenses/LICENSE-2.0
 
-  *
 
-  * Unless required by applicable law or agreed to in writing, software
 
-  * distributed under the License is distributed on an "AS IS" BASIS,
 
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
-  * See the License for the specific language governing permissions and
 
-  * limitations under the License.
 
-  */
 
- /** Get a key to uniquely identify a context value */
 
- export function createContextKey(description) {
 
-     // The specification states that for the same input, multiple calls should
 
-     // return different keys. Due to the nature of the JS dependency management
 
-     // system, this creates problems where multiple versions of some package
 
-     // could hold different keys for the same property.
 
-     //
 
-     // Therefore, we use Symbol.for which returns the same key for the same input.
 
-     return Symbol.for(description);
 
- }
 
- class BaseContext {
 
-     /**
 
-      * Construct a new context which inherits values from an optional parent context.
 
-      *
 
-      * @param parentContext a context from which to inherit values
 
-      */
 
-     constructor(parentContext) {
 
-         // for minification
 
-         const self = this;
 
-         self._currentContext = parentContext ? new Map(parentContext) : new Map();
 
-         self.getValue = (key) => self._currentContext.get(key);
 
-         self.setValue = (key, value) => {
 
-             const context = new BaseContext(self._currentContext);
 
-             context._currentContext.set(key, value);
 
-             return context;
 
-         };
 
-         self.deleteValue = (key) => {
 
-             const context = new BaseContext(self._currentContext);
 
-             context._currentContext.delete(key);
 
-             return context;
 
-         };
 
-     }
 
- }
 
- /** The root context is used as the default parent context when there is no active context */
 
- export const ROOT_CONTEXT = new BaseContext();
 
- //# sourceMappingURL=context.js.map
 
 
  |