autotel
Version:
Write Once, Observe Anywhere
73 lines (70 loc) • 2.6 kB
JavaScript
;
require('./chunk-UTZR7P7E.cjs');
require('./chunk-GML3FBOT.cjs');
require('./chunk-D5LMF53P.cjs');
require('./chunk-JSNUWSBH.cjs');
var chunkHZ3FYBJG_cjs = require('./chunk-HZ3FYBJG.cjs');
require('./chunk-563EL6O6.cjs');
require('./chunk-OC6X2VIN.cjs');
require('./chunk-CEAQK2QY.cjs');
require('./chunk-ZNMBW67B.cjs');
require('./chunk-IOYFAFHJ.cjs');
require('./chunk-CMNGGTQL.cjs');
require('./chunk-CU6IDACR.cjs');
require('./chunk-6S5RUKU3.cjs');
require('./chunk-YS6C2YJE.cjs');
require('./chunk-VH77IPJN.cjs');
require('./chunk-FU6R566Y.cjs');
var chunkESLWRGAG_cjs = require('./chunk-ESLWRGAG.cjs');
require('./chunk-YREV3LGG.cjs');
require('./chunk-JEQ2X3Z6.cjs');
var api = require('@opentelemetry/api');
function Trace(nameOrOptions, maybeOptions) {
const name = typeof nameOrOptions === "string" ? nameOrOptions : nameOrOptions?.name;
return function(originalMethod, context) {
const methodName = String(context.name);
const methodStr = originalMethod?.toString() || "";
const isAsync = originalMethod && (originalMethod.constructor?.name === "AsyncFunction" || methodStr.trim().startsWith("async ") || methodStr.includes("[native code]") && methodStr.includes("async") || // Fallback: if function has async in its string representation
/async\s+/.test(methodStr));
if (!isAsync) {
return originalMethod;
}
const spanName = name || methodName;
return async function(...args) {
const config = chunkESLWRGAG_cjs.getConfig();
const tracer = config.tracer;
return tracer.startActiveSpan(spanName, async (span) => {
try {
const ctx = chunkHZ3FYBJG_cjs.createTraceContext(span);
const originalCtx = this.ctx;
try {
this.ctx = ctx;
const result = await originalMethod.apply(this, args);
span.setStatus({ code: api.SpanStatusCode.OK });
return result;
} finally {
if (originalCtx === void 0) {
delete this.ctx;
} else {
this.ctx = originalCtx;
}
}
} catch (error) {
span.setStatus({
code: api.SpanStatusCode.ERROR,
message: error instanceof Error ? error.message : "Unknown error"
});
span.recordException(
error instanceof Error ? error : new Error(String(error))
);
throw error;
} finally {
span.end();
}
});
};
};
}
exports.Trace = Trace;
//# sourceMappingURL=decorators.cjs.map
//# sourceMappingURL=decorators.cjs.map