about summary refs log tree commit diff
path: root/src/logger/bitdrift/setup/index.ts
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2025-02-28 12:46:27 -0600
committerGitHub <noreply@github.com>2025-02-28 12:46:27 -0600
commit36a7a8d8c68fc1d3d3fd396dd9f705c966552fcb (patch)
tree1554dd9e960937c2fa2ba3941fc12cf8801a8bbd /src/logger/bitdrift/setup/index.ts
parent7c36ea115855050f319be19bb74d6f7fd80f8eed (diff)
downloadvoidsky-36a7a8d8c68fc1d3d3fd396dd9f705c966552fcb.tar.zst
Colocate bitdrift in logger, use logger for transport (#7868)
* Colocate bitdrift in logger, use logger for transport

(cherry picked from commit cdd6941fd7f6de9829d61712340a30a55936d2ee)

* Fix mocks, format

(cherry picked from commit 9de88660c6217ebe7f83e3abfb198f85e26d9c53)

* Ok I guess mocks dir doesn't work

(cherry picked from commit 9f37e52011d2794ad8fcd732eb26558e9f0ef42c)
Diffstat (limited to 'src/logger/bitdrift/setup/index.ts')
-rw-r--r--src/logger/bitdrift/setup/index.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/logger/bitdrift/setup/index.ts b/src/logger/bitdrift/setup/index.ts
new file mode 100644
index 000000000..d6af3fe24
--- /dev/null
+++ b/src/logger/bitdrift/setup/index.ts
@@ -0,0 +1,28 @@
+import {init, SessionStrategy} from '@bitdrift/react-native'
+import {Statsig} from 'statsig-react-native-expo'
+
+import {initPromise} from '#/lib/statsig/statsig'
+
+const BITDRIFT_API_KEY = process.env.BITDRIFT_API_KEY
+
+initPromise.then(() => {
+  let isEnabled = false
+  let isNetworkEnabled = false
+  try {
+    if (Statsig.checkGate('enable_bitdrift_v2')) {
+      isEnabled = true
+    }
+    if (Statsig.checkGate('enable_bitdrift_v2_networking')) {
+      isNetworkEnabled = true
+    }
+  } catch (e) {
+    // Statsig may complain about it being called too early.
+  }
+  if (isEnabled && BITDRIFT_API_KEY) {
+    init(BITDRIFT_API_KEY, SessionStrategy.Activity, {
+      url: 'https://api-bsky.bitdrift.io',
+      // Only effects iOS, Android instrumentation is set via Gradle Plugin
+      enableNetworkInstrumentation: isNetworkEnabled,
+    })
+  }
+})