react-native-update-cli 1.43.4 → 1.43.6
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/lib/bundle.js +36 -19
- package/lib/index.js +0 -13
- package/lib/locales/en.js +50 -3
- package/lib/locales/zh.js +50 -3
- package/lib/package.js +10 -7
- package/lib/user.js +5 -2
- package/lib/utils/add-gitignore.js +4 -1
- package/lib/utils/check-plugin.js +8 -2
- package/lib/versions.js +85 -43
- package/package.json +9 -7
- package/src/bundle.ts +18 -24
- package/src/index.ts +0 -7
- package/src/locales/en.ts +56 -4
- package/src/locales/zh.ts +51 -3
- package/src/package.ts +8 -7
- package/src/user.ts +3 -2
- package/src/utils/add-gitignore.ts +2 -1
- package/src/utils/check-plugin.ts +3 -2
- package/src/versions.ts +143 -69
package/src/package.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { get, post, uploadFile } from './api';
|
|
2
2
|
import { question, saveToLocal } from './utils';
|
|
3
|
+
import { t } from './utils/i18n';
|
|
3
4
|
|
|
4
5
|
import { checkPlatform, getSelectedApp } from './app';
|
|
5
6
|
|
|
@@ -34,7 +35,7 @@ export async function listPackage(appId: string) {
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
console.log(Table(header, rows).render());
|
|
37
|
-
console.log(
|
|
38
|
+
console.log(t('totalPackages', { count: data.length }));
|
|
38
39
|
return data;
|
|
39
40
|
}
|
|
40
41
|
|
|
@@ -54,7 +55,7 @@ export const commands = {
|
|
|
54
55
|
uploadIpa: async ({ args }: { args: string[] }) => {
|
|
55
56
|
const fn = args[0];
|
|
56
57
|
if (!fn || !fn.endsWith('.ipa')) {
|
|
57
|
-
throw new Error('
|
|
58
|
+
throw new Error(t('usageUploadIpa'));
|
|
58
59
|
}
|
|
59
60
|
const {
|
|
60
61
|
versionName,
|
|
@@ -93,7 +94,7 @@ export const commands = {
|
|
|
93
94
|
uploadApk: async ({ args }: { args: string[] }) => {
|
|
94
95
|
const fn = args[0];
|
|
95
96
|
if (!fn || !fn.endsWith('.apk')) {
|
|
96
|
-
throw new Error('
|
|
97
|
+
throw new Error(t('usageUploadApk'));
|
|
97
98
|
}
|
|
98
99
|
const {
|
|
99
100
|
versionName,
|
|
@@ -132,7 +133,7 @@ export const commands = {
|
|
|
132
133
|
uploadApp: async ({ args }: { args: string[] }) => {
|
|
133
134
|
const fn = args[0];
|
|
134
135
|
if (!fn || !fn.endsWith('.app')) {
|
|
135
|
-
throw new Error('
|
|
136
|
+
throw new Error(t('usageUploadApp'));
|
|
136
137
|
}
|
|
137
138
|
const {
|
|
138
139
|
versionName,
|
|
@@ -171,21 +172,21 @@ export const commands = {
|
|
|
171
172
|
parseApp: async ({ args }: { args: string[] }) => {
|
|
172
173
|
const fn = args[0];
|
|
173
174
|
if (!fn || !fn.endsWith('.app')) {
|
|
174
|
-
throw new Error('
|
|
175
|
+
throw new Error(t('usageParseApp'));
|
|
175
176
|
}
|
|
176
177
|
console.log(await getAppInfo(fn));
|
|
177
178
|
},
|
|
178
179
|
parseIpa: async ({ args }: { args: string[] }) => {
|
|
179
180
|
const fn = args[0];
|
|
180
181
|
if (!fn || !fn.endsWith('.ipa')) {
|
|
181
|
-
throw new Error('
|
|
182
|
+
throw new Error(t('usageParseIpa'));
|
|
182
183
|
}
|
|
183
184
|
console.log(await getIpaInfo(fn));
|
|
184
185
|
},
|
|
185
186
|
parseApk: async ({ args }: { args: string[] }) => {
|
|
186
187
|
const fn = args[0];
|
|
187
188
|
if (!fn || !fn.endsWith('.apk')) {
|
|
188
|
-
throw new Error('
|
|
189
|
+
throw new Error(t('usageParseApk'));
|
|
189
190
|
}
|
|
190
191
|
console.log(await getApkInfo(fn));
|
|
191
192
|
},
|
package/src/user.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { question } from './utils';
|
|
2
2
|
import { post, get, replaceSession, saveSession, closeSession } from './api';
|
|
3
3
|
import crypto from 'node:crypto';
|
|
4
|
+
import { t } from './utils/i18n';
|
|
4
5
|
|
|
5
6
|
function md5(str: string) {
|
|
6
7
|
return crypto.createHash('md5').update(str).digest('hex');
|
|
@@ -16,11 +17,11 @@ export const commands = {
|
|
|
16
17
|
});
|
|
17
18
|
replaceSession({ token });
|
|
18
19
|
await saveSession();
|
|
19
|
-
console.log(
|
|
20
|
+
console.log(t('welcomeMessage', { name: info.name }));
|
|
20
21
|
},
|
|
21
22
|
logout: async () => {
|
|
22
23
|
await closeSession();
|
|
23
|
-
console.log('
|
|
24
|
+
console.log(t('loggedOut'));
|
|
24
25
|
},
|
|
25
26
|
me: async () => {
|
|
26
27
|
const me = await get('/user/me');
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs';
|
|
2
2
|
// import path from 'node:path';
|
|
3
3
|
import { credentialFile, tempDir } from './constants';
|
|
4
|
+
import { t } from './i18n';
|
|
4
5
|
|
|
5
6
|
export function addGitIgnore() {
|
|
6
7
|
const shouldIgnore = [credentialFile, tempDir];
|
|
@@ -26,7 +27,7 @@ export function addGitIgnore() {
|
|
|
26
27
|
gitignoreLines.push('# react-native-update');
|
|
27
28
|
for (const line of shouldIgnore) {
|
|
28
29
|
gitignoreLines.push(line);
|
|
29
|
-
console.log(
|
|
30
|
+
console.log(t('addedToGitignore', { line }));
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
fs.writeFileSync(gitignorePath, gitignoreLines.join('\n'));
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { plugins } from './plugin-config';
|
|
2
|
+
import { t } from './i18n';
|
|
2
3
|
|
|
3
4
|
interface BundleParams {
|
|
4
5
|
sentry: boolean;
|
|
@@ -17,10 +18,10 @@ export async function checkPlugins(): Promise<BundleParams> {
|
|
|
17
18
|
const isEnabled = await plugin.detect();
|
|
18
19
|
if (isEnabled && plugin.bundleParams) {
|
|
19
20
|
Object.assign(params, plugin.bundleParams);
|
|
20
|
-
console.log(
|
|
21
|
+
console.log(t('pluginDetected', { name: plugin.name }));
|
|
21
22
|
}
|
|
22
23
|
} catch (err) {
|
|
23
|
-
console.warn(
|
|
24
|
+
console.warn(t('pluginDetectionError', { name: plugin.name, error: err }));
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
|
package/src/versions.ts
CHANGED
|
@@ -1,29 +1,57 @@
|
|
|
1
1
|
import { get, post, put, uploadFile } from './api';
|
|
2
2
|
import { question, saveToLocal } from './utils';
|
|
3
|
+
import { t } from './utils/i18n';
|
|
3
4
|
|
|
4
5
|
import { checkPlatform, getSelectedApp } from './app';
|
|
5
6
|
import { choosePackage } from './package';
|
|
6
7
|
import { compare } from 'compare-versions';
|
|
7
8
|
import { depVersions } from './utils/dep-versions';
|
|
8
9
|
import { getCommitInfo } from './utils/git';
|
|
9
|
-
import { Platform } from 'types';
|
|
10
|
+
import type { Platform } from 'types';
|
|
11
|
+
|
|
12
|
+
interface Package {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
interface Version {
|
|
18
|
+
id: string;
|
|
19
|
+
hash: string;
|
|
20
|
+
name: string;
|
|
21
|
+
packages?: Package[];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
interface CommandOptions {
|
|
25
|
+
name?: string;
|
|
26
|
+
description?: string;
|
|
27
|
+
metaInfo?: string;
|
|
28
|
+
platform?: Platform;
|
|
29
|
+
versionId?: string;
|
|
30
|
+
packageId?: string;
|
|
31
|
+
packageVersion?: string;
|
|
32
|
+
minPackageVersion?: string;
|
|
33
|
+
maxPackageVersion?: string;
|
|
34
|
+
rollout?: string;
|
|
35
|
+
}
|
|
10
36
|
|
|
11
37
|
async function showVersion(appId: string, offset: number) {
|
|
12
38
|
const { data, count } = await get(`/app/${appId}/version/list`);
|
|
13
|
-
console.log(
|
|
39
|
+
console.log(t('offset', { offset }));
|
|
14
40
|
for (const version of data) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
.map((v) => v.name)
|
|
18
|
-
.join(', ');
|
|
19
|
-
const pkgCount = version.packages.length;
|
|
20
|
-
if (pkgCount > 3) {
|
|
21
|
-
packageInfo += `...and ${pkgCount - 3} more`;
|
|
22
|
-
}
|
|
41
|
+
const pkgCount = version.packages?.length || 0;
|
|
42
|
+
let packageInfo = '';
|
|
23
43
|
if (pkgCount === 0) {
|
|
24
44
|
packageInfo = 'no package';
|
|
25
45
|
} else {
|
|
26
|
-
packageInfo =
|
|
46
|
+
packageInfo = version.packages
|
|
47
|
+
?.slice(0, 3)
|
|
48
|
+
.map((pkg: Package) => pkg.name)
|
|
49
|
+
.join(', ');
|
|
50
|
+
if (pkgCount > 3) {
|
|
51
|
+
packageInfo += `...and ${pkgCount - 3} more`;
|
|
52
|
+
} else {
|
|
53
|
+
packageInfo = `[${packageInfo}]`;
|
|
54
|
+
}
|
|
27
55
|
}
|
|
28
56
|
console.log(
|
|
29
57
|
`${version.id}) ${version.hash.slice(0, 8)} ${
|
|
@@ -73,7 +101,10 @@ async function chooseVersion(appId: string) {
|
|
|
73
101
|
offset = 0;
|
|
74
102
|
break;
|
|
75
103
|
default: {
|
|
76
|
-
const
|
|
104
|
+
const versionId = Number.parseInt(cmd, 10);
|
|
105
|
+
const v = data.find(
|
|
106
|
+
(version: Version) => version.id === String(versionId),
|
|
107
|
+
);
|
|
77
108
|
if (v) {
|
|
78
109
|
return v;
|
|
79
110
|
}
|
|
@@ -83,12 +114,13 @@ async function chooseVersion(appId: string) {
|
|
|
83
114
|
}
|
|
84
115
|
|
|
85
116
|
export const commands = {
|
|
86
|
-
publish: async function ({
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
117
|
+
publish: async function ({
|
|
118
|
+
args,
|
|
119
|
+
options,
|
|
120
|
+
}: {
|
|
121
|
+
args: string[];
|
|
122
|
+
options: CommandOptions;
|
|
123
|
+
}) {
|
|
92
124
|
const fn = args[0];
|
|
93
125
|
const { name, description, metaInfo } = options;
|
|
94
126
|
|
|
@@ -99,7 +131,8 @@ export const commands = {
|
|
|
99
131
|
}
|
|
100
132
|
|
|
101
133
|
const platform = checkPlatform(
|
|
102
|
-
options.platform ||
|
|
134
|
+
options.platform ||
|
|
135
|
+
((await question('平台(ios/android/harmony):')) as Platform),
|
|
103
136
|
);
|
|
104
137
|
const { appId } = await getSelectedApp(platform);
|
|
105
138
|
|
|
@@ -117,7 +150,7 @@ export const commands = {
|
|
|
117
150
|
});
|
|
118
151
|
// TODO local diff
|
|
119
152
|
saveToLocal(fn, `${appId}/ppk/${id}.ppk`);
|
|
120
|
-
console.log(
|
|
153
|
+
console.log(t('packageUploadSuccess', { id }));
|
|
121
154
|
|
|
122
155
|
const v = await question('是否现在将此热更应用到原生包上?(Y/N)');
|
|
123
156
|
if (v.toLowerCase() === 'y') {
|
|
@@ -125,49 +158,59 @@ export const commands = {
|
|
|
125
158
|
}
|
|
126
159
|
return versionName;
|
|
127
160
|
},
|
|
128
|
-
versions: async ({ options }) => {
|
|
161
|
+
versions: async ({ options }: { options: CommandOptions }) => {
|
|
129
162
|
const platform = checkPlatform(
|
|
130
|
-
options.platform ||
|
|
163
|
+
options.platform ||
|
|
164
|
+
((await question('平台(ios/android/harmony):')) as Platform),
|
|
131
165
|
);
|
|
132
166
|
const { appId } = await getSelectedApp(platform);
|
|
133
167
|
await listVersions(appId);
|
|
134
168
|
},
|
|
135
|
-
update: async ({
|
|
169
|
+
update: async ({
|
|
170
|
+
args,
|
|
171
|
+
options,
|
|
172
|
+
}: {
|
|
173
|
+
args: string[];
|
|
174
|
+
options: CommandOptions;
|
|
175
|
+
}) => {
|
|
136
176
|
const platform = checkPlatform(
|
|
137
|
-
options.platform ||
|
|
177
|
+
options.platform ||
|
|
178
|
+
((await question('平台(ios/android/harmony):')) as Platform),
|
|
138
179
|
);
|
|
139
180
|
const { appId } = await getSelectedApp(platform);
|
|
140
181
|
let versionId = options.versionId || (await chooseVersion(appId)).id;
|
|
141
182
|
if (versionId === 'null') {
|
|
142
|
-
versionId =
|
|
183
|
+
versionId = undefined;
|
|
143
184
|
}
|
|
144
185
|
|
|
145
186
|
let pkgId: string | undefined;
|
|
146
187
|
let pkgVersion = options.packageVersion;
|
|
147
188
|
let minPkgVersion = options.minPackageVersion;
|
|
148
189
|
let maxPkgVersion = options.maxPackageVersion;
|
|
149
|
-
let rollout =
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
} else {
|
|
190
|
+
let rollout: number | undefined = undefined;
|
|
191
|
+
|
|
192
|
+
if (options.rollout !== undefined) {
|
|
153
193
|
try {
|
|
154
|
-
rollout = Number.parseInt(rollout);
|
|
194
|
+
rollout = Number.parseInt(options.rollout);
|
|
155
195
|
} catch (e) {
|
|
156
|
-
throw new Error('
|
|
196
|
+
throw new Error(t('rolloutRangeError'));
|
|
157
197
|
}
|
|
158
198
|
if (rollout < 1 || rollout > 100) {
|
|
159
|
-
throw new Error('
|
|
199
|
+
throw new Error(t('rolloutRangeError'));
|
|
160
200
|
}
|
|
161
201
|
}
|
|
202
|
+
|
|
162
203
|
if (minPkgVersion) {
|
|
163
204
|
minPkgVersion = String(minPkgVersion).trim();
|
|
164
205
|
const { data } = await get(`/app/${appId}/package/list?limit=1000`);
|
|
165
|
-
const pkgs = data.filter((
|
|
206
|
+
const pkgs = data.filter((pkg: Package) =>
|
|
207
|
+
compare(pkg.name, minPkgVersion, '>='),
|
|
208
|
+
);
|
|
166
209
|
if (pkgs.length === 0) {
|
|
167
|
-
throw new Error(
|
|
210
|
+
throw new Error(t('nativeVersionNotFound', { version: minPkgVersion }));
|
|
168
211
|
}
|
|
169
|
-
if (rollout) {
|
|
170
|
-
const rolloutConfig = {};
|
|
212
|
+
if (rollout !== undefined) {
|
|
213
|
+
const rolloutConfig: Record<string, number> = {};
|
|
171
214
|
for (const pkg of pkgs) {
|
|
172
215
|
rolloutConfig[pkg.name] = rollout;
|
|
173
216
|
}
|
|
@@ -177,9 +220,10 @@ export const commands = {
|
|
|
177
220
|
},
|
|
178
221
|
});
|
|
179
222
|
console.log(
|
|
180
|
-
|
|
181
|
-
.map((
|
|
182
|
-
|
|
223
|
+
`${t('rolloutConfigSet', {
|
|
224
|
+
versions: pkgs.map((pkg: Package) => pkg.name).join(', '),
|
|
225
|
+
rollout: rollout,
|
|
226
|
+
})}`,
|
|
183
227
|
);
|
|
184
228
|
}
|
|
185
229
|
for (const pkg of pkgs) {
|
|
@@ -187,21 +231,27 @@ export const commands = {
|
|
|
187
231
|
versionId,
|
|
188
232
|
});
|
|
189
233
|
console.log(
|
|
190
|
-
|
|
234
|
+
`${t('versionBind', {
|
|
235
|
+
version: versionId,
|
|
236
|
+
nativeVersion: pkg.name,
|
|
237
|
+
id: pkg.id,
|
|
238
|
+
})}`,
|
|
191
239
|
);
|
|
192
240
|
}
|
|
193
|
-
console.log(
|
|
241
|
+
console.log(t('operationComplete', { count: pkgs.length }));
|
|
194
242
|
return;
|
|
195
243
|
}
|
|
196
244
|
if (maxPkgVersion) {
|
|
197
245
|
maxPkgVersion = String(maxPkgVersion).trim();
|
|
198
246
|
const { data } = await get(`/app/${appId}/package/list?limit=1000`);
|
|
199
|
-
const pkgs = data.filter((
|
|
247
|
+
const pkgs = data.filter((pkg: Package) =>
|
|
248
|
+
compare(pkg.name, maxPkgVersion, '<='),
|
|
249
|
+
);
|
|
200
250
|
if (pkgs.length === 0) {
|
|
201
|
-
throw new Error(
|
|
251
|
+
throw new Error(t('nativeVersionNotFoundLess', { version: maxPkgVersion }));
|
|
202
252
|
}
|
|
203
|
-
if (rollout) {
|
|
204
|
-
const rolloutConfig = {};
|
|
253
|
+
if (rollout !== undefined) {
|
|
254
|
+
const rolloutConfig: Record<string, number> = {};
|
|
205
255
|
for (const pkg of pkgs) {
|
|
206
256
|
rolloutConfig[pkg.name] = rollout;
|
|
207
257
|
}
|
|
@@ -211,9 +261,10 @@ export const commands = {
|
|
|
211
261
|
},
|
|
212
262
|
});
|
|
213
263
|
console.log(
|
|
214
|
-
|
|
215
|
-
.map((
|
|
216
|
-
|
|
264
|
+
`${t('rolloutConfigSet', {
|
|
265
|
+
versions: pkgs.map((pkg: Package) => pkg.name).join(', '),
|
|
266
|
+
rollout: rollout,
|
|
267
|
+
})}`,
|
|
217
268
|
);
|
|
218
269
|
}
|
|
219
270
|
for (const pkg of pkgs) {
|
|
@@ -221,21 +272,25 @@ export const commands = {
|
|
|
221
272
|
versionId,
|
|
222
273
|
});
|
|
223
274
|
console.log(
|
|
224
|
-
|
|
275
|
+
`${t('versionBind', {
|
|
276
|
+
version: versionId,
|
|
277
|
+
nativeVersion: pkg.name,
|
|
278
|
+
id: pkg.id,
|
|
279
|
+
})}`,
|
|
225
280
|
);
|
|
226
281
|
}
|
|
227
|
-
console.log(
|
|
282
|
+
console.log(t('operationComplete', { count: pkgs.length }));
|
|
228
283
|
return;
|
|
229
284
|
}
|
|
230
285
|
|
|
231
286
|
const { data } = await get(`/app/${appId}/package/list?limit=1000`);
|
|
232
287
|
if (pkgVersion) {
|
|
233
288
|
pkgVersion = pkgVersion.trim();
|
|
234
|
-
const pkg = data.find((
|
|
289
|
+
const pkg = data.find((pkg: Package) => pkg.name === pkgVersion);
|
|
235
290
|
if (pkg) {
|
|
236
291
|
pkgId = pkg.id;
|
|
237
292
|
} else {
|
|
238
|
-
throw new Error(
|
|
293
|
+
throw new Error(t('nativeVersionNotFoundMatch', { version: pkgVersion }));
|
|
239
294
|
}
|
|
240
295
|
}
|
|
241
296
|
if (!pkgId) {
|
|
@@ -243,17 +298,17 @@ export const commands = {
|
|
|
243
298
|
}
|
|
244
299
|
|
|
245
300
|
if (!pkgId) {
|
|
246
|
-
throw new Error('
|
|
301
|
+
throw new Error(t('packageIdRequired'));
|
|
247
302
|
}
|
|
248
303
|
|
|
249
304
|
if (!pkgVersion) {
|
|
250
|
-
const pkg = data.find((
|
|
305
|
+
const pkg = data.find((pkg: Package) => String(pkg.id) === String(pkgId));
|
|
251
306
|
if (pkg) {
|
|
252
307
|
pkgVersion = pkg.name;
|
|
253
308
|
}
|
|
254
309
|
}
|
|
255
310
|
|
|
256
|
-
if (rollout) {
|
|
311
|
+
if (rollout !== undefined && pkgVersion) {
|
|
257
312
|
await put(`/app/${appId}/version/${versionId}`, {
|
|
258
313
|
config: {
|
|
259
314
|
rollout: {
|
|
@@ -262,28 +317,47 @@ export const commands = {
|
|
|
262
317
|
},
|
|
263
318
|
});
|
|
264
319
|
console.log(
|
|
265
|
-
|
|
320
|
+
`${t('rolloutConfigSet', {
|
|
321
|
+
versions: pkgVersion,
|
|
322
|
+
rollout: rollout,
|
|
323
|
+
})}`,
|
|
266
324
|
);
|
|
267
325
|
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
326
|
+
|
|
327
|
+
if (versionId !== undefined) {
|
|
328
|
+
await put(`/app/${appId}/package/${pkgId}`, {
|
|
329
|
+
versionId,
|
|
330
|
+
});
|
|
331
|
+
console.log(
|
|
332
|
+
`${t('versionBind', {
|
|
333
|
+
version: versionId,
|
|
334
|
+
nativeVersion: pkgVersion,
|
|
335
|
+
id: pkgId,
|
|
336
|
+
})}`,
|
|
337
|
+
);
|
|
338
|
+
}
|
|
339
|
+
console.log(t('operationSuccess'));
|
|
274
340
|
},
|
|
275
|
-
updateVersionInfo: async ({
|
|
341
|
+
updateVersionInfo: async ({
|
|
342
|
+
args,
|
|
343
|
+
options,
|
|
344
|
+
}: {
|
|
345
|
+
args: string[];
|
|
346
|
+
options: CommandOptions;
|
|
347
|
+
}) => {
|
|
276
348
|
const platform = checkPlatform(
|
|
277
|
-
options.platform ||
|
|
349
|
+
options.platform ||
|
|
350
|
+
((await question('平台(ios/android/harmony):')) as Platform),
|
|
278
351
|
);
|
|
279
352
|
const { appId } = await getSelectedApp(platform);
|
|
280
353
|
const versionId = options.versionId || (await chooseVersion(appId)).id;
|
|
281
354
|
|
|
282
|
-
const updateParams = {};
|
|
283
|
-
options.name
|
|
284
|
-
options.description
|
|
285
|
-
options.metaInfo
|
|
355
|
+
const updateParams: Record<string, string> = {};
|
|
356
|
+
if (options.name) updateParams.name = options.name;
|
|
357
|
+
if (options.description) updateParams.description = options.description;
|
|
358
|
+
if (options.metaInfo) updateParams.metaInfo = options.metaInfo;
|
|
359
|
+
|
|
286
360
|
await put(`/app/${appId}/version/${versionId}`, updateParams);
|
|
287
|
-
console.log('
|
|
361
|
+
console.log(t('operationSuccess'));
|
|
288
362
|
},
|
|
289
363
|
};
|