1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import { _optionalChain } from '@sentry/utils';
- import * as domain from 'domain';
- import { setAsyncContextStrategy, ensureHubOnCarrier, getHubFromCarrier, setHubOnCarrier } from '@sentry/core';
- function getActiveDomain() {
-
- return (domain ).active ;
- }
- function getCurrentHub() {
- const activeDomain = getActiveDomain();
-
- if (!activeDomain) {
- return undefined;
- }
- ensureHubOnCarrier(activeDomain);
- return getHubFromCarrier(activeDomain);
- }
- function createNewHub(parent) {
- const carrier = {};
- ensureHubOnCarrier(carrier, parent);
- return getHubFromCarrier(carrier);
- }
- function runWithAsyncContext(callback, options) {
- const activeDomain = getActiveDomain();
- if (activeDomain && _optionalChain([options, 'optionalAccess', _ => _.reuseExisting])) {
-
- return callback();
- }
- const local = domain.create() ;
- const parentHub = activeDomain ? getHubFromCarrier(activeDomain) : undefined;
- const newHub = createNewHub(parentHub);
- setHubOnCarrier(local, newHub);
- return local.bind(() => {
- return callback();
- })();
- }
- function setDomainAsyncContextStrategy() {
- setAsyncContextStrategy({ getCurrentHub, runWithAsyncContext });
- }
- export { setDomainAsyncContextStrategy };
|