|
1 | 1 | import type { TelemetryEventRaw } from '@clerk/types'; |
2 | | -import { promises as fs } from 'fs'; |
3 | 2 | import { dirname, join } from 'path'; |
4 | 3 |
|
5 | 4 | import { canUseKeyless } from '../utils/feature-flags'; |
6 | 5 | import { createClerkClientWithOptions } from './createClerkClient'; |
| 6 | +import { nodeFsOrThrow } from './fs/utils'; |
7 | 7 |
|
8 | 8 | const EVENT_KEYLESS_ENV_DRIFT_DETECTED = 'KEYLESS_ENV_DRIFT_DETECTED'; |
9 | 9 | const EVENT_SAMPLING_RATE = 1; // 100% sampling rate |
@@ -43,18 +43,23 @@ function getTelemetryFlagFilePath(): string { |
43 | 43 | */ |
44 | 44 | async function tryMarkTelemetryEventAsFired(): Promise<boolean> { |
45 | 45 | try { |
46 | | - const flagFilePath = getTelemetryFlagFilePath(); |
47 | | - const flagDirectory = dirname(flagFilePath); |
| 46 | + if (canUseKeyless) { |
| 47 | + const { mkdir, writeFile } = nodeFsOrThrow(); |
| 48 | + const flagFilePath = getTelemetryFlagFilePath(); |
| 49 | + const flagDirectory = dirname(flagFilePath); |
48 | 50 |
|
49 | | - // Ensure the directory exists before attempting to write the file |
50 | | - await fs.mkdir(flagDirectory, { recursive: true }); |
| 51 | + // Ensure the directory exists before attempting to write the file |
| 52 | + await mkdir(flagDirectory, { recursive: true }); |
51 | 53 |
|
52 | | - const flagData = { |
53 | | - firedAt: new Date().toISOString(), |
54 | | - event: EVENT_KEYLESS_ENV_DRIFT_DETECTED, |
55 | | - }; |
56 | | - await fs.writeFile(flagFilePath, JSON.stringify(flagData, null, 2), { flag: 'wx' }); |
57 | | - return true; |
| 54 | + const flagData = { |
| 55 | + firedAt: new Date().toISOString(), |
| 56 | + event: EVENT_KEYLESS_ENV_DRIFT_DETECTED, |
| 57 | + }; |
| 58 | + await writeFile(flagFilePath, JSON.stringify(flagData, null, 2), { flag: 'wx' }); |
| 59 | + return true; |
| 60 | + } else { |
| 61 | + return false; |
| 62 | + } |
58 | 63 | } catch (error: unknown) { |
59 | 64 | if ((error as { code?: string })?.code === 'EEXIST') { |
60 | 65 | return false; |
|
0 commit comments