Skip to content

Commit

Permalink
treat empty error messages in telemetry reports and allow non-error i…
Browse files Browse the repository at this point in the history
…nstances
  • Loading branch information
yannbf committed Aug 31, 2023
1 parent 15b8f83 commit d652cf2
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions code/lib/core-server/src/withTelemetry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import { loadAllPresets, cache } from '@storybook/core-common';
import { telemetry, getPrecedingUpgrade, oneWayHash } from '@storybook/telemetry';
import type { EventType } from '@storybook/telemetry';
import { logger } from '@storybook/node-logger';
import invariant from 'tiny-invariant';

type TelemetryOptions = {
cliOptions: CLIOptions;
Expand Down Expand Up @@ -67,7 +66,7 @@ async function getErrorLevel({
}

export async function sendTelemetryError(
error: unknown,
_error: unknown,
eventType: EventType,
options: TelemetryOptions
) {
Expand All @@ -81,11 +80,7 @@ export async function sendTelemetryError(
if (errorLevel !== 'none') {
const precedingUpgrade = await getPrecedingUpgrade();

invariant(
error instanceof Error,
'The error passed to sendTelemetryError was not an Error, please only send Errors'
);

const error = _error as Error | Record<string, any>;
let storybookErrorProperties = {};
// if it's an UNCATEGORIZED error, it won't have a coded name, so we just pass the category and source
if ((error as any).category) {
Expand All @@ -104,14 +99,23 @@ export async function sendTelemetryError(
};
}

let errorHash;
if ('message' in error) {
errorHash = error.message ? oneWayHash(error.message) : 'empty-message';
} else {
errorHash = 'no-message';
}

await telemetry(
'error',
{
...storybookErrorProperties,
eventType,
precedingUpgrade,
error: errorLevel === 'full' ? error : undefined,
errorHash: oneWayHash(error.message),
...storybookErrorProperties,
errorHash,
// if we ever end up sending a non-error instance, we'd like to know
isErrorInstance: error instanceof Error,
},
{
immediate: true,
Expand Down

0 comments on commit d652cf2

Please sign in to comment.