From b00c2edfb5303621423b64843e06abf414cb33d1 Mon Sep 17 00:00:00 2001 From: ChrisCanin Date: Wed, 18 Mar 2026 09:15:00 -0700 Subject: [PATCH 1/2] fix(expo): use NativeClerkModule.web.ts to fix Android codegen, restore TurboModuleRegistry.get pattern --- .changeset/fix-native-clerk-module-codegen.md | 5 +++++ packages/expo/src/specs/NativeClerkModule.ts | 2 +- packages/expo/src/specs/NativeClerkModule.web.ts | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 .changeset/fix-native-clerk-module-codegen.md create mode 100644 packages/expo/src/specs/NativeClerkModule.web.ts diff --git a/.changeset/fix-native-clerk-module-codegen.md b/.changeset/fix-native-clerk-module-codegen.md new file mode 100644 index 00000000000..078df5163ad --- /dev/null +++ b/.changeset/fix-native-clerk-module-codegen.md @@ -0,0 +1,5 @@ +--- +"@clerk/expo": patch +--- + +fix(expo): restore TurboModuleRegistry.get pattern in NativeClerkModule spec to fix Android new architecture codegen error; handle web via NativeClerkModule.web.ts diff --git a/packages/expo/src/specs/NativeClerkModule.ts b/packages/expo/src/specs/NativeClerkModule.ts index ad1464ebdc5..1c38d2c1f92 100644 --- a/packages/expo/src/specs/NativeClerkModule.ts +++ b/packages/expo/src/specs/NativeClerkModule.ts @@ -11,4 +11,4 @@ export interface Spec extends TurboModule { signOut(): Promise; } -export default TurboModuleRegistry?.get('ClerkExpo') ?? null; +export default TurboModuleRegistry.get('ClerkExpo'); diff --git a/packages/expo/src/specs/NativeClerkModule.web.ts b/packages/expo/src/specs/NativeClerkModule.web.ts new file mode 100644 index 00000000000..5c9fbf69f2c --- /dev/null +++ b/packages/expo/src/specs/NativeClerkModule.web.ts @@ -0,0 +1,3 @@ +export type { Spec } from './NativeClerkModule'; + +export default null; From 93d8593d9f8f09dd965848e6cdc64ed3bb9c1ce4 Mon Sep 17 00:00:00 2001 From: ChrisCanin Date: Mon, 23 Mar 2026 08:47:11 -0700 Subject: [PATCH 2/2] fix(expo): use any cast in web stub to avoid circular type import and never type errors --- packages/expo/src/specs/NativeClerkModule.web.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/expo/src/specs/NativeClerkModule.web.ts b/packages/expo/src/specs/NativeClerkModule.web.ts index 5c9fbf69f2c..bb4b30c6aa5 100644 --- a/packages/expo/src/specs/NativeClerkModule.web.ts +++ b/packages/expo/src/specs/NativeClerkModule.web.ts @@ -1,3 +1,4 @@ -export type { Spec } from './NativeClerkModule'; - -export default null; +// Web stub: TurboModuleRegistry doesn't exist on web, so we export null. +// Cast to any to match the native module's Spec | null type without circular imports. +// Metro resolves this file on web via platform-specific extensions (.web.ts). +export default null as any;