import { NativeModules } from 'react-native' /** * Native module interface. Provided by XuqmVersionModule (auto-linked). * * Android: reads BuildConfig.VERSION_CODE / VERSION_NAME * iOS: reads CFBundleVersion / CFBundleShortVersionString * * If the native module is not linked (e.g. JS-only dev environment), * falls back to a value set via _devSetAppVersionCode(). */ interface XuqmVersionModuleInterface { getVersionCode: () => number getVersionName: () => string } const _native = NativeModules.XuqmVersionModule as XuqmVersionModuleInterface | undefined let _devVersionCode = 0 let _devVersionName = '0.0.0' /** Only for dev environments where the native module is not linked. */ export function _devSetAppVersion(versionCode: number, versionName = '0.0.0'): void { _devVersionCode = versionCode _devVersionName = versionName } export function getAppVersionCode(): number { try { if (_native?.getVersionCode) return _native.getVersionCode() } catch {} return _devVersionCode } export function getAppVersionName(): string { try { if (_native?.getVersionName) return _native.getVersionName() } catch {} return _devVersionName }