package.build.esm.currentScopes.js.map Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Base implementation for all Sentry JavaScript SDKs
{"version":3,"file":"currentScopes.js","sources":["../../src/currentScopes.ts"],"sourcesContent":["import type { Scope } from '@sentry/types';\nimport type { Client } from '@sentry/types';\nimport { getGlobalSingleton } from '@sentry/utils';\nimport { getAsyncContextStrategy } from './asyncContext';\nimport { getMainCarrier } from './carrier';\nimport { Scope as ScopeClass } from './scope';\n\n/**\n * Get the currently active scope.\n */\nexport function getCurrentScope(): Scope {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current exection context.\n */\nexport function getIsolationScope(): Scope {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nexport function getGlobalScope(): Scope {\n return getGlobalSingleton('globalScope', () => new ScopeClass());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\nexport function withScope(callback: (scope: Scope) => T): T;\n/**\n * Set the given scope as the active scope in the callback.\n */\nexport function withScope(scope: Scope | undefined, callback: (scope: Scope) => T): T;\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nexport function withScope(\n ...rest: [callback: (scope: Scope) => T] | [scope: Scope | undefined, callback: (scope: Scope) => T]\n): T {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n\n if (!scope) {\n return acs.withScope(callback);\n }\n\n return acs.withSetScope(scope, callback);\n }\n\n return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\nexport function withIsolationScope(callback: (isolationScope: Scope) => T): T;\n/**\n * Set the provided isolation scope as active in the given callback. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n *\n * If you pass in `undefined` as a scope, it will fork a new isolation scope, the same as if no scope is passed.\n */\nexport function withIsolationScope(isolationScope: Scope | undefined, callback: (isolationScope: Scope) => T): T;\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nexport function withIsolationScope(\n ...rest:\n | [callback: (isolationScope: Scope) => T]\n | [isolationScope: Scope | undefined, callback: (isolationScope: Scope) => T]\n): T {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [isolationScope, callback] = rest;\n\n if (!isolationScope) {\n return acs.withIsolationScope(callback);\n }\n\n return acs.withSetIsolationScope(isolationScope, callback);\n }\n\n return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nexport function getClient(): C | undefined {\n return getCurrentScope().getClient();\n}\n"],"names":["ScopeClass"],"mappings":";;;;;AAOA;AACA;AACA;AACO,SAAS,eAAe,GAAU;AACzC,EAAE,MAAM,OAAA,GAAU,cAAc,EAAE,CAAA;AAClC,EAAE,MAAM,GAAI,GAAE,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAC9C,EAAE,OAAO,GAAG,CAAC,eAAe,EAAE,CAAA;AAC9B,CAAA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,GAAU;AAC3C,EAAE,MAAM,OAAA,GAAU,cAAc,EAAE,CAAA;AAClC,EAAE,MAAM,GAAI,GAAE,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAC9C,EAAE,OAAO,GAAG,CAAC,iBAAiB,EAAE,CAAA;AAChC,CAAA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,cAAc,GAAU;AACxC,EAAE,OAAO,kBAAkB,CAAC,aAAa,EAAE,MAAM,IAAIA,KAAU,EAAE,CAAC,CAAA;AAClE,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA;AACA;AACO,SAAS,SAAS;AACzB,EAAE,GAAG,IAAI;AACT,EAAK;AACL,EAAE,MAAM,OAAA,GAAU,cAAc,EAAE,CAAA;AAClC,EAAE,MAAM,GAAI,GAAE,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAC9C;AACA;AACA,EAAE,IAAI,IAAI,CAAC,MAAO,KAAI,CAAC,EAAE;AACzB,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAA,GAAI,IAAI,CAAA;AAClC;AACA,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;AACpC,KAAI;AACJ;AACA,IAAI,OAAO,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;AAC5C,GAAE;AACF;AACA,EAAE,OAAO,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/B,CAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA;AACA;AACA;AACO,SAAS,kBAAkB;AAClC,EAAE,GAAG,IAAI;;AAGT,EAAK;AACL,EAAE,MAAM,OAAA,GAAU,cAAc,EAAE,CAAA;AAClC,EAAE,MAAM,GAAI,GAAE,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAC9C;AACA;AACA,EAAE,IAAI,IAAI,CAAC,MAAO,KAAI,CAAC,EAAE;AACzB,IAAI,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAA,GAAI,IAAI,CAAA;AAC3C;AACA,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB,MAAM,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AAC7C,KAAI;AACJ;AACA,IAAI,OAAO,GAAG,CAAC,qBAAqB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;AAC9D,GAAE;AACF;AACA,EAAE,OAAO,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AACxC,CAAA;AACA;AACA;AACA;AACA;AACO,SAAS,SAAS,GAAoC;AAC7D,EAAE,OAAO,eAAe,EAAE,CAAC,SAAS,EAAK,CAAA;AACzC;;;;"}