@cloudbase/cli 2.0.2 → 2.0.3

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 (201) 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/storage/storage.js +1 -1
  15. package/lib/env/login.js +7 -7
  16. package/lib/run/service/deployPackage.js +2 -2
  17. package/package.json +2 -2
  18. package/post-install.js +61 -61
  19. package/runtime/nodejs/bootstrap.js +255 -255
  20. package/runtime/nodejs/runtime.js +183 -183
  21. package/src/auth/index.ts +1 -1
  22. package/src/auth/login.ts +91 -91
  23. package/src/auth/logout.ts +7 -7
  24. package/src/commands/account/index.ts +2 -2
  25. package/src/commands/account/login.ts +192 -192
  26. package/src/commands/account/logout.ts +24 -24
  27. package/src/commands/env/base.ts +90 -90
  28. package/src/commands/env/create.ts +92 -92
  29. package/src/commands/env/domain.ts +186 -186
  30. package/src/commands/env/index.ts +4 -4
  31. package/src/commands/env/login.ts +235 -235
  32. package/src/commands/framework/index.ts +124 -124
  33. package/src/commands/functions/alias/getRoute.ts +76 -76
  34. package/src/commands/functions/alias/index.ts +2 -2
  35. package/src/commands/functions/alias/setRoute.ts +82 -82
  36. package/src/commands/functions/code-download.ts +100 -100
  37. package/src/commands/functions/code-update.ts +62 -62
  38. package/src/commands/functions/concurrency/delete.ts +45 -45
  39. package/src/commands/functions/concurrency/index.ts +2 -2
  40. package/src/commands/functions/concurrency/list.ts +58 -58
  41. package/src/commands/functions/concurrency/set.ts +47 -47
  42. package/src/commands/functions/config-update.ts +76 -76
  43. package/src/commands/functions/copy.ts +62 -62
  44. package/src/commands/functions/delete.ts +79 -79
  45. package/src/commands/functions/deploy.ts +293 -293
  46. package/src/commands/functions/detail.ts +138 -138
  47. package/src/commands/functions/index.ts +16 -16
  48. package/src/commands/functions/invoke.ts +121 -121
  49. package/src/commands/functions/layer/bind.ts +182 -182
  50. package/src/commands/functions/layer/common.ts +8 -8
  51. package/src/commands/functions/layer/create.ts +49 -49
  52. package/src/commands/functions/layer/delete.ts +73 -73
  53. package/src/commands/functions/layer/download.ts +92 -92
  54. package/src/commands/functions/layer/index.ts +7 -7
  55. package/src/commands/functions/layer/list.ts +94 -94
  56. package/src/commands/functions/layer/sort.ts +76 -76
  57. package/src/commands/functions/list.ts +68 -68
  58. package/src/commands/functions/log.ts +148 -148
  59. package/src/commands/functions/run.ts +249 -249
  60. package/src/commands/functions/trigger-create.ts +79 -79
  61. package/src/commands/functions/trigger-delete.ts +105 -105
  62. package/src/commands/functions/version/index.ts +1 -1
  63. package/src/commands/functions/version/list.ts +73 -73
  64. package/src/commands/functions/version/publish.ts +43 -43
  65. package/src/commands/gateway/create.ts +109 -109
  66. package/src/commands/gateway/delete.ts +81 -81
  67. package/src/commands/gateway/domain.ts +159 -159
  68. package/src/commands/gateway/index.ts +5 -5
  69. package/src/commands/gateway/list.ts +76 -76
  70. package/src/commands/gateway/switch.ts +107 -107
  71. package/src/commands/helpers/index.ts +2 -2
  72. package/src/commands/helpers/init.ts +431 -431
  73. package/src/commands/helpers/new.ts +117 -117
  74. package/src/commands/helpers/open.ts +67 -67
  75. package/src/commands/hosting/hosting.ts +360 -360
  76. package/src/commands/index.ts +13 -13
  77. package/src/commands/lowcode/app.ts +34 -34
  78. package/src/commands/lowcode/comps.ts +322 -322
  79. package/src/commands/lowcode/index.ts +1 -1
  80. package/src/commands/lowcode/utils.ts +24 -24
  81. package/src/commands/run/image/index.ts +4 -4
  82. package/src/commands/run/standalonegateway/common.ts +7 -7
  83. package/src/commands/run/standalonegateway/create.ts +85 -85
  84. package/src/commands/run/standalonegateway/destroy.ts +59 -59
  85. package/src/commands/run/standalonegateway/index.ts +4 -4
  86. package/src/commands/run/standalonegateway/list.ts +53 -53
  87. package/src/commands/run/standalonegateway/package.ts +62 -62
  88. package/src/commands/run/standalonegateway/turn.ts +63 -63
  89. package/src/commands/run/version/index.ts +4 -4
  90. package/src/commands/smart.ts +132 -132
  91. package/src/commands/storage/storage.ts +464 -464
  92. package/src/commands/third/thirdAttach.ts +49 -49
  93. package/src/completion/index.ts +13 -13
  94. package/src/decorators/captureError.ts +25 -25
  95. package/src/decorators/constants.ts +12 -12
  96. package/src/decorators/deprecate.ts +25 -25
  97. package/src/decorators/guard.ts +42 -42
  98. package/src/decorators/index.ts +7 -7
  99. package/src/decorators/injectParams.ts +54 -54
  100. package/src/decorators/params/common.ts +28 -28
  101. package/src/decorators/params/index.ts +35 -35
  102. package/src/env/domain.ts +33 -33
  103. package/src/env/index.ts +63 -63
  104. package/src/env/login.ts +80 -80
  105. package/src/error.ts +36 -36
  106. package/src/function/alias.ts +43 -43
  107. package/src/function/base.ts +253 -253
  108. package/src/function/code.ts +55 -55
  109. package/src/function/concurrency.ts +57 -57
  110. package/src/function/create.ts +78 -78
  111. package/src/function/delete.ts +42 -42
  112. package/src/function/index.ts +10 -10
  113. package/src/function/layer/attach.ts +68 -68
  114. package/src/function/layer/create.ts +63 -63
  115. package/src/function/layer/delete.ts +21 -21
  116. package/src/function/layer/download.ts +54 -54
  117. package/src/function/layer/index.ts +7 -7
  118. package/src/function/layer/list.ts +32 -32
  119. package/src/function/layer/sort.ts +24 -24
  120. package/src/function/trigger.ts +97 -97
  121. package/src/function/update.ts +35 -35
  122. package/src/function/version.ts +38 -38
  123. package/src/function/vpc.ts +22 -22
  124. package/src/gateway/index.ts +137 -137
  125. package/src/hosting.ts +212 -212
  126. package/src/index.ts +13 -13
  127. package/src/logger.ts +17 -17
  128. package/src/run/create.ts +23 -23
  129. package/src/run/delete.ts +15 -15
  130. package/src/run/image/build.ts +36 -36
  131. package/src/run/image/delete.ts +13 -13
  132. package/src/run/image/index.ts +3 -3
  133. package/src/run/image/info.ts +26 -26
  134. package/src/run/list.ts +29 -29
  135. package/src/run/repo.ts +24 -24
  136. package/src/run/service/deployPackage.ts +1 -1
  137. package/src/run/standalonegateway/create.ts +24 -24
  138. package/src/run/standalonegateway/destroy.ts +19 -19
  139. package/src/run/standalonegateway/index.ts +4 -4
  140. package/src/run/standalonegateway/list.ts +74 -74
  141. package/src/run/standalonegateway/package/list.ts +24 -24
  142. package/src/run/standalonegateway/turn/index.ts +1 -1
  143. package/src/run/standalonegateway/turn/off.ts +19 -19
  144. package/src/run/standalonegateway/turn/on.ts +19 -19
  145. package/src/run/version/create.ts +68 -68
  146. package/src/run/version/delete.ts +15 -15
  147. package/src/run/version/index.ts +5 -5
  148. package/src/run/version/list.ts +16 -16
  149. package/src/run/version/modify.ts +16 -16
  150. package/src/run/version/repo.ts +27 -27
  151. package/src/run/version/update.ts +58 -58
  152. package/src/storage.ts +114 -114
  153. package/src/third/index.ts +12 -12
  154. package/src/utils/auth.ts +15 -15
  155. package/src/utils/cli-table.ts +23 -23
  156. package/src/utils/config.ts +39 -39
  157. package/src/utils/env.ts +244 -244
  158. package/src/utils/fs/del.ts +5 -5
  159. package/src/utils/fs/index.ts +71 -71
  160. package/src/utils/function-packer.ts +97 -97
  161. package/src/utils/log.ts +81 -81
  162. package/src/utils/net/cloud-api-request.ts +62 -62
  163. package/src/utils/net/credential.ts +53 -53
  164. package/src/utils/net/index.ts +4 -4
  165. package/src/utils/net/manager-service.ts +36 -36
  166. package/src/utils/net/proxy.ts +6 -6
  167. package/src/utils/notice.ts +28 -28
  168. package/src/utils/output/highlight.ts +5 -5
  169. package/src/utils/output/index.ts +2 -2
  170. package/src/utils/output/link.ts +10 -10
  171. package/src/utils/output/loading.ts +82 -82
  172. package/src/utils/parallel.ts +82 -82
  173. package/src/utils/platform/index.ts +2 -2
  174. package/src/utils/platform/mac.ts +21 -21
  175. package/src/utils/platform/os.ts +64 -64
  176. package/src/utils/platform/port.ts +10 -10
  177. package/src/utils/progress-bar.ts +38 -38
  178. package/src/utils/prompt/select.ts +59 -59
  179. package/src/utils/reporter/agree.ts +20 -20
  180. package/src/utils/reporter/download.ts +26 -26
  181. package/src/utils/reporter/index.ts +3 -3
  182. package/src/utils/reporter/usage.ts +20 -20
  183. package/src/utils/store/auth.ts +49 -49
  184. package/src/utils/store/common.ts +8 -8
  185. package/src/utils/store/db.ts +68 -68
  186. package/src/utils/store/index.ts +4 -4
  187. package/src/utils/store/usage.ts +12 -12
  188. package/src/utils/template.ts +170 -170
  189. package/src/utils/tools/encoding.ts +8 -8
  190. package/src/utils/tools/index.ts +4 -4
  191. package/src/utils/tools/object.ts +33 -33
  192. package/src/utils/tools/time.ts +38 -38
  193. package/src/utils/tools/uid.ts +19 -19
  194. package/templates/html/loginFail.html +90 -90
  195. package/templates/html/loginSuccess.html +86 -86
  196. package/templates/server/node/_gitignore +54 -54
  197. package/templates/server/node/cloudbaserc.json +10 -10
  198. package/templates/server/node/index.js +5 -5
  199. package/templates/server/node/package.json +9 -9
  200. package/tsconfig.json +19 -19
  201. package/tsconfig.test.json +13 -13
