{"version":3,"file":"sdk.js","sources":["../../src/sdk.ts"],"sourcesContent":["import type { Client, ClientOptions } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nimport { getCurrentHub } from './hub';\n\n/** A class object that can instantiate Client objects. */\nexport type ClientClass<F extends Client, O extends ClientOptions> = new (options: O) => F;\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind<F extends Client, O extends ClientOptions>(\n  clientClass: ClientClass<F, O>,\n  options: O,\n): void {\n  if (options.debug === true) {\n    if (__DEBUG_BUILD__) {\n      logger.enable();\n    } else {\n      // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n      // eslint-disable-next-line no-console\n      console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n    }\n  }\n  const hub = getCurrentHub();\n  const scope = hub.getScope();\n  if (scope) {\n    scope.update(options.initialScope);\n  }\n\n  const client = new clientClass(options);\n  hub.bindClient(client);\n}\n"],"names":[],"mappings":";;;AAKA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAA,WAAA;AACA,EAAA,WAAA;AACA,EAAA,OAAA;AACA,EAAA;AACA,EAAA,IAAA,OAAA,CAAA,KAAA,KAAA,IAAA,EAAA;AACA,IAAA,KAAA,OAAA,gBAAA,KAAA,WAAA,IAAA,gBAAA,GAAA;AACA,MAAA,MAAA,CAAA,MAAA,EAAA,CAAA;AACA,KAAA,MAAA;AACA;AACA;AACA,MAAA,OAAA,CAAA,IAAA,CAAA,8EAAA,CAAA,CAAA;AACA,KAAA;AACA,GAAA;AACA,EAAA,MAAA,GAAA,GAAA,aAAA,EAAA,CAAA;AACA,EAAA,MAAA,KAAA,GAAA,GAAA,CAAA,QAAA,EAAA,CAAA;AACA,EAAA,IAAA,KAAA,EAAA;AACA,IAAA,KAAA,CAAA,MAAA,CAAA,OAAA,CAAA,YAAA,CAAA,CAAA;AACA,GAAA;AACA;AACA,EAAA,MAAA,MAAA,GAAA,IAAA,WAAA,CAAA,OAAA,CAAA,CAAA;AACA,EAAA,GAAA,CAAA,UAAA,CAAA,MAAA,CAAA,CAAA;AACA;;;;"}