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
47 lines
1.5 KiB
Plaintext
47 lines
1.5 KiB
Plaintext
import { defineIntegration, _INTERNAL_copyFlagsFromScopeToEvent, _INTERNAL_insertFlagToScope, _INTERNAL_addFeatureFlagToActiveSpan } from '@sentry/core';
|
|
|
|
/**
|
|
* Sentry integration for capturing feature flag evaluations from the Statsig js-client SDK.
|
|
*
|
|
* See the [feature flag documentation](https://develop.sentry.dev/sdk/expected-features/#feature-flags) for more information.
|
|
*
|
|
* @example
|
|
* ```
|
|
* import { StatsigClient } from '@statsig/js-client';
|
|
* import * as Sentry from '@sentry/browser';
|
|
*
|
|
* const statsigClient = new StatsigClient();
|
|
*
|
|
* Sentry.init({
|
|
* dsn: '___PUBLIC_DSN___',
|
|
* integrations: [Sentry.statsigIntegration({featureFlagClient: statsigClient})],
|
|
* });
|
|
*
|
|
* await statsigClient.initializeAsync(); // or statsigClient.initializeSync();
|
|
*
|
|
* const result = statsigClient.checkGate('my-feature-gate');
|
|
* Sentry.captureException(new Error('something went wrong'));
|
|
* ```
|
|
*/
|
|
const statsigIntegration = defineIntegration(
|
|
({ featureFlagClient: statsigClient }) => {
|
|
return {
|
|
name: 'Statsig',
|
|
|
|
setup(_client) {
|
|
statsigClient.on('gate_evaluation', (event) => {
|
|
_INTERNAL_insertFlagToScope(event.gate.name, event.gate.value);
|
|
_INTERNAL_addFeatureFlagToActiveSpan(event.gate.name, event.gate.value);
|
|
});
|
|
},
|
|
|
|
processEvent(event, _hint, _client) {
|
|
return _INTERNAL_copyFlagsFromScopeToEvent(event);
|
|
},
|
|
};
|
|
},
|
|
) ;
|
|
|
|
export { statsigIntegration };
|
|
//# sourceMappingURL=integration.js.map
|