Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/good-toys-serve.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
'@clerk/shared': patch
'@clerk/types': patch
---

Export `ClerkAPIResponseError` interface from types package.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ exports[`Typedoc output > should have a deliberate file structure 1`] = `
"types/check-authorization-params-from-session-claims.mdx",
"types/check-authorization-with-custom-permissions.mdx",
"types/clerk-api-error.mdx",
"types/clerk-api-response-error.mdx",
"types/clerk-host-router.mdx",
"types/clerk-jwt-claims.mdx",
"types/clerk-paginated-response.mdx",
Expand Down
8 changes: 6 additions & 2 deletions packages/shared/src/error.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
import type { ClerkAPIError, ClerkAPIErrorJSON } from '@clerk/types';
import type {
ClerkAPIError,
ClerkAPIErrorJSON,
ClerkAPIResponseError as ClerkAPIResponseErrorInterface,
} from '@clerk/types';

export function isUnauthorizedError(e: any): boolean {
const status = e?.status;
Expand Down Expand Up @@ -116,7 +120,7 @@ export function errorToJSON(error: ClerkAPIError | null): ClerkAPIErrorJSON {
};
}

export class ClerkAPIResponseError extends Error {
export class ClerkAPIResponseError extends Error implements ClerkAPIResponseErrorInterface {
clerkError: true;

status: number;
Expand Down
12 changes: 12 additions & 0 deletions packages/types/src/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,15 @@ export interface ClerkRuntimeError {
code: string;
message: string;
}

/**
* Interface representing a Clerk API Response Error.
*/
export interface ClerkAPIResponseError extends Error {
clerkError: true;
status: number;
message: string;
clerkTraceId?: string;
retryAfter?: number;
errors: ClerkAPIError[];
}
Loading