Uh oh!
There was an error while loading. Please reload this page.
chore(clerk-react): Align types between Clerk and IsomorphicClerk - #5197
Conversation
🦋 Changeset detectedLatest commit: a7247a8 The changes in this PR will be included in the next version bump. This PR includes changesets to release 9 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
| type WithVoidReturn<F extends (...args: any) => any> = ( | ||
| ...args: Parameters<F> | ||
| ) => ReturnType<F> extends Promise<infer T> ? Promise<T | void> : ReturnType<F> | void; | ||
| type WithVoidReturnFunctions<T> = { | ||
| [K in keyof T]: T[K] extends (...args: any) => any ? WithVoidReturn<T[K]> : T[K]; | ||
| }; |
There was a problem hiding this comment.
Most methods were adjust to add | void to the return type, so I've gone ahead and created a helper type to do that automatically.
| WithVoidReturnFunctions<LoadedClerk>, | ||
| 'client' | '__internal_addNavigationListener' | '__internal_getCachedResources' | '__internal_reloadInitialResources' |
There was a problem hiding this comment.
I'm not sure if we need the __internal_ methods here, they don't exist today.
There was a problem hiding this comment.
yeah, some of the internals we need some we don't. I know that __internal_addNavigationListener is only needed within clerk-js, which makes me think we can refactor it 🤔.
| } | ||
| this.premountSignInNodes.forEach((props: SignInProps, node: HTMLDivElement) => { | ||
| this.premountSignInNodes.forEach((props, node) => { |
There was a problem hiding this comment.
I've also removed unnecessary type annotations and instead am relying on the underlying IsomorphicClerk type definition.
| }; | ||
| handleGoogleOneTapCallback = ( | ||
| handleGoogleOneTapCallback = async ( |
There was a problem hiding this comment.
🚨 Technically this is a breaking change at the type level.
There was a problem hiding this comment.
This aligns with the underlying Clerk type I believe 👀
There was a problem hiding this comment.
Here: https://github.com/clerk/javascript/blob/main/packages/types/src/clerk.ts#L540-L544
Another reason to ensure these types are sourced from the same place 😅
panteliselef
commented
Feb 19, 2025
!snapshot |
clerk-cookie
commented
Feb 19, 2025
Hey @panteliselef - the snapshot version command generated the following package versions:
Tip: Use the snippet copy button below to quickly install the required packages. npm i @clerk/agent-toolkit@0.0.4-snapshot.v20250219155214 --save-exact
npm i @clerk/astro@2.3.0-snapshot.v20250219155214 --save-exact
npm i @clerk/backend@1.24.3-snapshot.v20250219155214 --save-exact
npm i @clerk/chrome-extension@2.2.11-snapshot.v20250219155214 --save-exact
npm i @clerk/clerk-js@5.54.0-snapshot.v20250219155214 --save-exact
npm i @clerk/elements@0.23.0-snapshot.v20250219155214 --save-exact
npm i @clerk/clerk-expo@2.8.0-snapshot.v20250219155214 --save-exact
npm i @clerk/expo-passkeys@0.1.22-snapshot.v20250219155214 --save-exact
npm i @clerk/express@1.3.50-snapshot.v20250219155214 --save-exact
npm i @clerk/fastify@2.1.23-snapshot.v20250219155214 --save-exact
npm i @clerk/localizations@3.10.8-snapshot.v20250219155214 --save-exact
npm i @clerk/nextjs@6.12.1-snapshot.v20250219155214 --save-exact
npm i @clerk/nuxt@1.2.1-snapshot.v20250219155214 --save-exact
npm i @clerk/clerk-react@5.24.0-snapshot.v20250219155214 --save-exact
npm i @clerk/react-router@1.1.1-snapshot.v20250219155214 --save-exact
npm i @clerk/remix@4.5.1-snapshot.v20250219155214 --save-exact
npm i @clerk/shared@2.23.0-snapshot.v20250219155214 --save-exact
npm i @clerk/tanstack-start@0.10.1-snapshot.v20250219155214 --save-exact
npm i @clerk/testing@1.4.24-snapshot.v20250219155214 --save-exact
npm i @clerk/themes@2.2.20-snapshot.v20250219155214 --save-exact
npm i @clerk/types@4.47.0-snapshot.v20250219155214 --save-exact
npm i @clerk/ui@0.3.25-snapshot.v20250219155214 --save-exact
npm i @clerk/vue@1.3.0-snapshot.v20250219155214 --save-exact |
Description
Aligns types between
IsomorphicClerkandClerkto ensure the implementation remains in sync.Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change