@@ -1,81 +1,81 @@
1
- import { prompt } from 'enquirer'
2
- import { Command, ICommand } from '../common'
3
- import { loadingFactory } from '../../utils'
4
- import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
5
- import { deleteGateway, queryGateway } from '../../gateway'
6
-
7
- @ICommand()
8
- export class DeleteServiceCommand extends Command {
9
- get options() {
10
- return {
11
- cmd: 'service',
12
- childCmd: 'delete',
13
- deprecateCmd: 'service:delete',
14
- options: [
15
- {
16
- flags: '-e, --envId <envId>',
17
- desc: '环境 Id'
18
- },
19
- {
20
- flags: '-p, --service-path <servicePath>',
21
- desc: 'HTTP 访问服务路径,删除此路径对应的 HTTP 访问服务'
22
- },
23
- {
24
- flags: '-i, --service-id <serviceId>',
25
- desc: 'HTTP 访问服务 Id,删除此 Id 对应的 HTTP 访问服务'
26
- },
27
- {
28
- flags: '-n, --name <name>',
29
- desc: '云函数函数名称,删除此函数绑定的所有 HTTP 访问服务'
30
- }
31
- ],
32
- desc: '删除 HTTP 访问服务'
33
- }
34
- }
35
-
36
- @InjectParams()
37
- async execute(@EnvId() envId, @ArgsOptions() options) {
38
- let { servicePath, serviceId, name } = options
39
-
40
- // 当没有指定要删除的服务时,获取所有服务列表,并提示
41
- if (!servicePath && !serviceId && (!name || typeof name !== 'string')) {
42
- const { APISet: allServices } = await queryGateway({
43
- envId
44
- })
45
-
46
- const { selected } = await prompt<any>({
47
- type: 'select',
48
- name: 'selected',
49
- message: '请选择需要删除的 Service',
50
- choices: allServices.map((item) => ({
51
- name: `函数名:${item.Name}/路径:${item.Path}`,
52
- value: item.APIId
53
- })),
54
- result(choices) {
55
- return Object.values(this.map(choices)) as any
56
- }
57
- })
58
- serviceId = selected?.[0]
59
- }
60
-
61
- if (servicePath) {
62
- servicePath = servicePath[0] === '/' ? servicePath : `/${servicePath}`
63
- }
64
-
65
- const loading = loadingFactory()
66
- loading.start('HTTP 访问服务删除中...')
67
-
68
- try {
69
- await deleteGateway({
70
- envId,
71
- name,
72
- path: servicePath,
73
- gatewayId: serviceId
74
- })
75
- loading.succeed('HTTP 访问服务删除成功!')
76
- } catch (e) {
77
- loading.stop()
78
- throw e
79
- }
80
- }
81
- }
1
+ import { prompt } from 'enquirer'
2
+ import { Command, ICommand } from '../common'
3
+ import { loadingFactory } from '../../utils'
4
+ import { InjectParams, EnvId, ArgsOptions } from '../../decorators'
5
+ import { deleteGateway, queryGateway } from '../../gateway'
6
+
7
+ @ICommand()
8
+ export class DeleteServiceCommand extends Command {
9
+ get options() {
10
+ return {
11
+ cmd: 'service',
12
+ childCmd: 'delete',
13
+ deprecateCmd: 'service:delete',
14
+ options: [
15
+ {
16
+ flags: '-e, --envId <envId>',
17
+ desc: '环境 Id'
18
+ },
19
+ {
20
+ flags: '-p, --service-path <servicePath>',
21
+ desc: 'HTTP 访问服务路径,删除此路径对应的 HTTP 访问服务'
22
+ },
23
+ {
24
+ flags: '-i, --service-id <serviceId>',
25
+ desc: 'HTTP 访问服务 Id,删除此 Id 对应的 HTTP 访问服务'
26
+ },
27
+ {
28
+ flags: '-n, --name <name>',
29
+ desc: '云函数函数名称,删除此函数绑定的所有 HTTP 访问服务'
30
+ }
31
+ ],
32
+ desc: '删除 HTTP 访问服务'
33
+ }
34
+ }
35
+
36
+ @InjectParams()
37
+ async execute(@EnvId() envId, @ArgsOptions() options) {
38
+ let { servicePath, serviceId, name } = options
39
+
40
+ // 当没有指定要删除的服务时,获取所有服务列表,并提示
41
+ if (!servicePath && !serviceId && (!name || typeof name !== 'string')) {
42
+ const { APISet: allServices } = await queryGateway({
43
+ envId
44
+ })
45
+
46
+ const { selected } = await prompt<any>({
47
+ type: 'select',
48
+ name: 'selected',
49
+ message: '请选择需要删除的 Service',
50
+ choices: allServices.map((item) => ({
51
+ name: `函数名:${item.Name}/路径:${item.Path}`,
52
+ value: item.APIId
53
+ })),
54
+ result(choices) {
55
+ return Object.values(this.map(choices)) as any
56
+ }
57
+ })
58
+ serviceId = selected?.[0]
59
+ }
60
+
61
+ if (servicePath) {
62
+ servicePath = servicePath[0] === '/' ? servicePath : `/${servicePath}`
63
+ }
64
+
65
+ const loading = loadingFactory()
66
+ loading.start('HTTP 访问服务删除中...')
67
+
68
+ try {
69
+ await deleteGateway({
70
+ envId,
71
+ name,
72
+ path: servicePath,
73
+ gatewayId: serviceId
74
+ })
75
+ loading.succeed('HTTP 访问服务删除成功!')
76
+ } catch (e) {
77
+ loading.stop()
78
+ throw e
79
+ }
80
+ }
81
+ }
@@ -1,159 +1,159 @@
1
- import { Command, ICommand } from '../common'
2
- import { CloudBaseError } from '../../error'
3
- import { loadingFactory, printHorizontalTable, formatDate } from '../../utils'
4
- import { InjectParams, EnvId, ArgsParams, ArgsOptions, Log, Logger } from '../../decorators'
5
- import { bindGatewayDomain, queryGatewayDomain, unbindGatewayDomain } from '../../gateway'
6
-
7
- const SERVICE_STATUS_MAP = {
8
- 1: '部署中',
9
- 2: '部署失败',
10
- 3: '部署成功',
11
- 4: '删除中',
12
- 5: '删除失败'
13
- }
14
-
15
- // 暂时无法支持
16
- export class BindCustomDomainCommand extends Command {
17
- get options() {
18
- return {
19
- cmd: 'service',
20
- childCmd: { cmd: 'domain', desc: 'HTTP 访问服务域名管理' },
21
- childSubCmd: 'bind <domain>',
22
- deprecateCmd: 'service:domain:bind <domain>',
23
- options: [
24
- {
25
- flags: '-e, --envId <envId>',
26
- desc: '环境 Id'
27
- }
28
- ],
29
- desc: '绑定自定义HTTP 访问服务域名'
30
- }
31
- }
32
-
33
- @InjectParams()
34
- async execute(@EnvId() envId, @ArgsParams() params) {
35
- const domain = params?.[0]
36
-
37
- console.log(domain)
38
-
39
- if (!domain) {
40
- throw new CloudBaseError('请指定需要绑定的HTTP 访问服务域名!')
41
- }
42
-
43
- const loading = loadingFactory()
44
- loading.start(`HTTP 访问服务域名 [${domain}] 绑定中...`)
45
-
46
- try {
47
- await bindGatewayDomain({
48
- envId,
49
- domain
50
- })
51
- loading.succeed(`HTTP 访问服务域名[${domain}] 绑定成功!`)
52
- } catch (e) {
53
- loading.stop()
54
- throw e
55
- }
56
- }
57
- }
58
-
59
- @ICommand()
60
- export class GetCustomDomainsCommand extends Command {
61
- get options() {
62
- return {
63
- cmd: 'service',
64
- childCmd: 'domain',
65
- childSubCmd: 'list',
66
- deprecateCmd: 'service:domain:list',
67
- options: [
68
- {
69
- flags: '-e, --envId <envId>',
70
- desc: '环境 Id'
71
- },
72
- {
73
- flags: '-d, --domain <domain>',
74
- desc: '域名'
75
- }
76
- ],
77
- desc: '查询 HTTP 访问服务自定义域名'
78
- }
79
- }
80
-
81
- @InjectParams()
82
- async execute(@EnvId() envId, @ArgsOptions() options, @Log() log: Logger) {
83
- const { domain: domainName } = options
84
-
85
- if (!envId && !domainName) {
86
- throw new CloudBaseError('请指定需要查询的环境 ID 或HTTP 访问服务域名!')
87
- }
88
-
89
- const loading = loadingFactory()
90
- loading.start('查询HTTP 访问服务域名中...')
91
-
92
- try {
93
- const res = await queryGatewayDomain({
94
- envId,
95
- domain: domainName
96
- })
97
-
98
- loading.succeed('查询HTTP 访问服务域名成功!')
99
-
100
- if (!res?.ServiceSet?.length) {
101
- log.info('HTTP 访问服务域名为空!')
102
- return
103
- }
104
-
105
- const head = ['域名', '状态', '创建时间']
106
- const tableData = res.ServiceSet.map((item) => [
107
- item.Domain,
108
- SERVICE_STATUS_MAP[item.Status],
109
- formatDate(item.OpenTime * 1000, 'yyyy-MM-dd hh:mm:ss')
110
- ])
111
- printHorizontalTable(head, tableData)
112
- } catch (e) {
113
- loading.stop()
114
- throw e
115
- }
116
- }
117
- }
118
-
119
- @ICommand()
120
- export class UnbindCustomDomainCommand extends Command {
121
- get options() {
122
- return {
123
- cmd: 'service',
124
- childCmd: 'domain',
125
- childSubCmd: 'unbind <domain>',
126
- deprecateCmd: 'service:domain:unbind <domain>',
127
- options: [
128
- {
129
- flags: '-e, --envId <envId>',
130
- desc: '环境 Id'
131
- }
132
- ],
133
- desc: '解绑自定义HTTP 访问服务域名'
134
- }
135
- }
136
-
137
- @InjectParams()
138
- async execute(@EnvId() envId, @ArgsParams() params) {
139
- const domain = params?.[0]
140
-
141
- if (!domain) {
142
- throw new CloudBaseError('请指定需要解绑的HTTP 访问服务域名!')
143
- }
144
-
145
- const loading = loadingFactory()
146
- loading.start(`HTTP Service域名 [${domain}] 解绑中...`)
147
-
148
- try {
149
- await unbindGatewayDomain({
150
- envId,
151
- domain
152
- })
153
- loading.succeed(`HTTP Service域名 [${domain}] 解绑成功!`)
154
- } catch (e) {
155
- loading.stop()
156
- throw e
157
- }
158
- }
159
- }
1
+ import { Command, ICommand } from '../common'
2
+ import { CloudBaseError } from '../../error'
3
+ import { loadingFactory, printHorizontalTable, formatDate } from '../../utils'
4
+ import { InjectParams, EnvId, ArgsParams, ArgsOptions, Log, Logger } from '../../decorators'
5
+ import { bindGatewayDomain, queryGatewayDomain, unbindGatewayDomain } from '../../gateway'
6
+
7
+ const SERVICE_STATUS_MAP = {
8
+ 1: '部署中',
9
+ 2: '部署失败',
10
+ 3: '部署成功',
11
+ 4: '删除中',
12
+ 5: '删除失败'
13
+ }
14
+
15
+ // 暂时无法支持
16
+ export class BindCustomDomainCommand extends Command {
17
+ get options() {
18
+ return {
19
+ cmd: 'service',
20
+ childCmd: { cmd: 'domain', desc: 'HTTP 访问服务域名管理' },
21
+ childSubCmd: 'bind <domain>',
22
+ deprecateCmd: 'service:domain:bind <domain>',
23
+ options: [
24
+ {
25
+ flags: '-e, --envId <envId>',
26
+ desc: '环境 Id'
27
+ }
28
+ ],
29
+ desc: '绑定自定义HTTP 访问服务域名'
30
+ }
31
+ }
32
+
33
+ @InjectParams()
34
+ async execute(@EnvId() envId, @ArgsParams() params) {
35
+ const domain = params?.[0]
36
+
37
+ console.log(domain)
38
+
39
+ if (!domain) {
40
+ throw new CloudBaseError('请指定需要绑定的HTTP 访问服务域名!')
41
+ }
42
+
43
+ const loading = loadingFactory()
44
+ loading.start(`HTTP 访问服务域名 [${domain}] 绑定中...`)
45
+
46
+ try {
47
+ await bindGatewayDomain({
48
+ envId,
49
+ domain
50
+ })
51
+ loading.succeed(`HTTP 访问服务域名[${domain}] 绑定成功!`)
52
+ } catch (e) {
53
+ loading.stop()
54
+ throw e
55
+ }
56
+ }
57
+ }
58
+
59
+ @ICommand()
60
+ export class GetCustomDomainsCommand extends Command {
61
+ get options() {
62
+ return {
63
+ cmd: 'service',
64
+ childCmd: 'domain',
65
+ childSubCmd: 'list',
66
+ deprecateCmd: 'service:domain:list',
67
+ options: [
68
+ {
69
+ flags: '-e, --envId <envId>',
70
+ desc: '环境 Id'
71
+ },
72
+ {
73
+ flags: '-d, --domain <domain>',
74
+ desc: '域名'
75
+ }
76
+ ],
77
+ desc: '查询 HTTP 访问服务自定义域名'
78
+ }
79
+ }
80
+
81
+ @InjectParams()
82
+ async execute(@EnvId() envId, @ArgsOptions() options, @Log() log: Logger) {
83
+ const { domain: domainName } = options
84
+
85
+ if (!envId && !domainName) {
86
+ throw new CloudBaseError('请指定需要查询的环境 ID 或HTTP 访问服务域名!')
87
+ }
88
+
89
+ const loading = loadingFactory()
90
+ loading.start('查询HTTP 访问服务域名中...')
91
+
92
+ try {
93
+ const res = await queryGatewayDomain({
94
+ envId,
95
+ domain: domainName
96
+ })
97
+
98
+ loading.succeed('查询HTTP 访问服务域名成功!')
99
+
100
+ if (!res?.ServiceSet?.length) {
101
+ log.info('HTTP 访问服务域名为空!')
102
+ return
103
+ }
104
+
105
+ const head = ['域名', '状态', '创建时间']
106
+ const tableData = res.ServiceSet.map((item) => [
107
+ item.Domain,
108
+ SERVICE_STATUS_MAP[item.Status],
109
+ formatDate(item.OpenTime * 1000, 'yyyy-MM-dd hh:mm:ss')
110
+ ])
111
+ printHorizontalTable(head, tableData)
112
+ } catch (e) {
113
+ loading.stop()
114
+ throw e
115
+ }
116
+ }
117
+ }
118
+
119
+ @ICommand()
120
+ export class UnbindCustomDomainCommand extends Command {
121
+ get options() {
122
+ return {
123
+ cmd: 'service',
124
+ childCmd: 'domain',
125
+ childSubCmd: 'unbind <domain>',
126
+ deprecateCmd: 'service:domain:unbind <domain>',
127
+ options: [
128
+ {
129
+ flags: '-e, --envId <envId>',
130
+ desc: '环境 Id'
131
+ }
132
+ ],
133
+ desc: '解绑自定义HTTP 访问服务域名'
134
+ }
135
+ }
136
+
137
+ @InjectParams()
138
+ async execute(@EnvId() envId, @ArgsParams() params) {
139
+ const domain = params?.[0]
140
+
141
+ if (!domain) {
142
+ throw new CloudBaseError('请指定需要解绑的HTTP 访问服务域名!')
143
+ }
144
+
145
+ const loading = loadingFactory()
146
+ loading.start(`HTTP Service域名 [${domain}] 解绑中...`)
147
+
148
+ try {
149
+ await unbindGatewayDomain({
150
+ envId,
151
+ domain
152
+ })
153
+ loading.succeed(`HTTP Service域名 [${domain}] 解绑成功!`)
154
+ } catch (e) {
155
+ loading.stop()
156
+ throw e
157
+ }
158
+ }
159
+ }
@@ -1,5 +1,5 @@
1
- export * from './create'
2
- export * from './delete'
3
- export * from './domain'
4
- export * from './list'
5
- export * from './switch'
1
+ export * from './create'
2
+ export * from './delete'
3
+ export * from './domain'
4
+ export * from './list'
5
+ export * from './switch'
@@ -1,76 +1,76 @@
1
- import { Command, ICommand } from '../common'
2
- import { CloudBaseError } from '../../error'
3
- import { queryGateway } from '../../gateway'
4
-
5
- import { InjectParams, EnvId, ArgsOptions, Log, Logger } from '../../decorators'
6
- import { printHorizontalTable, loadingFactory, formatDate } from '../../utils'
7
-
8
- @ICommand()
9
- export class ListServiceCommand extends Command {
10
- get options() {
11
- return {
12
- cmd: 'service',
13
- childCmd: 'list',
14
- deprecateCmd: 'service:list',
15
- options: [
16
- {
17
- flags: '-e, --envId <envId>',
18
- desc: '环境 Id'
19
- },
20
- {
21
- flags: '-d, --domain <domain>',
22
- desc: '自定义域名'
23
- },
24
- {
25
- flags: '-p, --service-path <servicePath>',
26
- desc: 'Service Path'
27
- },
28
- {
29
- flags: '-id, --service-id <serviceId>',
30
- desc: 'Service Id'
31
- }
32
- ],
33
- desc: '获取 HTTP 访问服务列表'
34
- }
35
- }
36
-
37
- @InjectParams()
38
- async execute(@EnvId() envId, @ArgsOptions() options, @Log() log: Logger) {
39
- const { domain: domainName, servicePath, serviceId } = options
40
-
41
- if (!envId && !domainName) {
42
- throw new CloudBaseError('请指定需要查询的环境 ID 或HTTP 访问服务自定义域名!')
43
- }
44
-
45
- const loading = loadingFactory()
46
- loading.start('查询HTTP 访问服务中...')
47
-
48
- try {
49
- const res = await queryGateway({
50
- envId,
51
- domain: domainName,
52
- path: servicePath,
53
- gatewayId: serviceId
54
- })
55
-
56
- loading.stop()
57
-
58
- if (res?.APISet?.length === 0) {
59
- log.info('HTTP 访问服务为空')
60
- return
61
- }
62
-
63
- const head = ['触发路径', '关联资源', '触发类型', '创建时间']
64
- const tableData = res.APISet.map((item) => [
65
- item.Path,
66
- item.Name,
67
- item.Type === 1 ? '云函数' : '云托管',
68
- formatDate(item.CreateTime * 1000, 'yyyy-MM-dd hh:mm:ss')
69
- ])
70
- printHorizontalTable(head, tableData)
71
- } catch (e) {
72
- loading.stop()
73
- throw e
74
- }
75
- }
76
- }
1
+ import { Command, ICommand } from '../common'
2
+ import { CloudBaseError } from '../../error'
3
+ import { queryGateway } from '../../gateway'
4
+
5
+ import { InjectParams, EnvId, ArgsOptions, Log, Logger } from '../../decorators'
6
+ import { printHorizontalTable, loadingFactory, formatDate } from '../../utils'
7
+
8
+ @ICommand()
9
+ export class ListServiceCommand extends Command {
10
+ get options() {
11
+ return {
12
+ cmd: 'service',
13
+ childCmd: 'list',
14
+ deprecateCmd: 'service:list',
15
+ options: [
16
+ {
17
+ flags: '-e, --envId <envId>',
18
+ desc: '环境 Id'
19
+ },
20
+ {
21
+ flags: '-d, --domain <domain>',
22
+ desc: '自定义域名'
23
+ },
24
+ {
25
+ flags: '-p, --service-path <servicePath>',
26
+ desc: 'Service Path'
27
+ },
28
+ {
29
+ flags: '-id, --service-id <serviceId>',
30
+ desc: 'Service Id'
31
+ }
32
+ ],
33
+ desc: '获取 HTTP 访问服务列表'
34
+ }
35
+ }
36
+
37
+ @InjectParams()
38
+ async execute(@EnvId() envId, @ArgsOptions() options, @Log() log: Logger) {
39
+ const { domain: domainName, servicePath, serviceId } = options
40
+
41
+ if (!envId && !domainName) {
42
+ throw new CloudBaseError('请指定需要查询的环境 ID 或HTTP 访问服务自定义域名!')
43
+ }
44
+
45
+ const loading = loadingFactory()
46
+ loading.start('查询HTTP 访问服务中...')
47
+
48
+ try {
49
+ const res = await queryGateway({
50
+ envId,
51
+ domain: domainName,
52
+ path: servicePath,
53
+ gatewayId: serviceId
54
+ })
55
+
56
+ loading.stop()
57
+
58
+ if (res?.APISet?.length === 0) {
59
+ log.info('HTTP 访问服务为空')
60
+ return
61
+ }
62
+
63
+ const head = ['触发路径', '关联资源', '触发类型', '创建时间']
64
+ const tableData = res.APISet.map((item) => [
65
+ item.Path,
66
+ item.Name,
67
+ item.Type === 1 ? '云函数' : '云托管',
68
+ formatDate(item.CreateTime * 1000, 'yyyy-MM-dd hh:mm:ss')
69
+ ])
70
+ printHorizontalTable(head, tableData)
71
+ } catch (e) {
72
+ loading.stop()
73
+ throw e
74
+ }
75
+ }
76
+ }