From da28c189a4202ee5dec8803ceb01f6996954d821 Mon Sep 17 00:00:00 2001 From: Taesu <166604494+bytaesu@users.noreply.github.com> Date: Sat, 17 Oct 2026 17:11:06 +0900 Subject: [PATCH] refactor(expo): narrow native scheme in request hooks (#11889) --- packages/expo/src/client.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/expo/src/client.ts b/packages/expo/src/client.ts index 696d9ced6c..ac21d78da2 100644 --- a/packages/expo/src/client.ts +++ b/packages/expo/src/client.ts @@ -308,8 +308,9 @@ export const expoClient = (opts: ExpoClientOptions) => { const rawScheme = opts?.scheme || Constants.expoConfig?.scheme || Constants.platform?.scheme; const scheme = Array.isArray(rawScheme) ? rawScheme[0] : rawScheme; + const nativeScheme = isWeb ? undefined : scheme; - if (!scheme && !isWeb) { + if (!nativeScheme && !isWeb) { throw new Error( "Scheme not found in app.json. Please provide a scheme in the options.", ); @@ -443,7 +444,7 @@ export const expoClient = (opts: ExpoClientOptions) => { }, }, async init(url, options) { - if (isWeb) { + if (!nativeScheme) { return { url, options: options as ClientFetchOption, @@ -469,7 +470,9 @@ export const expoClient = (opts: ExpoClientOptions) => { options.headers = { ...options.headers, ...(cookie ? { cookie } : {}), - ...(isLinkSocial ? { "expo-origin": getOrigin(scheme!) } : {}), + ...(isLinkSocial + ? { "expo-origin": getOrigin(nativeScheme) } + : {}), "x-skip-oauth-proxy": "true", }; } else { @@ -478,7 +481,7 @@ export const expoClient = (opts: ExpoClientOptions) => { options.headers = { ...options.headers, ...(cookie ? { cookie } : {}), - "expo-origin": getOrigin(scheme!), + "expo-origin": getOrigin(nativeScheme), "x-skip-oauth-proxy": "true", }; if (options.body?.callbackURL) {