UNPKG

1.93 kBJavaScriptView Raw
1"use strict";
2/*
3 * Copyright The OpenTelemetry Authors
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17Object.defineProperty(exports, "__esModule", { value: true });
18exports.InMemorySpanExporter = void 0;
19const core_1 = require("@opentelemetry/core");
20/**
21 * This class can be used for testing purposes. It stores the exported spans
22 * in a list in memory that can be retrieved using the `getFinishedSpans()`
23 * method.
24 */
25class InMemorySpanExporter {
26 constructor() {
27 this._finishedSpans = [];
28 /**
29 * Indicates if the exporter has been "shutdown."
30 * When false, exported spans will not be stored in-memory.
31 */
32 this._stopped = false;
33 }
34 export(spans, resultCallback) {
35 if (this._stopped)
36 return resultCallback({
37 code: core_1.ExportResultCode.FAILED,
38 error: new Error('Exporter has been stopped'),
39 });
40 this._finishedSpans.push(...spans);
41 setTimeout(() => resultCallback({ code: core_1.ExportResultCode.SUCCESS }), 0);
42 }
43 shutdown() {
44 this._stopped = true;
45 this._finishedSpans = [];
46 return Promise.resolve();
47 }
48 reset() {
49 this._finishedSpans = [];
50 }
51 getFinishedSpans() {
52 return this._finishedSpans;
53 }
54}
55exports.InMemorySpanExporter = InMemorySpanExporter;
56//# sourceMappingURL=InMemorySpanExporter.js.map
\No newline at end of file