UNPKG

expo-constants

Version:

Provides system information that remains constant throughout the lifetime of your app.

94 lines (86 loc) 2.16 kB
import type { ExpoConfig } from 'expo/config'; import type { EmbeddedManifest, EASConfig, ExpoGoConfig, ExpoUpdatesManifest, } from 'expo-manifests'; import type { Manifest as UpdatesManifest } from 'expo-updates'; import { AndroidManifest, AppOwnership, Constants, ExecutionEnvironment, IOSManifest, NativeConstants, PlatformManifest, UserInterfaceIdiom, WebManifest, } from './Constants.types'; import ExponentConstants from './ExponentConstants.web.js'; type DevLauncherManifest = ExpoUpdatesManifest; export { AndroidManifest, AppOwnership, Constants, ExecutionEnvironment, IOSManifest, NativeConstants, PlatformManifest, UserInterfaceIdiom, WebManifest, }; type RawManifest = UpdatesManifest | DevLauncherManifest | ExpoConfig; const PARSED_MANIFEST: RawManifest = (() => { if (typeof ExponentConstants?.manifest === 'string') { return JSON.parse(ExponentConstants.manifest); } return ExponentConstants?.manifest as any; })(); const constants: Constants = ExponentConstants; Object.defineProperties(constants, { /** * Use `manifest` property by default. * This property is only used for internal purposes. * It behaves similarly to the original one, but suppresses warning upon no manifest available. * `expo-asset` uses it to prevent users from seeing mentioned warning. */ __unsafeNoWarnManifest: { get(): EmbeddedManifest | null { return PARSED_MANIFEST as any; }, enumerable: false, }, manifest: { get(): EmbeddedManifest | null { return PARSED_MANIFEST as any; }, enumerable: true, }, expoConfig: { get(): | (ExpoConfig & { /** * Only present during development using @expo/cli. */ hostUri?: string; }) | null { return PARSED_MANIFEST as any; }, enumerable: true, }, expoGoConfig: { get(): ExpoGoConfig | null { return PARSED_MANIFEST as any; }, enumerable: true, }, easConfig: { get(): EASConfig | null { return PARSED_MANIFEST as any; }, enumerable: true, }, }); export default constants as Constants;