@cloudbase/cli 1.12.7-alpha.4 → 2.0.0

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.
Files changed (317) hide show
  1. package/.editorconfig +9 -9
  2. package/.eslintignore +7 -7
  3. package/.eslintrc +35 -35
  4. package/.prettierrc.js +29 -29
  5. package/.vscode/launch.json +16 -16
  6. package/.vscode/settings.json +3 -0
  7. package/LICENSE +5 -5
  8. package/README.md +35 -35
  9. package/bin/cloudbase.js +5 -5
  10. package/bin/tcb.js +0 -0
  11. package/changelog.md +6 -6
  12. package/jest.config.js +17 -17
  13. package/lib/commands/account/login.js +18 -18
  14. package/lib/commands/run/create.js +6 -1
  15. package/lib/commands/run/delete.js +6 -1
  16. package/lib/commands/run/image/common.js +1 -1
  17. package/lib/commands/run/image/delete.js +5 -0
  18. package/lib/commands/run/image/download.js +5 -0
  19. package/lib/commands/run/image/list.js +5 -0
  20. package/lib/commands/run/image/upload.js +5 -0
  21. package/lib/commands/run/index.js +1 -0
  22. package/lib/commands/run/list.js +7 -1
  23. package/lib/commands/run/service/config.js +112 -0
  24. package/lib/commands/run/service/create.js +140 -0
  25. package/lib/commands/run/service/deploy.js +145 -0
  26. package/lib/commands/run/service/index.js +21 -0
  27. package/lib/commands/run/service/list.js +115 -0
  28. package/lib/commands/run/service/update.js +132 -0
  29. package/lib/commands/run/version/common.js +1 -1
  30. package/lib/commands/run/version/create.js +5 -0
  31. package/lib/commands/run/version/delete.js +5 -0
  32. package/lib/commands/run/version/list.js +5 -0
  33. package/lib/commands/run/version/modify.js +5 -0
  34. package/lib/commands/run/version/update.js +5 -0
  35. package/lib/commands/storage/storage.js +1 -1
  36. package/lib/constant.js +20 -1
  37. package/lib/env/login.js +7 -7
  38. package/lib/help.js +40 -38
  39. package/lib/run/index.js +1 -0
  40. package/lib/run/service/common.js +163 -0
  41. package/lib/run/service/config.js +70 -0
  42. package/lib/run/service/create.js +67 -0
  43. package/lib/run/service/deployPackage.js +87 -0
  44. package/lib/run/service/index.js +23 -0
  45. package/lib/run/service/list.js +31 -0
  46. package/lib/run/service/showLogs.js +116 -0
  47. package/lib/run/service/update.js +83 -0
  48. package/lib/utils/checkTcbrEnv.js +74 -0
  49. package/lib/utils/commonParamsCheck.js +48 -0
  50. package/lib/utils/index.js +3 -0
  51. package/lib/utils/tcbrApi/callTcbrApi.js +38 -0
  52. package/lib/utils/tcbrApi/index.js +17 -0
  53. package/lib/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.js +268 -0
  54. package/lib/utils/tcbrApi/tcbr-cloud-api/error.js +17 -0
  55. package/lib/utils/tcbrApi/tcbr-cloud-api/index.js +17 -0
  56. package/lib/utils/tcbrApi/tcbr-cloud-api/request.js +40 -0
  57. package/lib/utils/tcbrApi/tcbr-cloud-api-request.js +61 -0
  58. package/lib/utils/validator.js +32 -1
  59. package/package.json +88 -88
  60. package/post-install.js +61 -61
  61. package/runtime/nodejs/bootstrap.js +255 -255
  62. package/runtime/nodejs/runtime.js +183 -183
  63. package/src/auth/index.ts +1 -1
  64. package/src/auth/login.ts +91 -91
  65. package/src/auth/logout.ts +7 -7
  66. package/src/commands/account/index.ts +2 -2
  67. package/src/commands/account/login.ts +192 -192
  68. package/src/commands/account/logout.ts +24 -24
  69. package/src/commands/common.ts +246 -246
  70. package/src/commands/env/base.ts +90 -90
  71. package/src/commands/env/create.ts +92 -92
  72. package/src/commands/env/domain.ts +186 -186
  73. package/src/commands/env/index.ts +4 -4
  74. package/src/commands/env/login.ts +235 -235
  75. package/src/commands/framework/index.ts +124 -124
  76. package/src/commands/functions/alias/getRoute.ts +76 -76
  77. package/src/commands/functions/alias/index.ts +2 -2
  78. package/src/commands/functions/alias/setRoute.ts +82 -82
  79. package/src/commands/functions/code-download.ts +100 -100
  80. package/src/commands/functions/code-update.ts +62 -62
  81. package/src/commands/functions/concurrency/delete.ts +45 -45
  82. package/src/commands/functions/concurrency/index.ts +2 -2
  83. package/src/commands/functions/concurrency/list.ts +58 -58
  84. package/src/commands/functions/concurrency/set.ts +47 -47
  85. package/src/commands/functions/config-update.ts +76 -76
  86. package/src/commands/functions/copy.ts +62 -62
  87. package/src/commands/functions/delete.ts +79 -79
  88. package/src/commands/functions/deploy.ts +293 -293
  89. package/src/commands/functions/detail.ts +138 -138
  90. package/src/commands/functions/index.ts +16 -16
  91. package/src/commands/functions/invoke.ts +121 -121
  92. package/src/commands/functions/layer/bind.ts +182 -182
  93. package/src/commands/functions/layer/common.ts +8 -8
  94. package/src/commands/functions/layer/create.ts +49 -49
  95. package/src/commands/functions/layer/delete.ts +73 -73
  96. package/src/commands/functions/layer/download.ts +92 -92
  97. package/src/commands/functions/layer/index.ts +7 -7
  98. package/src/commands/functions/layer/list.ts +94 -94
  99. package/src/commands/functions/layer/sort.ts +76 -76
  100. package/src/commands/functions/list.ts +68 -68
  101. package/src/commands/functions/log.ts +148 -148
  102. package/src/commands/functions/run.ts +249 -249
  103. package/src/commands/functions/trigger-create.ts +79 -79
  104. package/src/commands/functions/trigger-delete.ts +105 -105
  105. package/src/commands/functions/version/index.ts +1 -1
  106. package/src/commands/functions/version/list.ts +73 -73
  107. package/src/commands/functions/version/publish.ts +43 -43
  108. package/src/commands/gateway/create.ts +109 -109
  109. package/src/commands/gateway/delete.ts +81 -81
  110. package/src/commands/gateway/domain.ts +159 -159
  111. package/src/commands/gateway/index.ts +5 -5
  112. package/src/commands/gateway/list.ts +76 -76
  113. package/src/commands/gateway/switch.ts +107 -107
  114. package/src/commands/helpers/index.ts +2 -2
  115. package/src/commands/helpers/init.ts +431 -431
  116. package/src/commands/helpers/new.ts +117 -117
  117. package/src/commands/helpers/open.ts +67 -67
  118. package/src/commands/hosting/hosting.ts +360 -360
  119. package/src/commands/index.ts +13 -13
  120. package/src/commands/lowcode/app.ts +34 -34
  121. package/src/commands/lowcode/comps.ts +322 -322
  122. package/src/commands/lowcode/index.ts +1 -1
  123. package/src/commands/lowcode/utils.ts +24 -24
  124. package/src/commands/run/create.ts +9 -2
  125. package/src/commands/run/delete.ts +8 -2
  126. package/src/commands/run/image/common.ts +1 -1
  127. package/src/commands/run/image/delete.ts +8 -1
  128. package/src/commands/run/image/download.ts +7 -1
  129. package/src/commands/run/image/index.ts +4 -4
  130. package/src/commands/run/image/list.ts +7 -2
  131. package/src/commands/run/image/upload.ts +8 -1
  132. package/src/commands/run/index.ts +2 -1
  133. package/src/commands/run/list.ts +11 -3
  134. package/src/commands/run/service/config.ts +81 -0
  135. package/src/commands/run/service/create.ts +118 -0
  136. package/src/commands/run/service/deploy.ts +121 -0
  137. package/src/commands/run/service/index.ts +5 -0
  138. package/src/commands/run/service/list.ts +94 -0
  139. package/src/commands/run/service/update.ts +104 -0
  140. package/src/commands/run/standalonegateway/common.ts +7 -7
  141. package/src/commands/run/standalonegateway/create.ts +85 -85
  142. package/src/commands/run/standalonegateway/destroy.ts +59 -59
  143. package/src/commands/run/standalonegateway/index.ts +4 -4
  144. package/src/commands/run/standalonegateway/list.ts +53 -53
  145. package/src/commands/run/standalonegateway/package.ts +62 -62
  146. package/src/commands/run/standalonegateway/turn.ts +63 -63
  147. package/src/commands/run/version/common.ts +1 -1
  148. package/src/commands/run/version/create.ts +8 -1
  149. package/src/commands/run/version/delete.ts +8 -2
  150. package/src/commands/run/version/index.ts +4 -4
  151. package/src/commands/run/version/list.ts +7 -1
  152. package/src/commands/run/version/modify.ts +8 -1
  153. package/src/commands/run/version/update.ts +8 -1
  154. package/src/commands/smart.ts +132 -132
  155. package/src/commands/storage/storage.ts +464 -464
  156. package/src/commands/third/thirdAttach.ts +49 -49
  157. package/src/completion/index.ts +13 -13
  158. package/src/constant.ts +35 -1
  159. package/src/decorators/captureError.ts +25 -25
  160. package/src/decorators/constants.ts +12 -12
  161. package/src/decorators/deprecate.ts +25 -25
  162. package/src/decorators/guard.ts +42 -42
  163. package/src/decorators/index.ts +7 -7
  164. package/src/decorators/injectParams.ts +54 -54
  165. package/src/decorators/params/common.ts +28 -28
  166. package/src/decorators/params/index.ts +35 -35
  167. package/src/env/domain.ts +33 -33
  168. package/src/env/index.ts +63 -63
  169. package/src/env/login.ts +80 -80
  170. package/src/error.ts +36 -36
  171. package/src/function/alias.ts +43 -43
  172. package/src/function/base.ts +253 -253
  173. package/src/function/code.ts +55 -55
  174. package/src/function/concurrency.ts +57 -57
  175. package/src/function/create.ts +78 -78
  176. package/src/function/delete.ts +42 -42
  177. package/src/function/index.ts +10 -10
  178. package/src/function/layer/attach.ts +68 -68
  179. package/src/function/layer/create.ts +63 -63
  180. package/src/function/layer/delete.ts +21 -21
  181. package/src/function/layer/download.ts +54 -54
  182. package/src/function/layer/index.ts +7 -7
  183. package/src/function/layer/list.ts +32 -32
  184. package/src/function/layer/sort.ts +24 -24
  185. package/src/function/trigger.ts +97 -97
  186. package/src/function/update.ts +35 -35
  187. package/src/function/version.ts +38 -38
  188. package/src/function/vpc.ts +22 -22
  189. package/src/gateway/index.ts +137 -137
  190. package/src/help.ts +50 -48
  191. package/src/hosting.ts +212 -212
  192. package/src/index.ts +13 -13
  193. package/src/logger.ts +17 -17
  194. package/src/run/create.ts +23 -23
  195. package/src/run/delete.ts +15 -15
  196. package/src/run/image/build.ts +36 -36
  197. package/src/run/image/delete.ts +13 -13
  198. package/src/run/image/index.ts +3 -3
  199. package/src/run/image/info.ts +26 -26
  200. package/src/run/index.ts +2 -1
  201. package/src/run/list.ts +29 -29
  202. package/src/run/repo.ts +24 -24
  203. package/src/run/service/common.ts +206 -0
  204. package/src/run/service/config.ts +77 -0
  205. package/src/run/service/create.ts +52 -0
  206. package/src/run/service/deployPackage.ts +63 -0
  207. package/src/run/service/index.ts +7 -0
  208. package/src/run/service/list.ts +29 -0
  209. package/src/run/service/showLogs.ts +98 -0
  210. package/src/run/service/update.ts +81 -0
  211. package/src/run/standalonegateway/create.ts +24 -24
  212. package/src/run/standalonegateway/destroy.ts +19 -19
  213. package/src/run/standalonegateway/index.ts +4 -4
  214. package/src/run/standalonegateway/list.ts +74 -74
  215. package/src/run/standalonegateway/package/list.ts +24 -24
  216. package/src/run/standalonegateway/turn/index.ts +1 -1
  217. package/src/run/standalonegateway/turn/off.ts +19 -19
  218. package/src/run/standalonegateway/turn/on.ts +19 -19
  219. package/src/run/version/create.ts +68 -68
  220. package/src/run/version/delete.ts +15 -15
  221. package/src/run/version/index.ts +5 -5
  222. package/src/run/version/list.ts +16 -16
  223. package/src/run/version/modify.ts +16 -16
  224. package/src/run/version/repo.ts +27 -27
  225. package/src/run/version/update.ts +58 -58
  226. package/src/storage.ts +114 -114
  227. package/src/third/index.ts +12 -12
  228. package/src/types.ts +128 -2
  229. package/src/utils/auth.ts +15 -15
  230. package/src/utils/checkTcbrEnv.ts +67 -0
  231. package/src/utils/cli-table.ts +23 -23
  232. package/src/utils/commonParamsCheck.ts +65 -0
  233. package/src/utils/config.ts +39 -39
  234. package/src/utils/env.ts +244 -244
  235. package/src/utils/fs/del.ts +5 -5
  236. package/src/utils/fs/index.ts +71 -71
  237. package/src/utils/function-packer.ts +97 -97
  238. package/src/utils/index.ts +5 -1
  239. package/src/utils/log.ts +81 -81
  240. package/src/utils/net/cloud-api-request.ts +62 -62
  241. package/src/utils/net/credential.ts +53 -53
  242. package/src/utils/net/http-request.ts +84 -84
  243. package/src/utils/net/index.ts +4 -4
  244. package/src/utils/net/manager-service.ts +36 -36
  245. package/src/utils/net/proxy.ts +6 -6
  246. package/src/utils/notice.ts +28 -28
  247. package/src/utils/output/highlight.ts +5 -5
  248. package/src/utils/output/index.ts +2 -2
  249. package/src/utils/output/link.ts +10 -10
  250. package/src/utils/output/loading.ts +82 -82
  251. package/src/utils/parallel.ts +82 -82
  252. package/src/utils/platform/index.ts +2 -2
  253. package/src/utils/platform/mac.ts +21 -21
  254. package/src/utils/platform/os.ts +64 -64
  255. package/src/utils/platform/port.ts +10 -10
  256. package/src/utils/progress-bar.ts +38 -38
  257. package/src/utils/prompt/select.ts +59 -59
  258. package/src/utils/reporter/agree.ts +20 -20
  259. package/src/utils/reporter/download.ts +26 -26
  260. package/src/utils/reporter/index.ts +3 -3
  261. package/src/utils/reporter/usage.ts +20 -20
  262. package/src/utils/store/auth.ts +49 -49
  263. package/src/utils/store/common.ts +8 -8
  264. package/src/utils/store/db.ts +68 -68
  265. package/src/utils/store/index.ts +4 -4
  266. package/src/utils/store/usage.ts +12 -12
  267. package/src/utils/tcbrApi/callTcbrApi.ts +28 -0
  268. package/src/utils/tcbrApi/index.ts +1 -0
  269. package/src/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.ts +363 -0
  270. package/src/utils/tcbrApi/tcbr-cloud-api/error.ts +30 -0
  271. package/src/utils/tcbrApi/tcbr-cloud-api/index.ts +1 -0
  272. package/src/utils/tcbrApi/tcbr-cloud-api/request.ts +28 -0
  273. package/src/utils/tcbrApi/tcbr-cloud-api-request.ts +66 -0
  274. package/src/utils/template.ts +170 -170
  275. package/src/utils/tools/encoding.ts +8 -8
  276. package/src/utils/tools/index.ts +4 -4
  277. package/src/utils/tools/object.ts +33 -33
  278. package/src/utils/tools/time.ts +38 -38
  279. package/src/utils/tools/uid.ts +19 -19
  280. package/src/utils/validator.ts +64 -32
  281. package/templates/html/loginFail.html +90 -90
  282. package/templates/html/loginSuccess.html +86 -86
  283. package/templates/server/node/_gitignore +54 -54
  284. package/templates/server/node/cloudbaserc.json +10 -10
  285. package/templates/server/node/index.js +5 -5
  286. package/templates/server/node/package.json +9 -9
  287. package/tsconfig.json +19 -19
  288. package/tsconfig.test.json +13 -13
  289. package/types/commands/run/index.d.ts +1 -0
  290. package/types/commands/run/service/config.d.ts +14 -0
  291. package/types/commands/run/service/create.d.ts +13 -0
  292. package/types/commands/run/service/deploy.d.ts +13 -0
  293. package/types/commands/run/service/index.d.ts +5 -0
  294. package/types/commands/run/service/list.d.ts +13 -0
  295. package/types/commands/run/service/update.d.ts +13 -0
  296. package/types/constant.d.ts +18 -0
  297. package/types/run/index.d.ts +1 -0
  298. package/types/run/service/common.d.ts +32 -0
  299. package/types/run/service/config.d.ts +23 -0
  300. package/types/run/service/create.d.ts +7 -0
  301. package/types/run/service/deployPackage.d.ts +11 -0
  302. package/types/run/service/index.d.ts +7 -0
  303. package/types/run/service/list.d.ts +2 -0
  304. package/types/run/service/showLogs.d.ts +2 -0
  305. package/types/run/service/update.d.ts +2 -0
  306. package/types/types.d.ts +116 -2
  307. package/types/utils/checkTcbrEnv.d.ts +3 -0
  308. package/types/utils/commonParamsCheck.d.ts +3 -0
  309. package/types/utils/index.d.ts +3 -0
  310. package/types/utils/tcbrApi/callTcbrApi.d.ts +1 -0
  311. package/types/utils/tcbrApi/index.d.ts +1 -0
  312. package/types/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.d.ts +51 -0
  313. package/types/utils/tcbrApi/tcbr-cloud-api/error.d.ts +20 -0
  314. package/types/utils/tcbrApi/tcbr-cloud-api/index.d.ts +1 -0
  315. package/types/utils/tcbrApi/tcbr-cloud-api/request.d.ts +4 -0
  316. package/types/utils/tcbrApi/tcbr-cloud-api-request.d.ts +9 -0
  317. package/types/utils/validator.d.ts +4 -0
