@opencensus/web-types
Version:
OpenCensus Web types is a slightly-patched copy of the `types.ts` files from `@opencensus/core` so that they can be easily imported in web-specific packages.
37 lines (36 loc) • 1.2 kB
TypeScript
/**
* Copyright 2019, OpenCensus 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
*
* http://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.
*/
import { SpanContext } from '../model/types';
/**
* An transport and environment neutral API for getting request headers.
*/
export interface HeaderGetter {
getHeader(name: string): string | string[] | undefined;
}
/**
* A transport and environment neutral API for setting headers.
*/
export interface HeaderSetter {
setHeader(name: string, value: string): void;
}
/**
* Propagation interface
*/
export interface Propagation {
extract(getter: HeaderGetter): SpanContext | null;
inject(setter: HeaderSetter, spanContext: SpanContext): void;
generate(): SpanContext;
}