mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-27 06:20:52 -07:00
fix(core): strip leading underscores from error types in telemetry (#23824)
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
This commit is contained in:
@@ -354,4 +354,13 @@ describe('getErrorType', () => {
|
||||
expect(getErrorType(null)).toBe('unknown');
|
||||
expect(getErrorType(undefined)).toBe('unknown');
|
||||
});
|
||||
|
||||
it('should strip leading underscores from error names', () => {
|
||||
class _GaxiosError extends Error {}
|
||||
expect(getErrorType(new _GaxiosError('test'))).toBe('GaxiosError');
|
||||
|
||||
const errorWithUnderscoreName = new Error('test');
|
||||
errorWithUnderscoreName.name = '_CodeBuddyError';
|
||||
expect(getErrorType(errorWithUnderscoreName)).toBe('CodeBuddyError');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -58,9 +58,12 @@ export function getErrorType(error: unknown): string {
|
||||
if (!(error instanceof Error)) return 'unknown';
|
||||
|
||||
// Return constructor name if the generic 'Error' name is used (for custom errors)
|
||||
return error.name === 'Error'
|
||||
? (error.constructor?.name ?? 'Error')
|
||||
: error.name;
|
||||
const name =
|
||||
error.name === 'Error' ? (error.constructor?.name ?? 'Error') : error.name;
|
||||
|
||||
// Strip leading underscore from error names. Bundlers like esbuild sometimes
|
||||
// rename classes to avoid scope collisions.
|
||||
return name.replace(/^_+/, '');
|
||||
}
|
||||
|
||||
export class FatalError extends Error {
|
||||
|
||||
Reference in New Issue
Block a user