@@ -1,105 +1,105 @@
1
- import inquirer from 'inquirer'
2
- import { Command, ICommand } from '../common'
3
- import { CloudBaseError } from '../../error'
4
- import { InjectParams, CmdContext, ArgsParams } from '../../decorators'
5
- import { batchDeleteTriggers, deleteFunctionTrigger } from '../../function'
6
-
7
- @ICommand()
8
- export class DeleteTrigger extends Command {
9
- get options() {
10
- return {
11
- cmd: 'fn',
12
- childCmd: { cmd: 'trigger', desc: '函数触发器操作' },
13
- childSubCmd: 'delete [functionName] [triggerName]',
14
- deprecateCmd: 'functions:trigger:delete [functionName] [triggerName]',
15
- options: [
16
- {
17
- flags: '-e, --envId <envId>',
18
- desc: '环境 Id'
19
- }
20
- ],
21
- desc: '删除云函数触发器'
22
- }
23
- }
24
-
25
- @InjectParams()
26
- async execute(@CmdContext() ctx, @ArgsParams() params) {
27
- const {
28
- envId,
29
- config: { functions }
30
- } = ctx
31
-
32
- const name = params?.[0]
33
- const triggerName = params?.[1]
34
-
35
- let isBatchDeleteTriggers
36
- let isBatchDeleteFunctionTriggers = false
37
-
38
- // 不指定云函数名称,删除配置文件中所有函数的所有触发器
39
- if (!name) {
40
- const answer = await inquirer.prompt({
41
- type: 'confirm',
42
- name: 'isBatch',
43
- message: '无云函数名称,是否需要删除配置文件中的【全部云函数】的全部触发器?',
44
- default: false
45
- })
46
-
47
- // 危险操作,再次确认
48
- if (answer.isBatch) {
49
- const { reConfirm } = await inquirer.prompt({
50
- type: 'confirm',
51
- name: 'reConfirm',
52
- message: '确定要删除配置文件中的【全部云函数】的全部触发器?',
53
- default: false
54
- })
55
- isBatchDeleteTriggers = reConfirm
56
- }
57
-
58
- if (!isBatchDeleteTriggers) {
59
- throw new CloudBaseError('请指定云函数名称以及触发器名称!')
60
- }
61
- }
62
-
63
- if (isBatchDeleteTriggers) {
64
- return batchDeleteTriggers({
65
- envId,
66
- functions
67
- })
68
- }
69
-
70
- // 指定了函数名称,但没有指定触发器名称,删除此函数的所有触发器
71
- if (!triggerName && name) {
72
- const { isBatch } = await inquirer.prompt({
73
- type: 'confirm',
74
- name: 'isBatch',
75
- message: '没有指定触发器名称,是否需要此云函数的全部触发器?',
76
- default: false
77
- })
78
-
79
- isBatchDeleteFunctionTriggers = isBatch
80
-
81
- if (!isBatchDeleteFunctionTriggers) {
82
- throw new CloudBaseError('请指定云函数名称以及触发器名称!')
83
- }
84
- }
85
-
86
- if (isBatchDeleteFunctionTriggers) {
87
- const func = functions.find((item) => item.name === name)
88
- return batchDeleteTriggers({
89
- envId,
90
- functions: [func]
91
- })
92
- }
93
-
94
- if (!triggerName) {
95
- throw new CloudBaseError('触发器名称不能为空')
96
- }
97
-
98
- // 删除指定函数的单个触发器
99
- await deleteFunctionTrigger({
100
- envId,
101
- functionName: name,
102
- triggerName
103
- })
104
- }
105
- }
1
+ import inquirer from 'inquirer'
2
+ import { Command, ICommand } from '../common'
3
+ import { CloudBaseError } from '../../error'
4
+ import { InjectParams, CmdContext, ArgsParams } from '../../decorators'
5
+ import { batchDeleteTriggers, deleteFunctionTrigger } from '../../function'
6
+
7
+ @ICommand()
8
+ export class DeleteTrigger extends Command {
9
+ get options() {
10
+ return {
11
+ cmd: 'fn',
12
+ childCmd: { cmd: 'trigger', desc: '函数触发器操作' },
13
+ childSubCmd: 'delete [functionName] [triggerName]',
14
+ deprecateCmd: 'functions:trigger:delete [functionName] [triggerName]',
15
+ options: [
16
+ {
17
+ flags: '-e, --envId <envId>',
18
+ desc: '环境 Id'
19
+ }
20
+ ],
21
+ desc: '删除云函数触发器'
22
+ }
23
+ }
24
+
25
+ @InjectParams()
26
+ async execute(@CmdContext() ctx, @ArgsParams() params) {
27
+ const {
28
+ envId,
29
+ config: { functions }
30
+ } = ctx
31
+
32
+ const name = params?.[0]
33
+ const triggerName = params?.[1]
34
+
35
+ let isBatchDeleteTriggers
36
+ let isBatchDeleteFunctionTriggers = false
37
+
38
+ // 不指定云函数名称,删除配置文件中所有函数的所有触发器
39
+ if (!name) {
40
+ const answer = await inquirer.prompt({
41
+ type: 'confirm',
42
+ name: 'isBatch',
43
+ message: '无云函数名称,是否需要删除配置文件中的【全部云函数】的全部触发器?',
44
+ default: false
45
+ })
46
+
47
+ // 危险操作,再次确认
48
+ if (answer.isBatch) {
49
+ const { reConfirm } = await inquirer.prompt({
50
+ type: 'confirm',
51
+ name: 'reConfirm',
52
+ message: '确定要删除配置文件中的【全部云函数】的全部触发器?',
53
+ default: false
54
+ })
55
+ isBatchDeleteTriggers = reConfirm
56
+ }
57
+
58
+ if (!isBatchDeleteTriggers) {
59
+ throw new CloudBaseError('请指定云函数名称以及触发器名称!')
60
+ }
61
+ }
62
+
63
+ if (isBatchDeleteTriggers) {
64
+ return batchDeleteTriggers({
65
+ envId,
66
+ functions
67
+ })
68
+ }
69
+
70
+ // 指定了函数名称,但没有指定触发器名称,删除此函数的所有触发器
71
+ if (!triggerName && name) {
72
+ const { isBatch } = await inquirer.prompt({
73
+ type: 'confirm',
74
+ name: 'isBatch',
75
+ message: '没有指定触发器名称,是否需要此云函数的全部触发器?',
76
+ default: false
77
+ })
78
+
79
+ isBatchDeleteFunctionTriggers = isBatch
80
+
81
+ if (!isBatchDeleteFunctionTriggers) {
82
+ throw new CloudBaseError('请指定云函数名称以及触发器名称!')
83
+ }
84
+ }
85
+
86
+ if (isBatchDeleteFunctionTriggers) {
87
+ const func = functions.find((item) => item.name === name)
88
+ return batchDeleteTriggers({
89
+ envId,
90
+ functions: [func]
91
+ })
92
+ }
93
+
94
+ if (!triggerName) {
95
+ throw new CloudBaseError('触发器名称不能为空')
96
+ }
97
+
98
+ // 删除指定函数的单个触发器
99
+ await deleteFunctionTrigger({
100
+ envId,
101
+ functionName: name,
102
+ triggerName
103
+ })
104
+ }
105
+ }
@@ -1,2 +1,2 @@
1
- export * from './publish'
1
+ export * from './publish'
2
2
  export * from './list'
