@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,49 +1,49 @@
1
- import { Command } from '../common'
2
- import { loadingFactory } from '../../utils'
3
- import { deleteThirdPartAttach } from '../../third'
4
- import { InjectParams, ArgsOptions } from '../../decorators'
5
-
6
- export class DeleteThirdAttach extends Command {
7
- get options() {
8
- return {
9
- cmd: 'third',
10
- childCmd: 'deleteThirdAttach',
11
- deprecateCmd: 'third:deleteThirdAttach',
12
- options: [
13
- {
14
- flags: '--source <source>',
15
- desc: '第三方来源'
16
- },
17
- {
18
- flags: '--thirdAppId <thirdAppId>',
19
- desc: '第三方appId'
20
- }
21
- ],
22
- desc: '解除第三方绑定',
23
- requiredEnvId: false
24
- }
25
- }
26
-
27
- @InjectParams()
28
- async execute(@ArgsOptions() options) {
29
- const { source, thirdAppId } = options
30
-
31
- let typeFlag
32
- if (source === 'qq') {
33
- typeFlag = 1
34
- }
35
-
36
- if (!typeFlag) {
37
- throw new Error('请指定对应的source')
38
- }
39
-
40
- const loading = loadingFactory()
41
- loading.start('数据加载中...')
42
- const data = await deleteThirdPartAttach({
43
- TypeFlag: typeFlag,
44
- ThirdPartAppid: thirdAppId
45
- })
46
- loading.stop()
47
- console.log(data)
48
- }
49
- }
1
+ import { Command } from '../common'
2
+ import { loadingFactory } from '../../utils'
3
+ import { deleteThirdPartAttach } from '../../third'
4
+ import { InjectParams, ArgsOptions } from '../../decorators'
5
+
6
+ export class DeleteThirdAttach extends Command {
7
+ get options() {
8
+ return {
9
+ cmd: 'third',
10
+ childCmd: 'deleteThirdAttach',
11
+ deprecateCmd: 'third:deleteThirdAttach',
12
+ options: [
13
+ {
14
+ flags: '--source <source>',
15
+ desc: '第三方来源'
16
+ },
17
+ {
18
+ flags: '--thirdAppId <thirdAppId>',
19
+ desc: '第三方appId'
20
+ }
21
+ ],
22
+ desc: '解除第三方绑定',
23
+ requiredEnvId: false
24
+ }
25
+ }
26
+
27
+ @InjectParams()
28
+ async execute(@ArgsOptions() options) {
29
+ const { source, thirdAppId } = options
30
+
31
+ let typeFlag
32
+ if (source === 'qq') {
33
+ typeFlag = 1
34
+ }
35
+
36
+ if (!typeFlag) {
37
+ throw new Error('请指定对应的source')
38
+ }
39
+
40
+ const loading = loadingFactory()
41
+ loading.start('数据加载中...')
42
+ const data = await deleteThirdPartAttach({
43
+ TypeFlag: typeFlag,
44
+ ThirdPartAppid: thirdAppId
45
+ })
46
+ loading.stop()
47
+ console.log(data)
48
+ }
49
+ }
@@ -1,13 +1,13 @@
1
- import { ALL_COMMANDS } from '../constant'
2
-
3
- export function handleCompletion({ reply, line }) {
4
- // 命令
5
- const cmd = line.replace(/^cloudbase\s|^tcb\s/, '')
6
-
7
- const commands = ALL_COMMANDS.filter(item => item.indexOf(cmd) > -1)
8
- if (commands.length > 0) {
9
- reply(commands)
10
- } else {
11
- reply(['-h', '-v'])
12
- }
13
- }
1
+ import { ALL_COMMANDS } from '../constant'
2
+
3
+ export function handleCompletion({ reply, line }) {
4
+ // 命令
5
+ const cmd = line.replace(/^cloudbase\s|^tcb\s/, '')
6
+
7
+ const commands = ALL_COMMANDS.filter(item => item.indexOf(cmd) > -1)
8
+ if (commands.length > 0) {
9
+ reply(commands)
10
+ } else {
11
+ reply(['-h', '-v'])
12
+ }
13
+ }
package/src/constant.ts CHANGED
@@ -117,4 +117,38 @@ export const ConcurrencyTaskStatus = {
117
117
  Done: '已完成',
118
118
  InProgress: '进行中',
119
119
  Failed: '失败'
120
- }
120
+ }
121
+
122
+ export const enum EnumEnvCheck {
123
+ EnvFit = 0,
124
+ EnvNewCmdOld,
125
+ EnvOldCmdNew,
126
+ }
127
+
128
+ export const enum EnumDeployStatus {
129
+ Deploying = 'deploying',
130
+ DeploySuccess = 'running',
131
+ DeployFailed = 'deploy_failed'
132
+ }
133
+
134
+ // tcbr 服务配置 cpu 和 mem 的约束
135
+ export const CPU_MEM_OPTS: { cpu: number; mems: number[] }[] = [
136
+ { cpu: 0.25, mems: [0.5] },
137
+ { cpu: 0.5, mems: [1] },
138
+ { cpu: 1, mems: [2] },
139
+ { cpu: 2, mems: [4] },
140
+ { cpu: 4, mems: [8] },
141
+ { cpu: 8, mems: [16] },
142
+ { cpu: 16, mems: [32] },
143
+ ]
144
+
145
+ export const DEFAULT_CPU_MEM_SET: { PolicyType: 'mem' | 'cpu', PolicyThreshold: number }[] = [
146
+ {
147
+ PolicyType: 'mem',
148
+ PolicyThreshold: 60
149
+ },
150
+ {
151
+ PolicyType: 'cpu',
152
+ PolicyThreshold: 60
153
+ },
154
+ ]
@@ -1,25 +1,25 @@
1
- /**
2
- * 捕获操作发生的异常,显示错误提示,并在输出中显示详细的错误堆栈信息
3
- */
4
- export const CaptureError = (): MethodDecorator => (
5
- target: any,
6
- key: string | symbol,
7
- descriptor: TypedPropertyDescriptor<any>
8
- ) => {
9
- const rawFunc: Function = descriptor.value
10
-
11
- descriptor.value = async function (...args) {
12
- try {
13
- const res = await rawFunc.apply(this, args)
14
- return res
15
- } catch (e) {
16
- const errMsg =
17
- e?.message ||
18
- (typeof e?.toString === 'function' ? e.toString() : '') ||
19
- 'Unknown Error'
20
- // output.showErrorWithMessage(errMsg, e?.stack || errMsg)
21
- }
22
- }
23
-
24
- return descriptor
25
- }
1
+ /**
2
+ * 捕获操作发生的异常,显示错误提示,并在输出中显示详细的错误堆栈信息
3
+ */
4
+ export const CaptureError = (): MethodDecorator => (
5
+ target: any,
6
+ key: string | symbol,
7
+ descriptor: TypedPropertyDescriptor<any>
8
+ ) => {
9
+ const rawFunc: Function = descriptor.value
10
+
11
+ descriptor.value = async function (...args) {
12
+ try {
13
+ const res = await rawFunc.apply(this, args)
14
+ return res
15
+ } catch (e) {
16
+ const errMsg =
17
+ e?.message ||
18
+ (typeof e?.toString === 'function' ? e.toString() : '') ||
19
+ 'Unknown Error'
20
+ // output.showErrorWithMessage(errMsg, e?.stack || errMsg)
21
+ }
22
+ }
23
+
24
+ return descriptor
25
+ }
@@ -1,12 +1,12 @@
1
- export const PARAM_METADATA = 'PARAM_METADATA'
2
-
3
- export enum ParamTypes {
4
- Credential = '__Credential__',
5
- Log = '__Log__',
6
- // 参数选项
7
- CmdContext = '__CmdContext__',
8
- EnvId = '__EnvId__',
9
- Config = '__Config__',
10
- ArgsOptions = '__ArgsOptions__',
11
- ArgsParams = '__ArgsParams__'
12
- }
1
+ export const PARAM_METADATA = 'PARAM_METADATA'
2
+
3
+ export enum ParamTypes {
4
+ Credential = '__Credential__',
5
+ Log = '__Log__',
6
+ // 参数选项
7
+ CmdContext = '__CmdContext__',
8
+ EnvId = '__EnvId__',
9
+ Config = '__Config__',
10
+ ArgsOptions = '__ArgsOptions__',
11
+ ArgsParams = '__ArgsParams__'
12
+ }
@@ -1,25 +1,25 @@
1
- import { Logger } from '../utils'
2
-
3
- /**
4
- * 废弃命令
5
- * @param tip
6
- */
7
- export const Deprecate = (options: { tip: string; allowExecute: boolean }): MethodDecorator => (
8
- target: any,
9
- key: string,
10
- descriptor: TypedPropertyDescriptor<any>
11
- ) => {
12
- const { tip, allowExecute } = options
13
- const rawFunc: Function = descriptor.value
14
-
15
- descriptor.value = function (...args) {
16
- const log = new Logger()
17
- log.error(tip || '此命令已废弃!')
18
-
19
- if (allowExecute) {
20
- rawFunc.apply(this, args)
21
- }
22
- }
23
-
24
- return descriptor
25
- }
1
+ import { Logger } from '../utils'
2
+
3
+ /**
4
+ * 废弃命令
5
+ * @param tip
6
+ */
7
+ export const Deprecate = (options: { tip: string; allowExecute: boolean }): MethodDecorator => (
8
+ target: any,
9
+ key: string,
10
+ descriptor: TypedPropertyDescriptor<any>
11
+ ) => {
12
+ const { tip, allowExecute } = options
13
+ const rawFunc: Function = descriptor.value
14
+
15
+ descriptor.value = function (...args) {
16
+ const log = new Logger()
17
+ log.error(tip || '此命令已废弃!')
18
+
19
+ if (allowExecute) {
20
+ rawFunc.apply(this, args)
21
+ }
22
+ }
23
+
24
+ return descriptor
25
+ }
@@ -1,42 +1,42 @@
1
- import { authSupevisor, getCloudBaseConfig } from '../utils'
2
-
3
- export interface AuthGuardOptions {
4
- // 无法通过 guard 认证时的提示信息
5
- tips?: string
6
- // 校验配置文件是否存在
7
- ensureConfig?: boolean
8
- }
9
-
10
- /**
11
- * Auth 装饰器,用于在执行操作前检验是否登录
12
- * 没有登录时,终止操作,显示登录提示
13
- */
14
- export const AuthGuard = (options: AuthGuardOptions = {}): MethodDecorator => (
15
- target: any,
16
- key: string | symbol,
17
- descriptor: TypedPropertyDescriptor<any>
18
- ) => {
19
- const { tips, ensureConfig = true } = options
20
- const rawFunc: Function = descriptor.value
21
- // 修改原函数行为
22
- descriptor.value = async function (...args) {
23
- const credential = target?.credential
24
- const loginState = await authSupevisor.getLoginState()
25
-
26
- // 未登录,终止运行
27
- if (!credential && !loginState) {
28
- return
29
- }
30
-
31
- if (ensureConfig) {
32
- const config = await getCloudBaseConfig()
33
- if (!config?.envId) {
34
- return
35
- }
36
- }
37
-
38
- return rawFunc.apply(this, args)
39
- }
40
-
41
- return descriptor
42
- }
1
+ import { authSupevisor, getCloudBaseConfig } from '../utils'
2
+
3
+ export interface AuthGuardOptions {
4
+ // 无法通过 guard 认证时的提示信息
5
+ tips?: string
6
+ // 校验配置文件是否存在
7
+ ensureConfig?: boolean
8
+ }
9
+
10
+ /**
11
+ * Auth 装饰器,用于在执行操作前检验是否登录
12
+ * 没有登录时,终止操作,显示登录提示
13
+ */
14
+ export const AuthGuard = (options: AuthGuardOptions = {}): MethodDecorator => (
15
+ target: any,
16
+ key: string | symbol,
17
+ descriptor: TypedPropertyDescriptor<any>
18
+ ) => {
19
+ const { tips, ensureConfig = true } = options
20
+ const rawFunc: Function = descriptor.value
21
+ // 修改原函数行为
22
+ descriptor.value = async function (...args) {
23
+ const credential = target?.credential
24
+ const loginState = await authSupevisor.getLoginState()
25
+
26
+ // 未登录,终止运行
27
+ if (!credential && !loginState) {
28
+ return
29
+ }
30
+
31
+ if (ensureConfig) {
32
+ const config = await getCloudBaseConfig()
33
+ if (!config?.envId) {
34
+ return
35
+ }
36
+ }
37
+
38
+ return rawFunc.apply(this, args)
39
+ }
40
+
41
+ return descriptor
42
+ }
@@ -1,7 +1,7 @@
1
- export * from './params'
2
- export * from './guard'
3
- export * from './injectParams'
4
- export * from './captureError'
5
- export * from './params/'
6
- export * from './deprecate'
7
- export { Logger } from '../utils'
1
+ export * from './params'
2
+ export * from './guard'
3
+ export * from './injectParams'
4
+ export * from './captureError'
5
+ export * from './params/'
6
+ export * from './deprecate'
7
+ export { Logger } from '../utils'
@@ -1,54 +1,54 @@
1
- import { PARAM_METADATA, ParamTypes } from './constants'
2
- import { ICommandContext } from '../types'
3
-
4
- /**
5
- * 在方法中注入 params 中定义的各种参数
6
- */
7
- export function InjectParams(): MethodDecorator {
8
- return function (target: any, key: string | symbol, descriptor: TypedPropertyDescriptor<any>) {
9
- const rawFunc: Function = descriptor.value
10
-
11
- // 解析需要注入的参数
12
- const paramMetadata = Reflect.getMetadata(PARAM_METADATA, target[key])
13
-
14
- if (paramMetadata) {
15
- descriptor.value = async function (...args) {
16
- // 命令 context
17
- const ctx: ICommandContext = args[0] || {}
18
-
19
- for (const paramKey in paramMetadata) {
20
- if (Object.prototype.hasOwnProperty.call(paramMetadata, paramKey)) {
21
- const { getter, index } = paramMetadata[paramKey]
22
- switch (paramKey) {
23
- // 从 context 中注入命令行参数
24
- case ParamTypes.CmdContext:
25
- args[index] = ctx
26
- break
27
- case ParamTypes.Config:
28
- args[index] = ctx.config
29
- break
30
- case ParamTypes.ArgsParams:
31
- args[index] = ctx.params
32
- break
33
- case ParamTypes.ArgsOptions:
34
- args[index] = ctx.options
35
- break
36
- case ParamTypes.EnvId:
37
- args[index] = ctx.envId
38
- break
39
- default: {
40
- // 注入其他与命令行不相关的参数
41
- const injectValue = await getter(target)
42
- args[index] = injectValue
43
- }
44
- }
45
- }
46
- }
47
-
48
- return rawFunc.apply(this, args)
49
- }
50
- }
51
-
52
- return descriptor
53
- }
54
- }
1
+ import { PARAM_METADATA, ParamTypes } from './constants'
2
+ import { ICommandContext } from '../types'
3
+
4
+ /**
5
+ * 在方法中注入 params 中定义的各种参数
6
+ */
7
+ export function InjectParams(): MethodDecorator {
8
+ return function (target: any, key: string | symbol, descriptor: TypedPropertyDescriptor<any>) {
9
+ const rawFunc: Function = descriptor.value
10
+
11
+ // 解析需要注入的参数
12
+ const paramMetadata = Reflect.getMetadata(PARAM_METADATA, target[key])
13
+
14
+ if (paramMetadata) {
15
+ descriptor.value = async function (...args) {
16
+ // 命令 context
17
+ const ctx: ICommandContext = args[0] || {}
18
+
19
+ for (const paramKey in paramMetadata) {
20
+ if (Object.prototype.hasOwnProperty.call(paramMetadata, paramKey)) {
21
+ const { getter, index } = paramMetadata[paramKey]
22
+ switch (paramKey) {
23
+ // 从 context 中注入命令行参数
24
+ case ParamTypes.CmdContext:
25
+ args[index] = ctx
26
+ break
27
+ case ParamTypes.Config:
28
+ args[index] = ctx.config
29
+ break
30
+ case ParamTypes.ArgsParams:
31
+ args[index] = ctx.params
32
+ break
33
+ case ParamTypes.ArgsOptions:
34
+ args[index] = ctx.options
35
+ break
36
+ case ParamTypes.EnvId:
37
+ args[index] = ctx.envId
38
+ break
39
+ default: {
40
+ // 注入其他与命令行不相关的参数
41
+ const injectValue = await getter(target)
42
+ args[index] = injectValue
43
+ }
44
+ }
45
+ }
46
+ }
47
+
48
+ return rawFunc.apply(this, args)
49
+ }
50
+ }
51
+
52
+ return descriptor
53
+ }
54
+ }
@@ -1,28 +1,28 @@
1
- import { ParamTypes, PARAM_METADATA } from '../constants'
2
-
3
- type GetterFunction = (target: any) => Promise<any> | any
4
-
5
- /**
6
- * 创建参数装饰器
7
- * @param paramtype 参数类型名
8
- * @param getter decorator 取值函数
9
- */
10
- export const createParamDecorator = (paramtype: ParamTypes, getter: GetterFunction) => {
11
- return () => {
12
- return (target: any, key: string | symbol, index: number) => {
13
- const data = Reflect.getMetadata(PARAM_METADATA, target[key]) || {}
14
-
15
- Reflect.defineMetadata(
16
- PARAM_METADATA,
17
- {
18
- ...data,
19
- [paramtype]: {
20
- index,
21
- getter
22
- }
23
- },
24
- target[key]
25
- )
26
- }
27
- }
28
- }
1
+ import { ParamTypes, PARAM_METADATA } from '../constants'
2
+
3
+ type GetterFunction = (target: any) => Promise<any> | any
4
+
5
+ /**
6
+ * 创建参数装饰器
7
+ * @param paramtype 参数类型名
8
+ * @param getter decorator 取值函数
9
+ */
10
+ export const createParamDecorator = (paramtype: ParamTypes, getter: GetterFunction) => {
11
+ return () => {
12
+ return (target: any, key: string | symbol, index: number) => {
13
+ const data = Reflect.getMetadata(PARAM_METADATA, target[key]) || {}
14
+
15
+ Reflect.defineMetadata(
16
+ PARAM_METADATA,
17
+ {
18
+ ...data,
19
+ [paramtype]: {
20
+ index,
21
+ getter
22
+ }
23
+ },
24
+ target[key]
25
+ )
26
+ }
27
+ }
28
+ }
@@ -1,35 +1,35 @@
1
- import { createParamDecorator } from './common'
2
- import { ParamTypes } from '../constants'
3
- import { authSupevisor, getArgs, Logger } from '../../utils'
4
-
5
- const EmptyValue = () => {}
6
-
7
- // 注入登录态信息
8
- export const Credential = createParamDecorator(ParamTypes.Credential, async () => {
9
- const credential = await authSupevisor.getLoginState()
10
- return credential
11
- })
12
-
13
- // 日志打印
14
- export const Log = createParamDecorator(ParamTypes.Log, () => {
15
- const args = getArgs()
16
- const verbose = process.VERBOSE || args.verbose
17
- const log = new Logger({
18
- verbose
19
- })
20
-
21
- return log
22
- })
23
-
24
- // 命令行相关
25
- export const CmdContext = createParamDecorator(ParamTypes.CmdContext, EmptyValue)
26
-
27
- export const ArgsOptions = createParamDecorator(ParamTypes.ArgsOptions, EmptyValue)
28
-
29
- export const ArgsParams = createParamDecorator(ParamTypes.ArgsParams, EmptyValue)
30
-
31
- // 获取环境 Id
32
- export const EnvId = createParamDecorator(ParamTypes.EnvId, EmptyValue)
33
-
34
- // 注入环境配置
35
- export const Config = createParamDecorator(ParamTypes.Config, EmptyValue)
1
+ import { createParamDecorator } from './common'
2
+ import { ParamTypes } from '../constants'
3
+ import { authSupevisor, getArgs, Logger } from '../../utils'
4
+
5
+ const EmptyValue = () => {}
6
+
7
+ // 注入登录态信息
8
+ export const Credential = createParamDecorator(ParamTypes.Credential, async () => {
9
+ const credential = await authSupevisor.getLoginState()
10
+ return credential
11
+ })
12
+
13
+ // 日志打印
14
+ export const Log = createParamDecorator(ParamTypes.Log, () => {
15
+ const args = getArgs()
16
+ const verbose = process.VERBOSE || args.verbose
17
+ const log = new Logger({
18
+ verbose
19
+ })
20
+
21
+ return log
22
+ })
23
+
24
+ // 命令行相关
25
+ export const CmdContext = createParamDecorator(ParamTypes.CmdContext, EmptyValue)
26
+
27
+ export const ArgsOptions = createParamDecorator(ParamTypes.ArgsOptions, EmptyValue)
28
+
29
+ export const ArgsParams = createParamDecorator(ParamTypes.ArgsParams, EmptyValue)
30
+
31
+ // 获取环境 Id
32
+ export const EnvId = createParamDecorator(ParamTypes.EnvId, EmptyValue)
33
+
34
+ // 注入环境配置
35
+ export const Config = createParamDecorator(ParamTypes.Config, EmptyValue)