diff --git a/packages/env-utils/src/envUtils.native.ts b/packages/env-utils/src/envUtils.native.ts index 6a14b5083c..84a7b311b8 100644 --- a/packages/env-utils/src/envUtils.native.ts +++ b/packages/env-utils/src/envUtils.native.ts @@ -28,6 +28,8 @@ const getDeviceType = () => ''; const getOsVersion = () => Promise.resolve(`${Platform.Version}`); const getDeprecatedOsVersion = () => `${Platform.Version}`; +const getCpuArch = () => Promise.resolve(''); + const getSuiteVersion = () => Constants.expoConfig?.version || ''; const getCommitHash = () => Constants.expoConfig?.extra?.commitHash; @@ -94,6 +96,7 @@ export const envUtils: EnvUtils = { getDeviceType, getOsVersion, getDeprecatedOsVersion, + getCpuArch, getSuiteVersion, isFirefox, getPlatform, diff --git a/packages/env-utils/src/envUtils.ts b/packages/env-utils/src/envUtils.ts index b4efdddc7b..c030f7d8b5 100644 --- a/packages/env-utils/src/envUtils.ts +++ b/packages/env-utils/src/envUtils.ts @@ -50,6 +50,15 @@ const getOsVersion = async () => { /** @deprecated: Use the async getOsVersion instead. */ const getDeprecatedOsVersion = () => getUserAgentParser().getOS().version || ''; +/** + * Similar to `getOsVersion`. Here, the sync fn works everywhere but macOS, hence we use async. + */ +const getCpuArch = async () => { + const { architecture } = await getUserAgentParser().getCPU().withClientHints(); + + return architecture ?? ''; +}; + const getSuiteVersion = () => process.env.VERSION || ''; const getBrowserName = () => { @@ -147,6 +156,7 @@ export const envUtils: EnvUtils = { isChromeOs, getOsVersion, getDeprecatedOsVersion, + getCpuArch, getBrowserName, getBrowserVersion, getCommitHash, diff --git a/packages/env-utils/src/index.ts b/packages/env-utils/src/index.ts index f9a17576d1..7f72b3cd27 100644 --- a/packages/env-utils/src/index.ts +++ b/packages/env-utils/src/index.ts @@ -16,6 +16,7 @@ export const { getDeviceType, getOsVersion, getDeprecatedOsVersion, + getCpuArch, getSuiteVersion, isFirefox, getPlatform, diff --git a/packages/env-utils/src/types.ts b/packages/env-utils/src/types.ts index 027b7ca474..a267e20754 100644 --- a/packages/env-utils/src/types.ts +++ b/packages/env-utils/src/types.ts @@ -14,6 +14,7 @@ export interface EnvUtils { getDeviceType: () => string | undefined; getOsVersion: () => Promise; getDeprecatedOsVersion: () => string; + getCpuArch: () => Promise; getSuiteVersion: () => string; isFirefox: () => boolean; getPlatform: () => string;