@@ -1,73 +1,73 @@
1
-
2
- import { Command, ICommand } from '../../common'
3
- import { CloudBaseError } from '../../../error'
4
- import { loadingFactory, printHorizontalTable } from '../../../utils'
5
- import { listFunctionVersions } from '../../../function'
6
- import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
7
- import { StatusMap } from '../../../constant'
8
-
9
-
10
- @ICommand()
11
- export class ListFunctionVersion extends Command {
12
- get options() {
13
- return {
14
- cmd: 'fn',
15
- childCmd: 'list-function-versions <name>',
16
- options: [
17
- {
18
- flags: '-e, --envId <envId>',
19
- desc: '环境 Id'
20
- },
21
- { flags: '-l, --limit <limit>', desc: '返回数据长度,默认值为 20' },
22
- {
23
- flags: '-o, --offset <offset>',
24
- desc: '数据偏移量,默认值为 0'
25
- }
26
- ],
27
- desc: '展示函数版本列表'
28
- }
29
- }
30
-
31
- @InjectParams()
32
- async execute(@CmdContext() ctx, @ArgsParams() params, @ArgsOptions() options) {
33
- const name = params?.[0]
34
- let { limit = 20, offset = 0 } = options
35
- limit = Number(limit)
36
- offset = Number(offset)
37
- if (!Number.isInteger(limit) || !Number.isInteger(offset)) {
38
- throw new CloudBaseError('limit 和 offset 必须为整数')
39
- }
40
-
41
- if (limit < 0 || offset < 0) {
42
- throw new CloudBaseError('limit 和 offset 必须为大于 0 的整数')
43
- }
44
-
45
- const {
46
- envId
47
- } = ctx
48
-
49
- const loading = loadingFactory()
50
- loading.start(`拉取函数 [${name}] 版本列表中...`)
51
-
52
- const res = await listFunctionVersions({
53
- envId,
54
- functionName: name,
55
- offset,
56
- limit
57
- })
58
-
59
- loading.stop()
60
-
61
- const head: string[] = ['版本', '描述', '创建时间', '修改时间', '状态']
62
-
63
- const tableData = res.Versions.map((item) => [
64
- item.Version,
65
- item.Description,
66
- item.AddTime,
67
- item.ModTime,
68
- StatusMap[item.Status]
69
- ])
70
-
71
- printHorizontalTable(head, tableData)
72
- }
73
- }
1
+
2
+ import { Command, ICommand } from '../../common'
3
+ import { CloudBaseError } from '../../../error'
4
+ import { loadingFactory, printHorizontalTable } from '../../../utils'
5
+ import { listFunctionVersions } from '../../../function'
6
+ import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
7
+ import { StatusMap } from '../../../constant'
8
+
9
+
10
+ @ICommand()
11
+ export class ListFunctionVersion extends Command {
12
+ get options() {
13
+ return {
14
+ cmd: 'fn',
15
+ childCmd: 'list-function-versions <name>',
16
+ options: [
17
+ {
18
+ flags: '-e, --envId <envId>',
19
+ desc: '环境 Id'
20
+ },
21
+ { flags: '-l, --limit <limit>', desc: '返回数据长度,默认值为 20' },
22
+ {
23
+ flags: '-o, --offset <offset>',
24
+ desc: '数据偏移量,默认值为 0'
25
+ }
26
+ ],
27
+ desc: '展示函数版本列表'
28
+ }
29
+ }
30
+
31
+ @InjectParams()
32
+ async execute(@CmdContext() ctx, @ArgsParams() params, @ArgsOptions() options) {
33
+ const name = params?.[0]
34
+ let { limit = 20, offset = 0 } = options
35
+ limit = Number(limit)
36
+ offset = Number(offset)
37
+ if (!Number.isInteger(limit) || !Number.isInteger(offset)) {
38
+ throw new CloudBaseError('limit 和 offset 必须为整数')
39
+ }
40
+
41
+ if (limit < 0 || offset < 0) {
42
+ throw new CloudBaseError('limit 和 offset 必须为大于 0 的整数')
43
+ }
44
+
45
+ const {
46
+ envId
47
+ } = ctx
48
+
49
+ const loading = loadingFactory()
50
+ loading.start(`拉取函数 [${name}] 版本列表中...`)
51
+
52
+ const res = await listFunctionVersions({
53
+ envId,
54
+ functionName: name,
55
+ offset,
56
+ limit
57
+ })
58
+
59
+ loading.stop()
60
+
61
+ const head: string[] = ['版本', '描述', '创建时间', '修改时间', '状态']
62
+
63
+ const tableData = res.Versions.map((item) => [
64
+ item.Version,
65
+ item.Description,
66
+ item.AddTime,
67
+ item.ModTime,
68
+ StatusMap[item.Status]
69
+ ])
70
+
71
+ printHorizontalTable(head, tableData)
72
+ }
73
+ }
@@ -1,43 +1,43 @@
1
-
2
- import { Command, ICommand } from '../../common'
3
- import { CloudBaseError } from '../../../error'
4
- import { loadingFactory } from '../../../utils'
5
- import { publishVersion } from '../../../function'
6
- import { InjectParams, CmdContext, ArgsParams } from '../../../decorators'
7
-
8
- @ICommand()
9
- export class PublishFunctionVersion extends Command {
10
- get options() {
11
- return {
12
- cmd: 'fn',
13
- childCmd: 'publish-version <name> [description]',
14
- options: [
15
- {
16
- flags: '-e, --envId <envId>',
17
- desc: '环境 Id'
18
- }
19
- ],
20
- desc: '发布函数新版本'
21
- }
22
- }
23
-
24
- @InjectParams()
25
- async execute(@CmdContext() ctx, @ArgsParams() params) {
26
- const name = params?.[0]
27
- const description = params?.[1]
28
- const {
29
- envId
30
- } = ctx
31
-
32
- const loading = loadingFactory()
33
- loading.start(`发布函数 [${name}] 新版本中...`)
34
-
35
- await publishVersion({
36
- envId,
37
- functionName: name,
38
- description
39
- })
40
-
41
- loading.succeed(`发布函数 [${name}] 新版本成功!`)
42
- }
43
- }
1
+
2
+ import { Command, ICommand } from '../../common'
3
+ import { CloudBaseError } from '../../../error'
4
+ import { loadingFactory } from '../../../utils'
5
+ import { publishVersion } from '../../../function'
6
+ import { InjectParams, CmdContext, ArgsParams } from '../../../decorators'
7
+
8
+ @ICommand()
9
+ export class PublishFunctionVersion extends Command {
10
+ get options() {
11
+ return {
12
+ cmd: 'fn',
13
+ childCmd: 'publish-version <name> [description]',
14
+ options: [
15
+ {
16
+ flags: '-e, --envId <envId>',
17
+ desc: '环境 Id'
18
+ }
19
+ ],
20
+ desc: '发布函数新版本'
21
+ }
22
+ }
23
+
24
+ @InjectParams()
25
+ async execute(@CmdContext() ctx, @ArgsParams() params) {
26
+ const name = params?.[0]
27
+ const description = params?.[1]
28
+ const {
29
+ envId
30
+ } = ctx
31
+
32
+ const loading = loadingFactory()
33
+ loading.start(`发布函数 [${name}] 新版本中...`)
34
+
35
+ await publishVersion({
36
+ envId,
37
+ functionName: name,
38
+ description
39
+ })
40
+
41
+ loading.succeed(`发布函数 [${name}] 新版本成功!`)
42
+ }
43
+ }
@@ -1,109 +1,109 @@
1
- import { prompt } from 'enquirer'
2
- import { Command, ICommand } from '../common'
3
- import { CloudBaseError } from '../../error'
4
- import { createGateway, queryGatewayDomain } from '../../gateway'
5
- import { listFunction } from '../../function'
6
- import { assertTruthy } from '../../utils/validator'
7
- import { loadingFactory, genClickableLink } from '../../utils'
8
- import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
9
-
10
- @ICommand()
11
- export class CreateService extends Command {
12
- get options() {
13
- return {
14
- cmd: 'service',
15
- childCmd: 'create',
16
- deprecateCmd: 'service:create',
17
- options: [
18
- {
19
- flags: '-e, --envId <envId>',
20
- desc: '环境 Id'
21
- },
22
- {
23
- flags: '-p, --service-path <servicePath>',
24
- desc: 'HTTP 访问服务路径,如 api'
25
- },
26
- {
27
- flags: '-f, --function <name>',
28
- desc: 'HTTP 访问服务路径绑定的云函数名称'
29
- }
30
- ],
31
- desc: '创建 HTTP 访问服务'
32
- }
33
- }
34
-
35
- @InjectParams()
36
- async execute(@EnvId() envId, @ArgsOptions() options) {
37
- let { function: functionName, servicePath } = options
38
- const loading = loadingFactory()
39
-
40
- if (!servicePath || !functionName) {
41
- loading.start('数据加载中...')
42
- const functions = await listFunction({
43
- envId,
44
- limit: 100,
45
- offset: 0
46
- })
47
-
48
- loading.stop()
49
-
50
- if (!functions.length) {
51
- throw new CloudBaseError('当前环境下不存在可用的云函数,请先创建云函数!')
52
- }
53
-
54
- let { name } = await prompt<any>({
55
- type: 'select',
56
- name: 'name',
57
- message: '请选择创建HTTP 访问服务的云函数',
58
- choices: functions.map((item) => item.FunctionName)
59
- })
60
-
61
- let { path } = await prompt<any>({
62
- type: 'input',
63
- name: 'path',
64
- message: '请输入HTTP 访问服务路径'
65
- })
66
-
67
- functionName = name
68
- servicePath = path
69
- }
70
-
71
- assertTruthy(servicePath, '请指定需要创建的HTTP 访问服务路径!')
72
-
73
- // 创建云函数网关
74
- loading.start(`[${functionName}] HTTP 访问服务创建中...`)
75
-
76
- // 补充 / 符号
77
- servicePath = servicePath[0] === '/' ? servicePath : `/${servicePath}`
78
-
79
- try {
80
- // step1: 判断云函数是否存在
81
- const functionList = await listFunction({
82
- envId,
83
- limit: 100
84
- })
85
- const isExisted = functionList.filter((item) => item.FunctionName === functionName)
86
- if (isExisted.length <= 0) {
87
- throw new CloudBaseError(`[${functionName}] 云函数不存在!`)
88
- }
89
-
90
- // step2: 创建云函数网关
91
- await createGateway({
92
- envId,
93
- path: servicePath,
94
- name: functionName
95
- })
96
-
97
- // 查询访问域名
98
- const res = await queryGatewayDomain({ envId })
99
- const link = genClickableLink(`https://${res.DefaultDomain}${servicePath}`)
100
- loading.succeed(`HTTP 访问服务创建成功!\n点击访问> ${link}`)
101
- } catch (e) {
102
- loading.stop()
103
- if (e.code === 'InvalidParameter.APICreated') {
104
- throw new CloudBaseError('路径已存在!')
105
- }
106
- throw e
107
- }
108
- }
109
- }
1
+ import { prompt } from 'enquirer'
2
+ import { Command, ICommand } from '../common'
3
+ import { CloudBaseError } from '../../error'
4
+ import { createGateway, queryGatewayDomain } from '../../gateway'
5
+ import { listFunction } from '../../function'
6
+ import { assertTruthy } from '../../utils/validator'
7
+ import { loadingFactory, genClickableLink } from '../../utils'
8
+ import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
9
+
10
+ @ICommand()
11
+ export class CreateService extends Command {
12
+ get options() {
13
+ return {
14
+ cmd: 'service',
15
+ childCmd: 'create',
16
+ deprecateCmd: 'service:create',
17
+ options: [
18
+ {
19
+ flags: '-e, --envId <envId>',
20
+ desc: '环境 Id'
21
+ },
22
+ {
23
+ flags: '-p, --service-path <servicePath>',
24
+ desc: 'HTTP 访问服务路径,如 api'
25
+ },
26
+ {
27
+ flags: '-f, --function <name>',
28
+ desc: 'HTTP 访问服务路径绑定的云函数名称'
29
+ }
30
+ ],
31
+ desc: '创建 HTTP 访问服务'
32
+ }
33
+ }
34
+
35
+ @InjectParams()
36
+ async execute(@EnvId() envId, @ArgsOptions() options) {
37
+ let { function: functionName, servicePath } = options
38
+ const loading = loadingFactory()
39
+
40
+ if (!servicePath || !functionName) {
41
+ loading.start('数据加载中...')
42
+ const functions = await listFunction({
43
+ envId,
44
+ limit: 100,
45
+ offset: 0
46
+ })
47
+
48
+ loading.stop()
49
+
50
+ if (!functions.length) {
51
+ throw new CloudBaseError('当前环境下不存在可用的云函数,请先创建云函数!')
52
+ }
53
+
54
+ let { name } = await prompt<any>({
55
+ type: 'select',
56
+ name: 'name',
57
+ message: '请选择创建HTTP 访问服务的云函数',
58
+ choices: functions.map((item) => item.FunctionName)
59
+ })
60
+
61
+ let { path } = await prompt<any>({
62
+ type: 'input',
63
+ name: 'path',
64
+ message: '请输入HTTP 访问服务路径'
65
+ })
66
+
67
+ functionName = name
68
+ servicePath = path
69
+ }
70
+
71
+ assertTruthy(servicePath, '请指定需要创建的HTTP 访问服务路径!')
72
+
73
+ // 创建云函数网关
74
+ loading.start(`[${functionName}] HTTP 访问服务创建中...`)
75
+
76
+ // 补充 / 符号
77
+ servicePath = servicePath[0] === '/' ? servicePath : `/${servicePath}`
78
+
79
+ try {
80
+ // step1: 判断云函数是否存在
81
+ const functionList = await listFunction({
82
+ envId,
83
+ limit: 100
84
+ })
85
+ const isExisted = functionList.filter((item) => item.FunctionName === functionName)
86
+ if (isExisted.length <= 0) {
87
+ throw new CloudBaseError(`[${functionName}] 云函数不存在!`)
88
+ }
89
+
90
+ // step2: 创建云函数网关
91
+ await createGateway({
92
+ envId,
93
+ path: servicePath,
94
+ name: functionName
95
+ })
96
+
97
+ // 查询访问域名
98
+ const res = await queryGatewayDomain({ envId })
99
+ const link = genClickableLink(`https://${res.DefaultDomain}${servicePath}`)
100
+ loading.succeed(`HTTP 访问服务创建成功!\n点击访问> ${link}`)
101
+ } catch (e) {
102
+ loading.stop()
103
+ if (e.code === 'InvalidParameter.APICreated') {
104
+ throw new CloudBaseError('路径已存在!')
105
+ }
106
+ throw e
107
+ }
108
+ }
109
+ }