Skip to content

Commit 43b99c7

Browse files
committed
fix: use checkbox inquirer for topic deletion
1 parent 3f3ab9e commit 43b99c7

File tree

3 files changed

+172
-10
lines changed

3 files changed

+172
-10
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"dependencies": {
88
"@oclif/core": "^4.2.7",
99
"@oclif/multi-stage-output": "^0.8.7",
10+
"@inquirer/prompts": "^7.3.3",
1011
"@salesforce/apex-node": "^8.1.19",
1112
"@salesforce/core": "^8.8.3",
1213
"@salesforce/kit": "^3.2.3",

src/commands/project/delete/source.ts

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import fs from 'node:fs';
99
import path from 'node:path';
1010
import os from 'node:os';
1111
import { Interfaces } from '@oclif/core';
12+
import { checkbox } from '@inquirer/prompts';
1213
import { Lifecycle, Messages, Org, SfError } from '@salesforce/core';
1314
import {
1415
ComponentSet,
@@ -193,15 +194,18 @@ export class Source extends SfCommand<DeleteSourceJson> {
193194
if (!this.flags['no-prompt']) {
194195
const genAiPlugins = this.componentSet.toArray().filter((comp) => comp.type.name === 'GenAiPlugin');
195196
if (genAiPlugins?.length) {
196-
const genAiPluginFiles = genAiPlugins
197-
.map((plugin) => ('xml' in plugin ? plugin.xml : undefined))
198-
.filter((p) => !!p);
199-
const message = `Do you want to delete ALL related topics?:\n${genAiPluginFiles.join('\n')}`;
200-
if (!(await this.confirm({ message, ms: 30_000 }))) {
201-
// Create a new ComponentSet without GenAiPlugins
197+
const funcsToDelete = await checkbox<string | null>({
198+
message: 'Select related topics to delete',
199+
choices: genAiPlugins.map((plugin) => ({ name: plugin.fullName, value: plugin.fullName })),
200+
});
201+
if (funcsToDelete?.length !== genAiPlugins?.length) {
202+
// Create a new ComponentSet with selected GenAiPlugins and all non-GenAiPlugins
202203
const compSetNoPlugins = new ComponentSet();
203204
for (const comp of this.componentSet) {
204-
if (comp.type.name !== 'GenAiPlugin') {
205+
if (
206+
comp.type.name !== 'GenAiPlugin' ||
207+
(comp.type.name === 'GenAiPlugin' && funcsToDelete.includes(comp.fullName))
208+
) {
205209
compSetNoPlugins.add(comp);
206210
}
207211
}

yarn.lock

Lines changed: 160 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1064,6 +1064,17 @@
10641064
ansi-escapes "^4.3.2"
10651065
yoctocolors-cjs "^2.1.2"
10661066

1067+
"@inquirer/checkbox@^4.1.3":
1068+
version "4.1.3"
1069+
resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.1.3.tgz#b177fb62670c6d1608035e63db80597234fe4130"
1070+
integrity sha512-KU1MGwf24iABJjGESxhyj+/rlQYSRoCfcuHDEHXfZ1DENmbuSRfyrUb+LLjHoee5TNOFKwaFxDXc5/zRwJUPMQ==
1071+
dependencies:
1072+
"@inquirer/core" "^10.1.8"
1073+
"@inquirer/figures" "^1.0.11"
1074+
"@inquirer/type" "^3.0.5"
1075+
ansi-escapes "^4.3.2"
1076+
yoctocolors-cjs "^2.1.2"
1077+
10671078
"@inquirer/confirm@^3.1.22":
10681079
version "3.2.0"
10691080
resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-3.2.0.tgz#6af1284670ea7c7d95e3f1253684cfbd7228ad6a"
@@ -1080,6 +1091,14 @@
10801091
"@inquirer/core" "^10.1.2"
10811092
"@inquirer/type" "^3.0.2"
10821093

1094+
"@inquirer/confirm@^5.1.7":
1095+
version "5.1.7"
1096+
resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.7.tgz#61f970e255b660edf2a0c901c599d7f9d25a58df"
1097+
integrity sha512-Xrfbrw9eSiHb+GsesO8TQIeHSMTP0xyvTCeeYevgZ4sKW+iz9w/47bgfG9b0niQm+xaLY2EWPBINUPldLwvYiw==
1098+
dependencies:
1099+
"@inquirer/core" "^10.1.8"
1100+
"@inquirer/type" "^3.0.5"
1101+
10831102
"@inquirer/core@^10.1.2":
10841103
version "10.1.2"
10851104
resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.2.tgz#a9c5b9ed814a636e99b5c0a8ca4f1626d99fd75d"
@@ -1095,6 +1114,20 @@
10951114
wrap-ansi "^6.2.0"
10961115
yoctocolors-cjs "^2.1.2"
10971116

1117+
"@inquirer/core@^10.1.8":
1118+
version "10.1.8"
1119+
resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.1.8.tgz#b2e79ac39a1bec2f803d9c20a1d304759f835f51"
1120+
integrity sha512-HpAqR8y715zPpM9e/9Q+N88bnGwqqL8ePgZ0SMv/s3673JLMv3bIkoivGmjPqXlEgisUksSXibweQccUwEx4qQ==
1121+
dependencies:
1122+
"@inquirer/figures" "^1.0.11"
1123+
"@inquirer/type" "^3.0.5"
1124+
ansi-escapes "^4.3.2"
1125+
cli-width "^4.1.0"
1126+
mute-stream "^2.0.0"
1127+
signal-exit "^4.1.0"
1128+
wrap-ansi "^6.2.0"
1129+
yoctocolors-cjs "^2.1.2"
1130+
10981131
"@inquirer/core@^9.1.0":
10991132
version "9.2.1"
11001133
resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-9.2.1.tgz#677c49dee399c9063f31e0c93f0f37bddc67add1"
@@ -1122,6 +1155,24 @@
11221155
"@inquirer/type" "^3.0.2"
11231156
external-editor "^3.1.0"
11241157

1158+
"@inquirer/editor@^4.2.8":
1159+
version "4.2.8"
1160+
resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.8.tgz#f8b5536b248c84aed198e8044084c4aed6995ceb"
1161+
integrity sha512-UkGKbMFlQw5k4ZLjDwEi5z8NIVlP/3DAlLHta0o0pSsdpPThNmPtUL8mvGCHUaQtR+QrxR9yRYNWgKMsHkfIUA==
1162+
dependencies:
1163+
"@inquirer/core" "^10.1.8"
1164+
"@inquirer/type" "^3.0.5"
1165+
external-editor "^3.1.0"
1166+
1167+
"@inquirer/expand@^4.0.10":
1168+
version "4.0.10"
1169+
resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.10.tgz#6300a02ecb1ae15142453c6f386cf892789ff07a"
1170+
integrity sha512-leyBouGJ77ggv51Jb/OJmLGGnU2HYc13MZ2iiPNLwe2VgFgZPVqsrRWSa1RAHKyazjOyvSNKLD1B2K7A/iWi1g==
1171+
dependencies:
1172+
"@inquirer/core" "^10.1.8"
1173+
"@inquirer/type" "^3.0.5"
1174+
yoctocolors-cjs "^2.1.2"
1175+
11251176
"@inquirer/expand@^4.0.4":
11261177
version "4.0.4"
11271178
resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.4.tgz#e3b052835e48fd4ebcf71813b7eae8b03c729d1b"
@@ -1131,6 +1182,11 @@
11311182
"@inquirer/type" "^3.0.2"
11321183
yoctocolors-cjs "^2.1.2"
11331184

1185+
"@inquirer/figures@^1.0.11":
1186+
version "1.0.11"
1187+
resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.11.tgz#4744e6db95288fea1dead779554859710a959a21"
1188+
integrity sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==
1189+
11341190
"@inquirer/figures@^1.0.5", "@inquirer/figures@^1.0.6", "@inquirer/figures@^1.0.9":
11351191
version "1.0.9"
11361192
resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.9.tgz#9d8128f8274cde4ca009ca8547337cab3f37a4a3"
@@ -1152,6 +1208,22 @@
11521208
"@inquirer/core" "^10.1.2"
11531209
"@inquirer/type" "^3.0.2"
11541210

1211+
"@inquirer/input@^4.1.7":
1212+
version "4.1.7"
1213+
resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.1.7.tgz#d9e725c00afe24503137714c78d7a7e0f16d67ad"
1214+
integrity sha512-rCQAipJNA14UTH84df/z4jDJ9LZ54H6zzuCAi7WZ0qVqx3CSqLjfXAMd5cpISIxbiHVJCPRB81gZksq6CZsqDg==
1215+
dependencies:
1216+
"@inquirer/core" "^10.1.8"
1217+
"@inquirer/type" "^3.0.5"
1218+
1219+
"@inquirer/number@^3.0.10":
1220+
version "3.0.10"
1221+
resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.10.tgz#3ad1d2b69849521169af8b3efe838f97ba010350"
1222+
integrity sha512-GLsdnxzNefjCJUmWyjaAuNklHgDpCTL4RMllAVhVvAzBwRW9g38eZ5tWgzo1lirtSDTpsh593hqXVhxvdrjfwA==
1223+
dependencies:
1224+
"@inquirer/core" "^10.1.8"
1225+
"@inquirer/type" "^3.0.5"
1226+
11551227
"@inquirer/number@^3.0.4":
11561228
version "3.0.4"
11571229
resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.4.tgz#090dcac6886d0cddc255f6624b61fb4461747fee"
@@ -1169,6 +1241,15 @@
11691241
"@inquirer/type" "^1.5.3"
11701242
ansi-escapes "^4.3.2"
11711243

1244+
"@inquirer/password@^4.0.10":
1245+
version "4.0.10"
1246+
resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.10.tgz#6f981c4194366de94673a9dcdcf6068e35f47c35"
1247+
integrity sha512-JC538ujqeYKkFqLoWZ0ILBteIUO2yajBMVEUZSxjl9x6fiEQtM+I5Rca7M2D8edMDbyHLnXifGH1hJZdh8V5rA==
1248+
dependencies:
1249+
"@inquirer/core" "^10.1.8"
1250+
"@inquirer/type" "^3.0.5"
1251+
ansi-escapes "^4.3.2"
1252+
11721253
"@inquirer/password@^4.0.4":
11731254
version "4.0.4"
11741255
resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.4.tgz#77891ae3ed5736607e6e942993ac40ca00411a2c"
@@ -1194,6 +1275,31 @@
11941275
"@inquirer/search" "^3.0.4"
11951276
"@inquirer/select" "^4.0.4"
11961277

1278+
"@inquirer/prompts@^7.3.3":
1279+
version "7.3.3"
1280+
resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.3.3.tgz#788ac2301cebcb2a808949a3e1c78819a27ee1a1"
1281+
integrity sha512-QS1AQgJ113iE/nmym03yKZKHvGjVWwkGZT3B1yKrrMG0bJKQg1jUkntFP8aPd2FUQzu/nga7QU2eDpzIP5it0Q==
1282+
dependencies:
1283+
"@inquirer/checkbox" "^4.1.3"
1284+
"@inquirer/confirm" "^5.1.7"
1285+
"@inquirer/editor" "^4.2.8"
1286+
"@inquirer/expand" "^4.0.10"
1287+
"@inquirer/input" "^4.1.7"
1288+
"@inquirer/number" "^3.0.10"
1289+
"@inquirer/password" "^4.0.10"
1290+
"@inquirer/rawlist" "^4.0.10"
1291+
"@inquirer/search" "^3.0.10"
1292+
"@inquirer/select" "^4.0.10"
1293+
1294+
"@inquirer/rawlist@^4.0.10":
1295+
version "4.0.10"
1296+
resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.10.tgz#358a9530ef8b4449a183c934a3660215855e5e87"
1297+
integrity sha512-vOQbQkmhaCsF2bUmjoyRSZJBz77UnIF/F3ZS2LMgwbgyaG2WgwKHh0WKNj0APDB72WDbZijhW5nObQbk+TnbcA==
1298+
dependencies:
1299+
"@inquirer/core" "^10.1.8"
1300+
"@inquirer/type" "^3.0.5"
1301+
yoctocolors-cjs "^2.1.2"
1302+
11971303
"@inquirer/rawlist@^4.0.4":
11981304
version "4.0.4"
11991305
resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.0.4.tgz#d10bbd6c529cd468d3d764c19de21334a01fa6d9"
@@ -1203,6 +1309,16 @@
12031309
"@inquirer/type" "^3.0.2"
12041310
yoctocolors-cjs "^2.1.2"
12051311

1312+
"@inquirer/search@^3.0.10":
1313+
version "3.0.10"
1314+
resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.10.tgz#5e33547f953d4b8b30dcdaa104878c45aa41d433"
1315+
integrity sha512-EAVKAz6P1LajZOdoL+R+XC3HJYSU261fbJzO4fCkJJ7UPFcm+nP+gzC+DDZWsb2WK9PQvKsnaKiNKsY8B6dBWQ==
1316+
dependencies:
1317+
"@inquirer/core" "^10.1.8"
1318+
"@inquirer/figures" "^1.0.11"
1319+
"@inquirer/type" "^3.0.5"
1320+
yoctocolors-cjs "^2.1.2"
1321+
12061322
"@inquirer/search@^3.0.4":
12071323
version "3.0.4"
12081324
resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.0.4.tgz#fcf51a853536add37491920634a182ecc9f5524b"
@@ -1224,6 +1340,17 @@
12241340
ansi-escapes "^4.3.2"
12251341
yoctocolors-cjs "^2.1.2"
12261342

1343+
"@inquirer/select@^4.0.10":
1344+
version "4.0.10"
1345+
resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.0.10.tgz#f14b9c18804ae2aef80c00195fbe811b5fd85364"
1346+
integrity sha512-Tg8S9nESnCfISu5tCZSuXpXq0wHuDVimj7xyHstABgR34zcJnLdq/VbjB2mdZvNAMAehYBnNzSjxB06UE8LLAA==
1347+
dependencies:
1348+
"@inquirer/core" "^10.1.8"
1349+
"@inquirer/figures" "^1.0.11"
1350+
"@inquirer/type" "^3.0.5"
1351+
ansi-escapes "^4.3.2"
1352+
yoctocolors-cjs "^2.1.2"
1353+
12271354
"@inquirer/select@^4.0.4":
12281355
version "4.0.4"
12291356
resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.0.4.tgz#026ada15754def1cd3fbc01efc56eae45ccc7de4"
@@ -1254,6 +1381,11 @@
12541381
resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.2.tgz#baff9f8d70947181deb36772cd9a5b6876d3e60c"
12551382
integrity sha512-ZhQ4TvhwHZF+lGhQ2O/rsjo80XoZR5/5qhOY3t6FJuX5XBg5Be8YzYTvaUGJnc12AUGI2nr4QSUE4PhKSigx7g==
12561383

1384+
"@inquirer/type@^3.0.5":
1385+
version "3.0.5"
1386+
resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-3.0.5.tgz#fe00207e57d5f040e5b18e809c8e7abc3a2ade3a"
1387+
integrity sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==
1388+
12571389
"@isaacs/cliui@^8.0.2":
12581390
version "8.0.2"
12591391
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
@@ -7775,7 +7907,16 @@ [email protected]:
77757907
dependencies:
77767908
escodegen "^1.8.1"
77777909

7778-
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
7910+
"string-width-cjs@npm:string-width@^4.2.0":
7911+
version "4.2.3"
7912+
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
7913+
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
7914+
dependencies:
7915+
emoji-regex "^8.0.0"
7916+
is-fullwidth-code-point "^3.0.0"
7917+
strip-ansi "^6.0.1"
7918+
7919+
string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
77797920
version "4.2.3"
77807921
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
77817922
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -7844,7 +7985,14 @@ string_decoder@~1.1.1:
78447985
dependencies:
78457986
safe-buffer "~5.1.0"
78467987

7847-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", [email protected], strip-ansi@^6.0.0, strip-ansi@^6.0.1:
7988+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
7989+
version "6.0.1"
7990+
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
7991+
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
7992+
dependencies:
7993+
ansi-regex "^5.0.1"
7994+
7995+
[email protected], strip-ansi@^6.0.0, strip-ansi@^6.0.1:
78487996
version "6.0.1"
78497997
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
78507998
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -8445,7 +8593,7 @@ workerpool@^6.5.1:
84458593
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544"
84468594
integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==
84478595

8448-
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
8596+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
84498597
version "7.0.0"
84508598
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
84518599
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -8463,6 +8611,15 @@ wrap-ansi@^6.2.0:
84638611
string-width "^4.1.0"
84648612
strip-ansi "^6.0.0"
84658613

8614+
wrap-ansi@^7.0.0:
8615+
version "7.0.0"
8616+
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
8617+
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
8618+
dependencies:
8619+
ansi-styles "^4.0.0"
8620+
string-width "^4.1.0"
8621+
strip-ansi "^6.0.0"
8622+
84668623
wrap-ansi@^8.1.0:
84678624
version "8.1.0"
84688625
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"

0 commit comments

Comments
 (0)