eas-cli 3.14.0 → 3.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -61
- package/build/build/build.js +23 -9
- package/build/build/errors.d.ts +6 -0
- package/build/build/errors.js +10 -1
- package/build/build/local.js +1 -1
- package/build/build/queries.js +1 -0
- package/build/build/runBuildAndSubmit.js +4 -1
- package/build/commandUtils/EasCommand.js +8 -5
- package/build/commands/build/configure.js +6 -1
- package/build/commands/build/run.js +1 -1
- package/build/commands/update/configure.js +2 -2
- package/build/commands/update/index.js +1 -0
- package/build/commands/update/republish.js +1 -0
- package/build/graphql/client.js +8 -1
- package/build/project/expoConfig.d.ts +1 -0
- package/build/project/expoConfig.js +12 -6
- package/build/project/publish.js +1 -1
- package/build/update/configure.d.ts +7 -2
- package/build/update/configure.js +63 -10
- package/oclif.manifest.json +1 -1
- package/package.json +8 -8
|
@@ -10,7 +10,7 @@ const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
|
|
|
10
10
|
const generated_1 = require("../graphql/generated");
|
|
11
11
|
const BuildQuery_1 = require("../graphql/queries/BuildQuery");
|
|
12
12
|
const AppPlatform_1 = require("../graphql/types/AppPlatform");
|
|
13
|
-
const log_1 = tslib_1.
|
|
13
|
+
const log_1 = tslib_1.__importStar(require("../log"));
|
|
14
14
|
const platform_1 = require("../platform");
|
|
15
15
|
const customBuildConfig_1 = require("../project/customBuildConfig");
|
|
16
16
|
const expoSdk_1 = require("../project/expoSdk");
|
|
@@ -56,6 +56,9 @@ async function runBuildAndSubmitAsync(graphqlClient, analytics, projectDir, flag
|
|
|
56
56
|
platforms,
|
|
57
57
|
profileName: (_b = flags.profile) !== null && _b !== void 0 ? _b : undefined,
|
|
58
58
|
});
|
|
59
|
+
log_1.default.log(`Loaded "env" configuration for the "${buildProfiles[0].profileName}" profile: ${buildProfiles[0].profile.env
|
|
60
|
+
? Object.keys(buildProfiles[0].profile.env).join(', ')
|
|
61
|
+
: 'no environment variables specified'}. ${(0, log_1.learnMore)('https://docs.expo.dev/build-reference/variables/')}`);
|
|
59
62
|
await (0, devClient_1.ensureExpoDevClientInstalledForDevClientBuildsAsync)({
|
|
60
63
|
projectDir,
|
|
61
64
|
nonInteractive: flags.nonInteractive,
|
|
@@ -63,16 +63,19 @@ class EasCommand extends core_1.Command {
|
|
|
63
63
|
return super.finally(err);
|
|
64
64
|
}
|
|
65
65
|
catch(err) {
|
|
66
|
-
var _a, _b, _c;
|
|
67
66
|
let baseMessage = `${this.id} command failed.`;
|
|
68
67
|
if (err instanceof errors_1.EasCommandError) {
|
|
69
68
|
log_1.default.error(err.message);
|
|
70
69
|
}
|
|
71
70
|
else if (err instanceof core_2.CombinedError && (err === null || err === void 0 ? void 0 : err.graphQLErrors)) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
:
|
|
71
|
+
const cleanMessage = err === null || err === void 0 ? void 0 : err.graphQLErrors.map((graphQLError) => {
|
|
72
|
+
var _a;
|
|
73
|
+
const messageLine = graphQLError.message.replace('[GraphQL] ', '');
|
|
74
|
+
const requestIdLine = ((_a = graphQLError.extensions) === null || _a === void 0 ? void 0 : _a.requestId)
|
|
75
|
+
? `\nRequest ID: ${err.graphQLErrors[0].extensions.requestId}`
|
|
76
|
+
: '';
|
|
77
|
+
return `${messageLine}${requestIdLine}`;
|
|
78
|
+
}).join('\n');
|
|
76
79
|
log_1.default.error(cleanMessage);
|
|
77
80
|
baseMessage = BASE_GRAPHQL_ERROR_MESSAGE;
|
|
78
81
|
}
|
|
@@ -19,7 +19,7 @@ const UpdatesModule_2 = require("../../update/ios/UpdatesModule");
|
|
|
19
19
|
const vcs_1 = require("../../vcs");
|
|
20
20
|
class BuildConfigure extends EasCommand_1.default {
|
|
21
21
|
async runAsync() {
|
|
22
|
-
var _b;
|
|
22
|
+
var _b, _c;
|
|
23
23
|
const { flags } = await this.parse(BuildConfigure);
|
|
24
24
|
const { privateProjectConfig: { exp, projectId, projectDir }, loggedIn: { graphqlClient }, } = await this.getContextAsync(BuildConfigure, {
|
|
25
25
|
nonInteractive: false,
|
|
@@ -39,6 +39,11 @@ class BuildConfigure extends EasCommand_1.default {
|
|
|
39
39
|
nonInteractive: false,
|
|
40
40
|
});
|
|
41
41
|
if (didCreateEasJson && (0, projectUtils_1.isUsingEASUpdate)(exp, projectId)) {
|
|
42
|
+
if ((_c = exp.updates) === null || _c === void 0 ? void 0 : _c.useClassicUpdates) {
|
|
43
|
+
// NOTE: this method modifies the Expo config; be sure to use this function's return value
|
|
44
|
+
// if the config object is used later in the future
|
|
45
|
+
await (0, configure_2.ensureUseClassicUpdatesIsRemovedAsync)({ exp, projectDir });
|
|
46
|
+
}
|
|
42
47
|
await (0, configure_2.ensureEASUpdateIsConfiguredInEasJsonAsync)(projectDir);
|
|
43
48
|
}
|
|
44
49
|
// configure expo-updates
|
|
@@ -139,7 +139,7 @@ async function maybeGetBuildAsync(graphqlClient, flags, projectId, paginatedQuer
|
|
|
139
139
|
},
|
|
140
140
|
paginatedQueryOptions,
|
|
141
141
|
selectPromptDisabledFunction: build => !(0, utils_1.isRunnableOnSimulatorOrEmulator)(build),
|
|
142
|
-
selectPromptWarningMessage:
|
|
142
|
+
selectPromptWarningMessage: `Artifacts for this build have expired and are no longer available, or this is not ${flags.selectedPlatform === generated_1.AppPlatform.Ios ? 'a simulator' : 'an emulator'} build.`,
|
|
143
143
|
});
|
|
144
144
|
return validateChosenBuild(build, flags.selectedPlatform);
|
|
145
145
|
}
|
|
@@ -17,7 +17,7 @@ class UpdateConfigure extends EasCommand_1.default {
|
|
|
17
17
|
const { privateProjectConfig: { projectId, exp, projectDir }, loggedIn: { graphqlClient }, } = await this.getContextAsync(UpdateConfigure, {
|
|
18
18
|
nonInteractive: flags['non-interactive'],
|
|
19
19
|
});
|
|
20
|
-
log_1.default.log('💡 The following process will configure your project to
|
|
20
|
+
log_1.default.log('💡 The following process will configure your project to use EAS Update. These changes only apply to your local project files and you can safely revert them at any time.');
|
|
21
21
|
await (0, vcs_1.getVcsClient)().ensureRepoExistsAsync();
|
|
22
22
|
await (0, configure_2.ensureEASUpdateIsConfiguredAsync)(graphqlClient, {
|
|
23
23
|
exp,
|
|
@@ -27,7 +27,7 @@ class UpdateConfigure extends EasCommand_1.default {
|
|
|
27
27
|
});
|
|
28
28
|
await (0, configure_2.ensureEASUpdateIsConfiguredInEasJsonAsync)(projectDir);
|
|
29
29
|
log_1.default.addNewLineIfNone();
|
|
30
|
-
log_1.default.log(`🎉 Your app is configured
|
|
30
|
+
log_1.default.log(`🎉 Your app is configured to use EAS Update!`);
|
|
31
31
|
log_1.default.newLine();
|
|
32
32
|
const easJsonExists = await (0, configure_1.easJsonExistsAsync)(projectDir);
|
|
33
33
|
if (!easJsonExists) {
|
package/build/graphql/client.js
CHANGED
|
@@ -8,7 +8,14 @@ const log_1 = tslib_1.__importDefault(require("../log"));
|
|
|
8
8
|
async function withErrorHandlingAsync(promise) {
|
|
9
9
|
const { data, error } = await promise;
|
|
10
10
|
if (error) {
|
|
11
|
-
if (error.graphQLErrors.some(e => {
|
|
11
|
+
if (error.graphQLErrors.some(e => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
return ((_a = e === null || e === void 0 ? void 0 : e.extensions) === null || _a === void 0 ? void 0 : _a.isTransient) &&
|
|
14
|
+
![
|
|
15
|
+
'EAS_BUILD_FREE_TIER_LIMIT_EXCEEDED',
|
|
16
|
+
'EAS_BUILD_FREE_TIER_IOS_LIMIT_EXCEEDED',
|
|
17
|
+
].includes((_b = e === null || e === void 0 ? void 0 : e.extensions) === null || _b === void 0 ? void 0 : _b.errorCode);
|
|
18
|
+
})) {
|
|
12
19
|
log_1.default.error(`We've encountered a transient error. Try again shortly.`);
|
|
13
20
|
}
|
|
14
21
|
throw error;
|
|
@@ -14,4 +14,5 @@ export declare function createOrModifyExpoConfigAsync(projectDir: string, exp: P
|
|
|
14
14
|
}): ReturnType<typeof modifyConfigAsync>;
|
|
15
15
|
export declare function getPrivateExpoConfig(projectDir: string, opts?: ExpoConfigOptions): ExpoConfig;
|
|
16
16
|
export declare function ensureExpoConfigExists(projectDir: string): void;
|
|
17
|
+
export declare function isUsingStaticExpoConfig(projectDir: string): boolean;
|
|
17
18
|
export declare function getPublicExpoConfig(projectDir: string, opts?: ExpoConfigOptions): PublicExpoConfig;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPublicExpoConfig = exports.ensureExpoConfigExists = exports.getPrivateExpoConfig = exports.createOrModifyExpoConfigAsync = void 0;
|
|
3
|
+
exports.getPublicExpoConfig = exports.isUsingStaticExpoConfig = exports.ensureExpoConfigExists = exports.getPrivateExpoConfig = exports.createOrModifyExpoConfigAsync = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const config_1 = require("@expo/config");
|
|
6
6
|
const json_file_1 = tslib_1.__importDefault(require("@expo/json-file"));
|
|
7
7
|
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
8
8
|
const joi_1 = tslib_1.__importDefault(require("joi"));
|
|
9
|
+
const nullthrows_1 = tslib_1.__importDefault(require("nullthrows"));
|
|
9
10
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
10
11
|
async function createOrModifyExpoConfigAsync(projectDir, exp, readOptions) {
|
|
11
12
|
ensureExpoConfigExists(projectDir);
|
|
@@ -67,18 +68,23 @@ function ensureExpoConfigExists(projectDir) {
|
|
|
67
68
|
}
|
|
68
69
|
exports.ensureExpoConfigExists = ensureExpoConfigExists;
|
|
69
70
|
async function ensureStaticExpoConfigIsValidAsync(projectDir) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const staticConfig = await json_file_1.default.readAsync(paths.staticConfigPath);
|
|
71
|
+
if (isUsingStaticExpoConfig(projectDir)) {
|
|
72
|
+
const staticConfigPath = (0, nullthrows_1.default)((0, config_1.getConfigFilePaths)(projectDir).staticConfigPath);
|
|
73
|
+
const staticConfig = await json_file_1.default.readAsync(staticConfigPath);
|
|
74
74
|
// Add the "expo" key if it doesn't exist on app.json yet, such as in
|
|
75
75
|
// projects initialized with RNC CLI
|
|
76
76
|
if (!(staticConfig === null || staticConfig === void 0 ? void 0 : staticConfig.expo)) {
|
|
77
77
|
staticConfig.expo = {};
|
|
78
|
-
await json_file_1.default.writeAsync(
|
|
78
|
+
await json_file_1.default.writeAsync(staticConfigPath, staticConfig);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
+
function isUsingStaticExpoConfig(projectDir) {
|
|
83
|
+
var _a;
|
|
84
|
+
const paths = (0, config_1.getConfigFilePaths)(projectDir);
|
|
85
|
+
return !!(((_a = paths.staticConfigPath) === null || _a === void 0 ? void 0 : _a.endsWith('app.json')) && !paths.dynamicConfigPath);
|
|
86
|
+
}
|
|
87
|
+
exports.isUsingStaticExpoConfig = isUsingStaticExpoConfig;
|
|
82
88
|
function getPublicExpoConfig(projectDir, opts = {}) {
|
|
83
89
|
ensureExpoConfigExists(projectDir);
|
|
84
90
|
return getExpoConfigInternal(projectDir, { ...opts, isPublicConfig: true });
|
package/build/project/publish.js
CHANGED
|
@@ -452,7 +452,7 @@ async function getRuntimeVersionObjectAsync(exp, platforms, projectDir) {
|
|
|
452
452
|
const isManaged = (await (0, workflow_1.resolveWorkflowAsync)(projectDir, platform)) ===
|
|
453
453
|
eas_build_job_1.Workflow.MANAGED;
|
|
454
454
|
if (!isManaged) {
|
|
455
|
-
throw new Error('
|
|
455
|
+
throw new Error(`You're currently using the bare workflow, where runtime version policies are not supported. You must set your runtime version manually. For example, define your runtime version as "1.0.0", not {"policy": "appVersion"} in your app config. ${(0, log_1.learnMore)('https://docs.expo.dev/eas-update/runtime-versions')}`);
|
|
456
456
|
}
|
|
457
457
|
}
|
|
458
458
|
}
|
|
@@ -12,15 +12,20 @@ export declare function ensureEASUpdateIsConfiguredInEasJsonAsync(projectDir: st
|
|
|
12
12
|
/**
|
|
13
13
|
* Make sure EAS Update is fully configured in the current project.
|
|
14
14
|
* This goes over a checklist and performs the following checks or changes:
|
|
15
|
-
* -
|
|
15
|
+
* - Ensure `updates.useClassicUpdates` (SDK 49) is not set in the app config
|
|
16
|
+
* - Ensure the `expo-updates` package is currently installed.
|
|
16
17
|
* - Ensure `app.json` is configured for EAS Updates
|
|
17
18
|
* - Sets `runtimeVersion` if not set
|
|
18
19
|
* - Sets `updates.url` if not set
|
|
19
20
|
* - Ensure latest changes are reflected in the native config, if any
|
|
20
21
|
*/
|
|
21
|
-
export declare function ensureEASUpdateIsConfiguredAsync(graphqlClient: ExpoGraphqlClient, { exp:
|
|
22
|
+
export declare function ensureEASUpdateIsConfiguredAsync(graphqlClient: ExpoGraphqlClient, { exp: expMaybeWithoutUpdates, projectId, projectDir, platform, }: {
|
|
22
23
|
exp: ExpoConfig;
|
|
23
24
|
projectId: string;
|
|
24
25
|
projectDir: string;
|
|
25
26
|
platform: RequestedPlatform | null;
|
|
26
27
|
}): Promise<void>;
|
|
28
|
+
export declare function ensureUseClassicUpdatesIsRemovedAsync({ exp: expMaybeWithoutUpdates, projectDir, }: {
|
|
29
|
+
exp: ExpoConfig;
|
|
30
|
+
projectDir: string;
|
|
31
|
+
}): Promise<ExpoConfig>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ensureEASUpdateIsConfiguredAsync = exports.ensureEASUpdateIsConfiguredInEasJsonAsync = exports.DEFAULT_BARE_RUNTIME_VERSION = exports.DEFAULT_MANAGED_RUNTIME_VERSION = void 0;
|
|
3
|
+
exports.ensureUseClassicUpdatesIsRemovedAsync = exports.ensureEASUpdateIsConfiguredAsync = exports.ensureEASUpdateIsConfiguredInEasJsonAsync = exports.DEFAULT_BARE_RUNTIME_VERSION = exports.DEFAULT_MANAGED_RUNTIME_VERSION = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const eas_build_job_1 = require("@expo/eas-build-job");
|
|
6
6
|
const eas_json_1 = require("@expo/eas-json");
|
|
@@ -13,6 +13,7 @@ const platform_1 = require("../platform");
|
|
|
13
13
|
const expoConfig_1 = require("../project/expoConfig");
|
|
14
14
|
const projectUtils_1 = require("../project/projectUtils");
|
|
15
15
|
const workflow_1 = require("../project/workflow");
|
|
16
|
+
const prompts_1 = require("../prompts");
|
|
16
17
|
const UpdatesModule_1 = require("./android/UpdatesModule");
|
|
17
18
|
const UpdatesModule_2 = require("./ios/UpdatesModule");
|
|
18
19
|
exports.DEFAULT_MANAGED_RUNTIME_VERSION = { policy: 'sdkVersion' };
|
|
@@ -118,18 +119,33 @@ async function ensureEASUpdatesIsConfiguredInExpoConfigAsync({ exp, projectId, p
|
|
|
118
119
|
throw new Error(`Unexpected result type "${result.type}" received when modifying the project config.`);
|
|
119
120
|
}
|
|
120
121
|
}
|
|
122
|
+
function serializeRuntimeVersionToString(runtimeVersion) {
|
|
123
|
+
if (typeof runtimeVersion === 'object') {
|
|
124
|
+
return JSON.stringify(runtimeVersion);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
return runtimeVersion;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
121
130
|
function logEasUpdatesAutoConfig({ modifyConfig, exp, }) {
|
|
122
|
-
var _a, _b, _c, _d, _e, _f
|
|
131
|
+
var _a, _b, _c, _d, _e, _f;
|
|
123
132
|
if ((_a = modifyConfig.updates) === null || _a === void 0 ? void 0 : _a.url) {
|
|
124
133
|
log_1.default.withTick(((_b = exp.updates) === null || _b === void 0 ? void 0 : _b.url)
|
|
125
134
|
? `Overwrote updates.url "${exp.updates.url}" with "${modifyConfig.updates.url}"`
|
|
126
135
|
: `Configured updates.url to "${modifyConfig.updates.url}"`);
|
|
127
136
|
}
|
|
128
|
-
|
|
129
|
-
|
|
137
|
+
const androidRuntime = (_d = (_c = modifyConfig.android) === null || _c === void 0 ? void 0 : _c.runtimeVersion) !== null && _d !== void 0 ? _d : modifyConfig.runtimeVersion;
|
|
138
|
+
const iosRuntime = (_f = (_e = modifyConfig.ios) === null || _e === void 0 ? void 0 : _e.runtimeVersion) !== null && _f !== void 0 ? _f : modifyConfig.runtimeVersion;
|
|
139
|
+
if (androidRuntime && iosRuntime && androidRuntime === iosRuntime) {
|
|
140
|
+
log_1.default.withTick(`Configured runtimeVersion for ${platform_1.appPlatformDisplayNames[generated_1.AppPlatform.Android]} and ${platform_1.appPlatformDisplayNames[generated_1.AppPlatform.Ios]} with "${serializeRuntimeVersionToString(androidRuntime)}"`);
|
|
130
141
|
}
|
|
131
|
-
|
|
132
|
-
|
|
142
|
+
else {
|
|
143
|
+
if (androidRuntime) {
|
|
144
|
+
log_1.default.withTick(`Configured runtimeVersion for ${platform_1.appPlatformDisplayNames[generated_1.AppPlatform.Android]} with "${serializeRuntimeVersionToString(androidRuntime)}"`);
|
|
145
|
+
}
|
|
146
|
+
if (iosRuntime) {
|
|
147
|
+
log_1.default.withTick(`Configured runtimeVersion for ${platform_1.appPlatformDisplayNames[generated_1.AppPlatform.Ios]} with "${serializeRuntimeVersionToString(iosRuntime)}"`);
|
|
148
|
+
}
|
|
133
149
|
}
|
|
134
150
|
}
|
|
135
151
|
function warnEASUpdatesManualConfig({ modifyConfig, workflows, }) {
|
|
@@ -204,14 +220,23 @@ exports.ensureEASUpdateIsConfiguredInEasJsonAsync = ensureEASUpdateIsConfiguredI
|
|
|
204
220
|
/**
|
|
205
221
|
* Make sure EAS Update is fully configured in the current project.
|
|
206
222
|
* This goes over a checklist and performs the following checks or changes:
|
|
207
|
-
* -
|
|
223
|
+
* - Ensure `updates.useClassicUpdates` (SDK 49) is not set in the app config
|
|
224
|
+
* - Ensure the `expo-updates` package is currently installed.
|
|
208
225
|
* - Ensure `app.json` is configured for EAS Updates
|
|
209
226
|
* - Sets `runtimeVersion` if not set
|
|
210
227
|
* - Sets `updates.url` if not set
|
|
211
228
|
* - Ensure latest changes are reflected in the native config, if any
|
|
212
229
|
*/
|
|
213
|
-
async function ensureEASUpdateIsConfiguredAsync(graphqlClient, { exp:
|
|
214
|
-
|
|
230
|
+
async function ensureEASUpdateIsConfiguredAsync(graphqlClient, { exp: expMaybeWithoutUpdates, projectId, projectDir, platform, }) {
|
|
231
|
+
var _a;
|
|
232
|
+
// EAS Update and SDK 49's "useClassicUpdates" option are mutually exclusive
|
|
233
|
+
if ((_a = expMaybeWithoutUpdates.updates) === null || _a === void 0 ? void 0 : _a.useClassicUpdates) {
|
|
234
|
+
expMaybeWithoutUpdates = await ensureUseClassicUpdatesIsRemovedAsync({
|
|
235
|
+
exp: expMaybeWithoutUpdates,
|
|
236
|
+
projectDir,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
const hasExpoUpdates = (0, projectUtils_1.isExpoUpdatesInstalledOrAvailable)(projectDir, expMaybeWithoutUpdates.sdkVersion);
|
|
215
240
|
const hasExpoUpdatesInDevDependencies = (0, projectUtils_1.isExpoUpdatesInstalledAsDevDependency)(projectDir);
|
|
216
241
|
if (!hasExpoUpdates && !hasExpoUpdatesInDevDependencies) {
|
|
217
242
|
await (0, projectUtils_1.installExpoUpdatesAsync)(projectDir, { silent: false });
|
|
@@ -227,7 +252,7 @@ async function ensureEASUpdateIsConfiguredAsync(graphqlClient, { exp: expWithout
|
|
|
227
252
|
}
|
|
228
253
|
const workflows = await (0, workflow_1.resolveWorkflowPerPlatformAsync)(projectDir);
|
|
229
254
|
const { projectChanged, exp: expWithUpdates } = await ensureEASUpdatesIsConfiguredInExpoConfigAsync({
|
|
230
|
-
exp:
|
|
255
|
+
exp: expMaybeWithoutUpdates,
|
|
231
256
|
projectDir,
|
|
232
257
|
projectId,
|
|
233
258
|
platform,
|
|
@@ -249,3 +274,31 @@ async function ensureEASUpdateIsConfiguredAsync(graphqlClient, { exp: expWithout
|
|
|
249
274
|
}
|
|
250
275
|
}
|
|
251
276
|
exports.ensureEASUpdateIsConfiguredAsync = ensureEASUpdateIsConfiguredAsync;
|
|
277
|
+
async function ensureUseClassicUpdatesIsRemovedAsync({ exp: expMaybeWithoutUpdates, projectDir, }) {
|
|
278
|
+
if (!(0, expoConfig_1.isUsingStaticExpoConfig)(projectDir)) {
|
|
279
|
+
throw new Error(`Your app config sets "updates.useClassicUpdates" but EAS Update does not support classic updates. Remove "useClassicUpdates" from your app config and run this command again.`);
|
|
280
|
+
}
|
|
281
|
+
const shouldEditConfig = await (0, prompts_1.confirmAsync)({
|
|
282
|
+
message: `Your app config sets "updates.useClassicUpdates" but EAS Update does not support classic updates. Remove "updates.useClassicUpdates" from your app config?`,
|
|
283
|
+
});
|
|
284
|
+
if (!shouldEditConfig) {
|
|
285
|
+
throw new Error(`Manually remove "updates.useClassicUpdates" from your app config and run this command again.`);
|
|
286
|
+
}
|
|
287
|
+
const editedExpoConfig = mergeExpoConfig(expMaybeWithoutUpdates, {
|
|
288
|
+
updates: { useClassicUpdates: undefined },
|
|
289
|
+
});
|
|
290
|
+
const result = await (0, expoConfig_1.createOrModifyExpoConfigAsync)(projectDir, editedExpoConfig);
|
|
291
|
+
switch (result.type) {
|
|
292
|
+
case 'success':
|
|
293
|
+
log_1.default.withTick(`Removed "updates.useClassicUpdates"`);
|
|
294
|
+
expMaybeWithoutUpdates = editedExpoConfig;
|
|
295
|
+
break;
|
|
296
|
+
case 'warn':
|
|
297
|
+
case 'fail':
|
|
298
|
+
throw new Error(result.message);
|
|
299
|
+
default:
|
|
300
|
+
throw new Error(`Unexpected result type "${result.type}" received when modifying the project config.`);
|
|
301
|
+
}
|
|
302
|
+
return editedExpoConfig;
|
|
303
|
+
}
|
|
304
|
+
exports.ensureUseClassicUpdatesIsRemovedAsync = ensureUseClassicUpdatesIsRemovedAsync;
|