1*082815dcSEvan Baconimport type { ExpoConfig } from '@expo/config-types'; 2*082815dcSEvan Baconimport semver from 'semver'; 3*082815dcSEvan Bacon 4*082815dcSEvan Baconexport function gteSdkVersion(exp: Pick<ExpoConfig, 'sdkVersion'>, sdkVersion: string): boolean { 5*082815dcSEvan Bacon if (!exp.sdkVersion) { 6*082815dcSEvan Bacon return false; 7*082815dcSEvan Bacon } 8*082815dcSEvan Bacon 9*082815dcSEvan Bacon if (exp.sdkVersion === 'UNVERSIONED') { 10*082815dcSEvan Bacon return true; 11*082815dcSEvan Bacon } 12*082815dcSEvan Bacon 13*082815dcSEvan Bacon try { 14*082815dcSEvan Bacon return semver.gte(exp.sdkVersion, sdkVersion); 15*082815dcSEvan Bacon } catch { 16*082815dcSEvan Bacon throw new Error(`${exp.sdkVersion} is not a valid version. Must be in the form of x.y.z`); 17*082815dcSEvan Bacon } 18*082815dcSEvan Bacon} 19*082815dcSEvan Bacon 20*082815dcSEvan Baconexport function lteSdkVersion(exp: Pick<ExpoConfig, 'sdkVersion'>, sdkVersion: string): boolean { 21*082815dcSEvan Bacon if (!exp.sdkVersion) { 22*082815dcSEvan Bacon return false; 23*082815dcSEvan Bacon } 24*082815dcSEvan Bacon 25*082815dcSEvan Bacon if (exp.sdkVersion === 'UNVERSIONED') { 26*082815dcSEvan Bacon return false; 27*082815dcSEvan Bacon } 28*082815dcSEvan Bacon 29*082815dcSEvan Bacon try { 30*082815dcSEvan Bacon return semver.lte(exp.sdkVersion, sdkVersion); 31*082815dcSEvan Bacon } catch { 32*082815dcSEvan Bacon throw new Error(`${exp.sdkVersion} is not a valid version. Must be in the form of x.y.z`); 33*082815dcSEvan Bacon } 34*082815dcSEvan Bacon} 35