@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,124 +1,124 @@
1
- import { run } from '@cloudbase/framework-core'
2
- import { Command, ICommand } from '../common'
3
- import { ICommandContext } from '../../types'
4
- import { InjectParams, CmdContext, ArgsParams, Log, Logger, ArgsOptions } from '../../decorators'
5
-
6
- import * as Hosting from '../../hosting'
7
- import * as Function from '../../function'
8
- import { authSupevisor } from '../../utils'
9
-
10
- async function callFramework(ctx, command, module, params?) {
11
- const { envId, config } = ctx
12
- const { bumpVersion, versionRemark } = ctx.options
13
-
14
- const loginState = await authSupevisor.getLoginState()
15
- const { token, secretId, secretKey } = loginState
16
-
17
- await run(
18
- {
19
- projectPath: process.cwd(),
20
- cloudbaseConfig: {
21
- secretId,
22
- secretKey,
23
- token,
24
- envId
25
- },
26
- config,
27
- logLevel: process.argv.includes('--verbose') ? 'debug' : 'info',
28
- resourceProviders: {
29
- hosting: Hosting,
30
- function: Function
31
- },
32
- bumpVersion: Boolean(bumpVersion),
33
- versionRemark
34
- },
35
- command,
36
- module,
37
- params
38
- )
39
- }
40
-
41
- @ICommand()
42
- export class FrameworkDeploy extends Command {
43
- get options() {
44
- return {
45
- cmd: 'framework',
46
- childCmd: 'deploy [module]',
47
- deprecateCmd: 'framework:deploy [module]',
48
- options: [
49
- {
50
- flags: '-e, --envId <envId>',
51
- desc: '环境 Id'
52
- },
53
- { flags: '--verbose', desc: '是否打印详细日志' }
54
- ],
55
- desc: '云开发 Serverless 应用框架:部署全栈应用'
56
- }
57
- }
58
-
59
- @InjectParams()
60
- async execute(@CmdContext() ctx: ICommandContext, @Log() logger: Logger, @ArgsParams() params) {
61
- const [module] = params || []
62
- await callFramework(ctx, 'deploy', module)
63
- }
64
- }
65
-
66
- @ICommand()
67
- export class FrameworkCompile extends Command {
68
- get options() {
69
- return {
70
- cmd: 'framework',
71
- childCmd: 'compile [module]',
72
- deprecateCmd: 'framework:compile [module]',
73
- options: [
74
- {
75
- flags: '-e, --envId <envId>',
76
- desc: '环境 Id'
77
- },
78
- { flags: '--verbose', desc: '是否打印详细日志' },
79
- { flags: '--bumpVersion', desc: '是否生成新版本' },
80
- {
81
- flags: '--versionRemark <versionRemark>',
82
- desc: '新版本描述信息'
83
- }
84
- ],
85
- desc: '云开发 Serverless 应用框架:编译应用描述文件'
86
- }
87
- }
88
-
89
- @InjectParams()
90
- async execute(@CmdContext() ctx: ICommandContext, @Log() logger: Logger, @ArgsParams() params) {
91
- const [module] = params || []
92
- await callFramework(ctx, 'compile', module)
93
- }
94
- }
95
-
96
- @ICommand()
97
- export class FrameworkRun extends Command {
98
- get options() {
99
- return {
100
- cmd: 'framework',
101
- childCmd: 'run [command]',
102
- deprecateCmd: 'framework:run [command]',
103
- options: [
104
- {
105
- flags: '-e, --envId <envId>',
106
- desc: '环境 Id'
107
- },
108
- {
109
- flags: '--plugin <plugin>',
110
- desc: '执行命令的插件'
111
- }
112
- ],
113
- desc: '云开发 Serverless 应用框架:执行自定义命令'
114
- }
115
- }
116
-
117
- @InjectParams()
118
- async execute(@CmdContext() ctx: ICommandContext, @Log() logger: Logger, @ArgsParams() params, @ArgsOptions() options) {
119
- const [command] = params || []
120
- const { plugin } = options
121
-
122
- await callFramework(ctx, 'run', plugin, { runCommandKey: command })
123
- }
124
- }
1
+ import { run } from '@cloudbase/framework-core'
2
+ import { Command, ICommand } from '../common'
3
+ import { ICommandContext } from '../../types'
4
+ import { InjectParams, CmdContext, ArgsParams, Log, Logger, ArgsOptions } from '../../decorators'
5
+
6
+ import * as Hosting from '../../hosting'
7
+ import * as Function from '../../function'
8
+ import { authSupevisor } from '../../utils'
9
+
10
+ async function callFramework(ctx, command, module, params?) {
11
+ const { envId, config } = ctx
12
+ const { bumpVersion, versionRemark } = ctx.options
13
+
14
+ const loginState = await authSupevisor.getLoginState()
15
+ const { token, secretId, secretKey } = loginState
16
+
17
+ await run(
18
+ {
19
+ projectPath: process.cwd(),
20
+ cloudbaseConfig: {
21
+ secretId,
22
+ secretKey,
23
+ token,
24
+ envId
25
+ },
26
+ config,
27
+ logLevel: process.argv.includes('--verbose') ? 'debug' : 'info',
28
+ resourceProviders: {
29
+ hosting: Hosting,
30
+ function: Function
31
+ },
32
+ bumpVersion: Boolean(bumpVersion),
33
+ versionRemark
34
+ },
35
+ command,
36
+ module,
37
+ params
38
+ )
39
+ }
40
+
41
+ @ICommand()
42
+ export class FrameworkDeploy extends Command {
43
+ get options() {
44
+ return {
45
+ cmd: 'framework',
46
+ childCmd: 'deploy [module]',
47
+ deprecateCmd: 'framework:deploy [module]',
48
+ options: [
49
+ {
50
+ flags: '-e, --envId <envId>',
51
+ desc: '环境 Id'
52
+ },
53
+ { flags: '--verbose', desc: '是否打印详细日志' }
54
+ ],
55
+ desc: '云开发 Serverless 应用框架:部署全栈应用'
56
+ }
57
+ }
58
+
59
+ @InjectParams()
60
+ async execute(@CmdContext() ctx: ICommandContext, @Log() logger: Logger, @ArgsParams() params) {
61
+ const [module] = params || []
62
+ await callFramework(ctx, 'deploy', module)
63
+ }
64
+ }
65
+
66
+ @ICommand()
67
+ export class FrameworkCompile extends Command {
68
+ get options() {
69
+ return {
70
+ cmd: 'framework',
71
+ childCmd: 'compile [module]',
72
+ deprecateCmd: 'framework:compile [module]',
73
+ options: [
74
+ {
75
+ flags: '-e, --envId <envId>',
76
+ desc: '环境 Id'
77
+ },
78
+ { flags: '--verbose', desc: '是否打印详细日志' },
79
+ { flags: '--bumpVersion', desc: '是否生成新版本' },
80
+ {
81
+ flags: '--versionRemark <versionRemark>',
82
+ desc: '新版本描述信息'
83
+ }
84
+ ],
85
+ desc: '云开发 Serverless 应用框架:编译应用描述文件'
86
+ }
87
+ }
88
+
89
+ @InjectParams()
90
+ async execute(@CmdContext() ctx: ICommandContext, @Log() logger: Logger, @ArgsParams() params) {
91
+ const [module] = params || []
92
+ await callFramework(ctx, 'compile', module)
93
+ }
94
+ }
95
+
96
+ @ICommand()
97
+ export class FrameworkRun extends Command {
98
+ get options() {
99
+ return {
100
+ cmd: 'framework',
101
+ childCmd: 'run [command]',
102
+ deprecateCmd: 'framework:run [command]',
103
+ options: [
104
+ {
105
+ flags: '-e, --envId <envId>',
106
+ desc: '环境 Id'
107
+ },
108
+ {
109
+ flags: '--plugin <plugin>',
110
+ desc: '执行命令的插件'
111
+ }
112
+ ],
113
+ desc: '云开发 Serverless 应用框架:执行自定义命令'
114
+ }
115
+ }
116
+
117
+ @InjectParams()
118
+ async execute(@CmdContext() ctx: ICommandContext, @Log() logger: Logger, @ArgsParams() params, @ArgsOptions() options) {
119
+ const [command] = params || []
120
+ const { plugin } = options
121
+
122
+ await callFramework(ctx, 'run', plugin, { runCommandKey: command })
123
+ }
124
+ }
@@ -1,76 +1,76 @@
1
-
2
- import { Command, ICommand } from '../../common'
3
- import { loadingFactory, printHorizontalTable } from '../../../utils'
4
- import { getFunctionAliasConfig } from '../../../function'
5
- import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
6
-
7
-
8
- function parseRoutingConfigValue(expression: string) {
9
- const commaIndex = expression.indexOf(',')
10
- const valueExpression = expression.substring(commaIndex + 1, expression.length - 1)
11
- return valueExpression
12
- }
13
-
14
- @ICommand()
15
- export class getFunctionRoutingConfig extends Command {
16
- get options() {
17
- return {
18
- cmd: 'fn',
19
- childCmd: 'get-route <name>',
20
- options: [
21
- {
22
- flags: '-e, --envId <envId>',
23
- desc: '环境 Id'
24
- }
25
- ],
26
- desc: '查看函数版本流量配置'
27
- }
28
- }
29
-
30
- @InjectParams()
31
- async execute(@CmdContext() ctx, @ArgsParams() params) {
32
- const name = params?.[0]
33
-
34
- const {
35
- envId
36
- } = ctx
37
-
38
- const loading = loadingFactory()
39
- loading.start(`查询函数 [${name}] 版本流量配置中...`)
40
-
41
- const aliasRes = await getFunctionAliasConfig({
42
- envId,
43
- functionName: name,
44
- name: '$DEFAULT'
45
- })
46
-
47
- const routingConfig = aliasRes?.RoutingConfig?.AddtionVersionMatchs
48
- let finalConfig = []
49
- if (routingConfig.length === 1) {
50
- finalConfig.push({
51
- version: routingConfig[0].Version,
52
- value: parseRoutingConfigValue(routingConfig[0].Expression)
53
- })
54
- } else if (routingConfig.length === 2) {
55
- finalConfig.push({
56
- version: routingConfig[0].Version,
57
- value: parseRoutingConfigValue(routingConfig[0].Expression)
58
- }, {
59
- version: routingConfig[1].Version,
60
- value: 100 - Number(parseRoutingConfigValue(routingConfig[0].Expression))
61
- })
62
- }
63
-
64
- loading.stop()
65
-
66
- const head: string[] = ['版本', '流量比例']
67
-
68
- const tableData = finalConfig.map((item) => [
69
- item.version,
70
- item.value
71
- ])
72
-
73
- printHorizontalTable(head, tableData)
74
-
75
- }
76
- }
1
+
2
+ import { Command, ICommand } from '../../common'
3
+ import { loadingFactory, printHorizontalTable } from '../../../utils'
4
+ import { getFunctionAliasConfig } from '../../../function'
5
+ import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
6
+
7
+
8
+ function parseRoutingConfigValue(expression: string) {
9
+ const commaIndex = expression.indexOf(',')
10
+ const valueExpression = expression.substring(commaIndex + 1, expression.length - 1)
11
+ return valueExpression
12
+ }
13
+
14
+ @ICommand()
15
+ export class getFunctionRoutingConfig extends Command {
16
+ get options() {
17
+ return {
18
+ cmd: 'fn',
19
+ childCmd: 'get-route <name>',
20
+ options: [
21
+ {
22
+ flags: '-e, --envId <envId>',
23
+ desc: '环境 Id'
24
+ }
25
+ ],
26
+ desc: '查看函数版本流量配置'
27
+ }
28
+ }
29
+
30
+ @InjectParams()
31
+ async execute(@CmdContext() ctx, @ArgsParams() params) {
32
+ const name = params?.[0]
33
+
34
+ const {
35
+ envId
36
+ } = ctx
37
+
38
+ const loading = loadingFactory()
39
+ loading.start(`查询函数 [${name}] 版本流量配置中...`)
40
+
41
+ const aliasRes = await getFunctionAliasConfig({
42
+ envId,
43
+ functionName: name,
44
+ name: '$DEFAULT'
45
+ })
46
+
47
+ const routingConfig = aliasRes?.RoutingConfig?.AddtionVersionMatchs
48
+ let finalConfig = []
49
+ if (routingConfig.length === 1) {
50
+ finalConfig.push({
51
+ version: routingConfig[0].Version,
52
+ value: parseRoutingConfigValue(routingConfig[0].Expression)
53
+ })
54
+ } else if (routingConfig.length === 2) {
55
+ finalConfig.push({
56
+ version: routingConfig[0].Version,
57
+ value: parseRoutingConfigValue(routingConfig[0].Expression)
58
+ }, {
59
+ version: routingConfig[1].Version,
60
+ value: 100 - Number(parseRoutingConfigValue(routingConfig[0].Expression))
61
+ })
62
+ }
63
+
64
+ loading.stop()
65
+
66
+ const head: string[] = ['版本', '流量比例']
67
+
68
+ const tableData = finalConfig.map((item) => [
69
+ item.version,
70
+ item.value
71
+ ])
72
+
73
+ printHorizontalTable(head, tableData)
74
+
75
+ }
76
+ }
@@ -1,2 +1,2 @@
1
- export * from './setRoute'
2
- export * from './getRoute'
1
+ export * from './setRoute'
2
+ export * from './getRoute'
@@ -1,82 +1,82 @@
1
-
2
- import { Command, ICommand } from '../../common'
3
- import { CloudBaseError } from '../../../error'
4
- import { loadingFactory } from '../../../utils'
5
- import { setFunctionAliasConfig } from '../../../function'
6
- import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
7
-
8
-
9
- @ICommand()
10
- export class setFunctionRoutingConfig extends Command {
11
- get options() {
12
- return {
13
- cmd: 'fn',
14
- childCmd: 'config-route <name> <version1> <traffic1> [version2] [traffic2]',
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 name = params?.[0]
28
- const version1 = params?.[1]
29
- const traffic1 = Number(params?.[2])
30
-
31
- const version2 = params?.[3]
32
- const traffic2 = Number(params?.[4])
33
-
34
- // 校验
35
-
36
- // 1. version2 及 traffic2 必须同时存在
37
- if ((version2 === undefined && traffic2 !== undefined) || (version2 !== undefined && traffic2 === undefined)) {
38
- throw new CloudBaseError('version2 和 traffic2 必须同时设置')
39
- }
40
-
41
- if (traffic1 !== undefined && traffic2 !== undefined) {
42
- if (traffic1 + traffic2 !== 100) {
43
- throw new CloudBaseError('traffic1 和 traffic2 同时设置时,需保证总和 100')
44
- }
45
- }
46
-
47
- const {
48
- envId
49
- } = ctx
50
-
51
- const loading = loadingFactory()
52
- loading.start(`设置函数 [${name}] 版本流量配置中...`)
53
-
54
- let routingConfigParams = {
55
- AddtionVersionMatchs: [{
56
- Expression: `[0,${traffic1})`,
57
- Key: "invoke.headers.X-Tcb-Route-Key",
58
- Method: "range",
59
- Version: version1
60
- }]
61
- }
62
-
63
- if (version2 !== undefined) {
64
- routingConfigParams.AddtionVersionMatchs.push({
65
- Expression: `[${traffic1},${100})`,
66
- Key: "invoke.headers.X-Tcb-Route-Key",
67
- Method: "range",
68
- Version: version2
69
- })
70
- }
71
-
72
- await setFunctionAliasConfig({
73
- envId,
74
- functionName: name,
75
- name: '$DEFAULT',
76
- functionVersion: '$LATEST',
77
- routingConfig: routingConfigParams
78
- })
79
-
80
- loading.succeed(`设置函数 [${name}] 版本流量配置成功!`)
81
- }
82
- }
1
+
2
+ import { Command, ICommand } from '../../common'
3
+ import { CloudBaseError } from '../../../error'
4
+ import { loadingFactory } from '../../../utils'
5
+ import { setFunctionAliasConfig } from '../../../function'
6
+ import { InjectParams, CmdContext, ArgsParams, ArgsOptions } from '../../../decorators'
7
+
8
+
9
+ @ICommand()
10
+ export class setFunctionRoutingConfig extends Command {
11
+ get options() {
12
+ return {
13
+ cmd: 'fn',
14
+ childCmd: 'config-route <name> <version1> <traffic1> [version2] [traffic2]',
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 name = params?.[0]
28
+ const version1 = params?.[1]
29
+ const traffic1 = Number(params?.[2])
30
+
31
+ const version2 = params?.[3]
32
+ const traffic2 = Number(params?.[4])
33
+
34
+ // 校验
35
+
36
+ // 1. version2 及 traffic2 必须同时存在
37
+ if ((version2 === undefined && traffic2 !== undefined) || (version2 !== undefined && traffic2 === undefined)) {
38
+ throw new CloudBaseError('version2 和 traffic2 必须同时设置')
39
+ }
40
+
41
+ if (traffic1 !== undefined && traffic2 !== undefined) {
42
+ if (traffic1 + traffic2 !== 100) {
43
+ throw new CloudBaseError('traffic1 和 traffic2 同时设置时,需保证总和 100')
44
+ }
45
+ }
46
+
47
+ const {
48
+ envId
49
+ } = ctx
50
+
51
+ const loading = loadingFactory()
52
+ loading.start(`设置函数 [${name}] 版本流量配置中...`)
53
+
54
+ let routingConfigParams = {
55
+ AddtionVersionMatchs: [{
56
+ Expression: `[0,${traffic1})`,
57
+ Key: "invoke.headers.X-Tcb-Route-Key",
58
+ Method: "range",
59
+ Version: version1
60
+ }]
61
+ }
62
+
63
+ if (version2 !== undefined) {
64
+ routingConfigParams.AddtionVersionMatchs.push({
65
+ Expression: `[${traffic1},${100})`,
66
+ Key: "invoke.headers.X-Tcb-Route-Key",
67
+ Method: "range",
68
+ Version: version2
69
+ })
70
+ }
71
+
72
+ await setFunctionAliasConfig({
73
+ envId,
74
+ functionName: name,
75
+ name: '$DEFAULT',
76
+ functionVersion: '$LATEST',
77
+ routingConfig: routingConfigParams
78
+ })
79
+
80
+ loading.succeed(`设置函数 [${name}] 版本流量配置成功!`)
81
+ }
82
+ }