UNPKG

@kangc/skywalking-backend-js

Version:

The NodeJS agent for Apache SkyWalking

71 lines 2.49 kB
"use strict"; /*! * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. * */ Object.defineProperty(exports, "__esModule", { value: true }); exports.wrapPromise = exports.wrapCallback = exports.wrapEmit = void 0; exports.wrapEmit = function (span, ee, doError, stop) { if (doError === void 0) { doError = true; } if (stop === void 0) { stop = NaN; } // stop = NaN because NaN !== NaN var stopIsFunc = typeof stop === 'function'; var _emit = ee.emit; Object.defineProperty(ee, 'emit', { configurable: true, writable: true, value: function () { var event = arguments[0]; span.resync(); try { if (doError && event === 'error') span.error(arguments[1]); return _emit.apply(this, arguments); } catch (err) { span.error(err); throw err; } finally { if (stopIsFunc ? stop(event) : event === stop) span.stop(); else span.async(); } }, }); }; exports.wrapCallback = function (span, callback, idxError) { if (idxError === void 0) { idxError = false; } return function () { if (idxError !== false && arguments[idxError]) span.error(arguments[idxError]); span.stop(); return callback.apply(this, arguments); }; }; exports.wrapPromise = function (span, promise) { return promise.then(function (res) { span.stop(); return res; }, function (err) { span.error(err); span.stop(); return Promise.reject(err); }); }; //# sourceMappingURL=SwPlugin.js.map