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