ente/packages/shared/sentry/utils.ts

47 lines
1.3 KiB
TypeScript
Raw Normal View History

import { WorkerSafeElectronService } from '@ente/shared/electron/service';
import {
getLocalSentryUserID,
setLocalSentryUserID,
} from '@ente/shared/storage/localStorage/helpers';
import isElectron from 'is-electron';
2023-11-10 09:38:10 +00:00
import { ApiError } from '../error';
import { HttpStatusCode } from 'axios';
export async function getSentryUserID() {
if (isElectron()) {
return await WorkerSafeElectronService.getSentryUserID();
} else {
let anonymizeUserID = getLocalSentryUserID();
if (!anonymizeUserID) {
anonymizeUserID = makeID(6);
setLocalSentryUserID(anonymizeUserID);
}
return anonymizeUserID;
}
}
function makeID(length) {
let result = '';
const characters =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
const charactersLength = characters.length;
for (let i = 0; i < length; i++) {
result += characters.charAt(
Math.floor(Math.random() * charactersLength)
);
}
return result;
}
export function isErrorUnnecessaryForSentry(error: any) {
if (error?.message?.includes('Network Error')) {
return true;
2023-11-10 09:38:10 +00:00
} else if (
error instanceof ApiError &&
error.httpStatusCode === HttpStatusCode.Unauthorized
) {
return true;
}
return false;
}