UNPKG

5.12 kBSource Map (JSON)View Raw
1{"version":3,"file":"integration.js","sourceRoot":"","sources":["../src/integration.ts"],"names":[],"mappings":"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","sourcesContent":["import { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { Integration, Options } from '@sentry/types';\nimport { logger } from '@sentry/utils';\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport interface IntegrationIndex {\n [key: string]: Integration;\n}\n\n/**\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n return integrations.reduce((acc, integrations) => {\n if (acc.every(accIntegration => integrations.name !== accIntegration.name)) {\n acc.push(integrations);\n }\n return acc;\n }, [] as Integration[]);\n}\n\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options: Options): Integration[] {\n const defaultIntegrations = (options.defaultIntegrations && [...options.defaultIntegrations]) || [];\n const userIntegrations = options.integrations;\n\n let integrations: Integration[] = [...filterDuplicates(defaultIntegrations)];\n\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = [\n ...integrations.filter(integrations =>\n userIntegrations.every(userIntegration => userIntegration.name !== integrations.name),\n ),\n // And filter out duplicated user options integrations\n ...filterDuplicates(userIntegrations),\n ];\n } else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n\n // Make sure that if present, `Debug` integration will always run last\n const integrationsNames = integrations.map(i => i.name);\n const alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push(...integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1));\n }\n\n return integrations;\n}\n\n/** Setup given integration */\nexport function setupIntegration(integration: Integration): void {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(`Integration installed: ${integration.name}`);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations<O extends Options>(options: O): IntegrationIndex {\n const integrations: IntegrationIndex = {};\n getIntegrationsToSetup(options).forEach(integration => {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n return integrations;\n}\n"]}
\No newline at end of file