|
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