Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
46 lines
1.4 KiB
Plaintext
46 lines
1.4 KiB
Plaintext
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
|
const currentScopes = require('./currentScopes.js');
|
|
const debugLogger = require('./utils/debug-logger.js');
|
|
const time = require('./utils/time.js');
|
|
|
|
/**
|
|
* Default maximum number of breadcrumbs added to an event. Can be overwritten
|
|
* with {@link Options.maxBreadcrumbs}.
|
|
*/
|
|
const DEFAULT_BREADCRUMBS = 100;
|
|
|
|
/**
|
|
* Records a new breadcrumb which will be attached to future events.
|
|
*
|
|
* Breadcrumbs will be added to subsequent events to provide more context on
|
|
* user's actions prior to an error or crash.
|
|
*/
|
|
function addBreadcrumb(breadcrumb, hint) {
|
|
const client = currentScopes.getClient();
|
|
const isolationScope = currentScopes.getIsolationScope();
|
|
|
|
if (!client) return;
|
|
|
|
const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();
|
|
|
|
if (maxBreadcrumbs <= 0) return;
|
|
|
|
const timestamp = time.dateTimestampInSeconds();
|
|
const mergedBreadcrumb = { timestamp, ...breadcrumb };
|
|
const finalBreadcrumb = beforeBreadcrumb
|
|
? debugLogger.consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint))
|
|
: mergedBreadcrumb;
|
|
|
|
if (finalBreadcrumb === null) return;
|
|
|
|
if (client.emit) {
|
|
client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);
|
|
}
|
|
|
|
isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);
|
|
}
|
|
|
|
exports.addBreadcrumb = addBreadcrumb;
|
|
//# sourceMappingURL=breadcrumbs.js.map
|