Skip to content

Commit f2affab

Browse files
committed
fix(types, clerk-js): Update Errors interface to allow null for raw and global error arrays
1 parent a50cfc8 commit f2affab

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

packages/clerk-js/src/core/signals.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,30 +52,38 @@ function errorsToParsedErrors(error: unknown): Errors {
5252
captcha: null,
5353
legalAccepted: null,
5454
},
55-
raw: [],
56-
global: [],
55+
raw: null,
56+
global: null,
5757
};
5858

5959
if (!error) {
6060
return parsedErrors;
6161
}
6262

6363
if (!isClerkAPIResponseError(error)) {
64-
parsedErrors.raw.push(error);
65-
parsedErrors.global.push(error);
64+
parsedErrors.raw = [error];
65+
parsedErrors.global = [error];
6666
return parsedErrors;
6767
}
6868

69-
parsedErrors.raw.push(...error.errors);
70-
7169
error.errors.forEach(error => {
70+
if (parsedErrors.raw) {
71+
parsedErrors.raw.push(error);
72+
} else {
73+
parsedErrors.raw = [error];
74+
}
75+
7276
if ('meta' in error && error.meta && 'paramName' in error.meta) {
7377
const name = snakeToCamel(error.meta.paramName);
7478
parsedErrors.fields[name as keyof typeof parsedErrors.fields] = error;
7579
return;
7680
}
7781

78-
parsedErrors.global.push(error);
82+
if (parsedErrors.global) {
83+
parsedErrors.global.push(error);
84+
} else {
85+
parsedErrors.global = [error];
86+
}
7987
});
8088

8189
return parsedErrors;

packages/types/src/state.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ interface FieldErrors {
2222

2323
export interface Errors {
2424
fields: FieldErrors;
25-
raw: unknown[];
26-
global: unknown[]; // does not include any errors that could be parsed as a field error
25+
raw: unknown[] | null;
26+
global: unknown[] | null;
2727
}
2828

2929
export interface SignInSignal {

0 commit comments

Comments
 (0)