1082815dcSEvan Baconimport { ExpoConfig } from '@expo/config-types';
2082815dcSEvan Bacon
3082815dcSEvan Baconimport { InfoPlist } from './IosConfig.types';
4*8a424bebSJames Ideimport { createInfoPlistPluginWithPropertyGuard } from '../plugins/ios-plugins';
5082815dcSEvan Bacon
6082815dcSEvan Baconexport const withVersion = createInfoPlistPluginWithPropertyGuard(
7082815dcSEvan Bacon  setVersion,
8082815dcSEvan Bacon  {
9082815dcSEvan Bacon    infoPlistProperty: 'CFBundleShortVersionString',
10082815dcSEvan Bacon    expoConfigProperty: 'version',
11082815dcSEvan Bacon  },
12082815dcSEvan Bacon  'withVersion'
13082815dcSEvan Bacon);
14082815dcSEvan Bacon
15082815dcSEvan Baconexport const withBuildNumber = createInfoPlistPluginWithPropertyGuard(
16082815dcSEvan Bacon  setBuildNumber,
17082815dcSEvan Bacon  {
18082815dcSEvan Bacon    infoPlistProperty: 'CFBundleVersion',
19082815dcSEvan Bacon    expoConfigProperty: 'ios.buildNumber',
20082815dcSEvan Bacon  },
21082815dcSEvan Bacon  'withBuildNumber'
22082815dcSEvan Bacon);
23082815dcSEvan Bacon
24082815dcSEvan Baconexport function getVersion(config: Pick<ExpoConfig, 'version'>) {
25082815dcSEvan Bacon  return config.version || '1.0.0';
26082815dcSEvan Bacon}
27082815dcSEvan Bacon
28082815dcSEvan Baconexport function setVersion(config: Pick<ExpoConfig, 'version'>, infoPlist: InfoPlist): InfoPlist {
29082815dcSEvan Bacon  return {
30082815dcSEvan Bacon    ...infoPlist,
31082815dcSEvan Bacon    CFBundleShortVersionString: getVersion(config),
32082815dcSEvan Bacon  };
33082815dcSEvan Bacon}
34082815dcSEvan Bacon
35082815dcSEvan Baconexport function getBuildNumber(config: Pick<ExpoConfig, 'ios'>) {
36082815dcSEvan Bacon  return config.ios?.buildNumber ? config.ios.buildNumber : '1';
37082815dcSEvan Bacon}
38082815dcSEvan Bacon
39082815dcSEvan Baconexport function setBuildNumber(config: Pick<ExpoConfig, 'ios'>, infoPlist: InfoPlist): InfoPlist {
40082815dcSEvan Bacon  return {
41082815dcSEvan Bacon    ...infoPlist,
42082815dcSEvan Bacon    CFBundleVersion: getBuildNumber(config),
43082815dcSEvan Bacon  };
44082815dcSEvan Bacon}
45