@cloudbase/cli 2.0.3 → 2.0.5

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 (217) 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/LICENSE +5 -5
  7. package/README.md +35 -35
  8. package/bin/cloudbase.js +5 -5
  9. package/changelog.md +6 -6
  10. package/jest.config.js +17 -17
  11. package/lib/commands/account/login.js +18 -18
  12. package/lib/commands/run/list.js +2 -3
  13. package/lib/commands/storage/storage.js +1 -1
  14. package/lib/env/login.js +7 -7
  15. package/lib/utils/tcbrApi/callTcbrApi.js +2 -2
  16. package/package.json +3 -3
  17. package/post-install.js +61 -61
  18. package/runtime/nodejs/bootstrap.js +255 -255
  19. package/runtime/nodejs/runtime.js +183 -183
  20. package/src/auth/index.ts +1 -1
  21. package/src/auth/login.ts +91 -91
  22. package/src/auth/logout.ts +7 -7
  23. package/src/commands/account/index.ts +2 -2
  24. package/src/commands/account/login.ts +192 -192
  25. package/src/commands/account/logout.ts +24 -24
  26. package/src/commands/env/base.ts +90 -90
  27. package/src/commands/env/create.ts +92 -92
  28. package/src/commands/env/domain.ts +186 -186
  29. package/src/commands/env/index.ts +4 -4
  30. package/src/commands/env/login.ts +235 -235
  31. package/src/commands/framework/index.ts +124 -124
  32. package/src/commands/functions/alias/getRoute.ts +76 -76
  33. package/src/commands/functions/alias/index.ts +2 -2
  34. package/src/commands/functions/alias/setRoute.ts +82 -82
  35. package/src/commands/functions/code-download.ts +100 -100
  36. package/src/commands/functions/code-update.ts +62 -62
  37. package/src/commands/functions/concurrency/delete.ts +45 -45
  38. package/src/commands/functions/concurrency/index.ts +2 -2
  39. package/src/commands/functions/concurrency/list.ts +58 -58
  40. package/src/commands/functions/concurrency/set.ts +47 -47
  41. package/src/commands/functions/config-update.ts +76 -76
  42. package/src/commands/functions/copy.ts +62 -62
  43. package/src/commands/functions/delete.ts +79 -79
  44. package/src/commands/functions/deploy.ts +293 -293
  45. package/src/commands/functions/detail.ts +138 -138
  46. package/src/commands/functions/index.ts +16 -16
  47. package/src/commands/functions/invoke.ts +121 -121
  48. package/src/commands/functions/layer/bind.ts +182 -182
  49. package/src/commands/functions/layer/common.ts +8 -8
  50. package/src/commands/functions/layer/create.ts +49 -49
  51. package/src/commands/functions/layer/delete.ts +73 -73
  52. package/src/commands/functions/layer/download.ts +92 -92
  53. package/src/commands/functions/layer/index.ts +7 -7
  54. package/src/commands/functions/layer/list.ts +94 -94
  55. package/src/commands/functions/layer/sort.ts +76 -76
  56. package/src/commands/functions/list.ts +68 -68
  57. package/src/commands/functions/log.ts +148 -148
  58. package/src/commands/functions/run.ts +249 -249
  59. package/src/commands/functions/trigger-create.ts +79 -79
  60. package/src/commands/functions/trigger-delete.ts +105 -105
  61. package/src/commands/functions/version/index.ts +1 -1
  62. package/src/commands/functions/version/list.ts +73 -73
  63. package/src/commands/functions/version/publish.ts +43 -43
  64. package/src/commands/gateway/create.ts +109 -109
  65. package/src/commands/gateway/delete.ts +81 -81
  66. package/src/commands/gateway/domain.ts +159 -159
  67. package/src/commands/gateway/index.ts +5 -5
  68. package/src/commands/gateway/list.ts +76 -76
  69. package/src/commands/gateway/switch.ts +107 -107
  70. package/src/commands/helpers/index.ts +2 -2
  71. package/src/commands/helpers/init.ts +431 -431
  72. package/src/commands/helpers/new.ts +117 -117
  73. package/src/commands/helpers/open.ts +67 -67
  74. package/src/commands/hosting/hosting.ts +360 -360
  75. package/src/commands/index.ts +13 -13
  76. package/src/commands/lowcode/app.ts +34 -34
  77. package/src/commands/lowcode/comps.ts +322 -322
  78. package/src/commands/lowcode/index.ts +1 -1
  79. package/src/commands/lowcode/utils.ts +24 -24
  80. package/src/commands/run/image/index.ts +4 -4
  81. package/src/commands/run/list.ts +2 -3
  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/standalonegateway/create.ts +24 -24
  137. package/src/run/standalonegateway/destroy.ts +19 -19
  138. package/src/run/standalonegateway/index.ts +4 -4
  139. package/src/run/standalonegateway/list.ts +74 -74
  140. package/src/run/standalonegateway/package/list.ts +24 -24
  141. package/src/run/standalonegateway/turn/index.ts +1 -1
  142. package/src/run/standalonegateway/turn/off.ts +19 -19
  143. package/src/run/standalonegateway/turn/on.ts +19 -19
  144. package/src/run/version/create.ts +68 -68
  145. package/src/run/version/delete.ts +15 -15
  146. package/src/run/version/index.ts +5 -5
  147. package/src/run/version/list.ts +16 -16
  148. package/src/run/version/modify.ts +16 -16
  149. package/src/run/version/repo.ts +27 -27
  150. package/src/run/version/update.ts +58 -58
  151. package/src/storage.ts +114 -114
  152. package/src/third/index.ts +12 -12
  153. package/src/utils/auth.ts +15 -15
  154. package/src/utils/cli-table.ts +23 -23
  155. package/src/utils/config.ts +39 -39
  156. package/src/utils/env.ts +244 -244
  157. package/src/utils/fs/del.ts +5 -5
  158. package/src/utils/fs/index.ts +71 -71
  159. package/src/utils/function-packer.ts +97 -97
  160. package/src/utils/log.ts +81 -81
  161. package/src/utils/net/cloud-api-request.ts +62 -62
  162. package/src/utils/net/credential.ts +53 -53
  163. package/src/utils/net/index.ts +4 -4
  164. package/src/utils/net/manager-service.ts +36 -36
  165. package/src/utils/net/proxy.ts +6 -6
  166. package/src/utils/notice.ts +28 -28
  167. package/src/utils/output/highlight.ts +5 -5
  168. package/src/utils/output/index.ts +2 -2
  169. package/src/utils/output/link.ts +10 -10
  170. package/src/utils/output/loading.ts +82 -82
  171. package/src/utils/parallel.ts +82 -82
  172. package/src/utils/platform/index.ts +2 -2
  173. package/src/utils/platform/mac.ts +21 -21
  174. package/src/utils/platform/os.ts +64 -64
  175. package/src/utils/platform/port.ts +10 -10
  176. package/src/utils/progress-bar.ts +38 -38
  177. package/src/utils/prompt/select.ts +59 -59
  178. package/src/utils/reporter/agree.ts +20 -20
  179. package/src/utils/reporter/download.ts +26 -26
  180. package/src/utils/reporter/index.ts +3 -3
  181. package/src/utils/reporter/usage.ts +20 -20
  182. package/src/utils/store/auth.ts +49 -49
  183. package/src/utils/store/common.ts +8 -8
  184. package/src/utils/store/db.ts +68 -68
  185. package/src/utils/store/index.ts +4 -4
  186. package/src/utils/store/usage.ts +12 -12
  187. package/src/utils/tcbrApi/callTcbrApi.ts +1 -1
  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
  202. package/.vscode/settings.json +0 -3
  203. package/lib/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.js +0 -268
  204. package/lib/utils/tcbrApi/tcbr-cloud-api/error.js +0 -17
  205. package/lib/utils/tcbrApi/tcbr-cloud-api/index.js +0 -17
  206. package/lib/utils/tcbrApi/tcbr-cloud-api/request.js +0 -40
  207. package/lib/utils/tcbrApi/tcbr-cloud-api-request.js +0 -61
  208. package/src/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.ts +0 -363
  209. package/src/utils/tcbrApi/tcbr-cloud-api/error.ts +0 -30
  210. package/src/utils/tcbrApi/tcbr-cloud-api/index.ts +0 -1
  211. package/src/utils/tcbrApi/tcbr-cloud-api/request.ts +0 -28
  212. package/src/utils/tcbrApi/tcbr-cloud-api-request.ts +0 -66
  213. package/types/utils/tcbrApi/tcbr-cloud-api/cloud-api-service.d.ts +0 -51
  214. package/types/utils/tcbrApi/tcbr-cloud-api/error.d.ts +0 -20
  215. package/types/utils/tcbrApi/tcbr-cloud-api/index.d.ts +0 -1
  216. package/types/utils/tcbrApi/tcbr-cloud-api/request.d.ts +0 -4
  217. package/types/utils/tcbrApi/tcbr-cloud-api-request.d.ts +0 -9
package/src/env/index.ts CHANGED
@@ -1,63 +1,63 @@
1
- import { CloudApiService, getMangerService } from '../utils/net'
2
- export * from './domain'
3
- export * from './login'
4
-
5
- const tcbService = CloudApiService.getInstance('tcb')
6
-
7
- // 初始化云开发服务
8
- // 当用户没开通云开发服务时,需要调用此接口初始化云开发服务
9
- export async function initTcb(skey: string) {
10
- const res: any = await tcbService.request('InitTcb', {
11
- Skey: skey
12
- })
13
- return res
14
- }
15
-
16
- // 创建新环境
17
- export async function createEnv({ alias, paymentMode }) {
18
- const { env } = await getMangerService()
19
-
20
- return env.createEnv({
21
- paymentMode,
22
- name: alias
23
- })
24
- }
25
-
26
- // 获取环境信息
27
- export async function getEnvInfo(envId: string) {
28
- const { EnvList } = await tcbService.request('DescribeEnvs', {
29
- EnvId: envId
30
- })
31
-
32
- return EnvList?.length ? EnvList[0] : {}
33
- }
34
-
35
- // 列出所有环境
36
- export async function listEnvs(options: { source?: string[] } = {}): Promise<any[]> {
37
- const { source } = options
38
- const res: any = await tcbService.request('DescribeEnvs', {
39
- IsVisible: false,
40
- Channels: ['dcloud']
41
- })
42
- let { EnvList = [] } = res
43
- // 过滤为指定 source 环境
44
- if (source && Array.isArray(source)) {
45
- EnvList = EnvList.filter((item) => source.includes(item.Source))
46
- }
47
- return EnvList
48
- }
49
-
50
- // 修改环境信息
51
- export async function updateEnvInfo({ envId, alias }) {
52
- await tcbService.request('ModifyEnv', {
53
- EnvId: envId,
54
- Alias: alias
55
- })
56
- }
57
-
58
- // 获取 Qcloud 环境数量上限
59
- export async function getEnvLimit(source = 'qcloud') {
60
- return tcbService.request('DescribeEnvLimit', {
61
- Source: source
62
- })
63
- }
1
+ import { CloudApiService, getMangerService } from '../utils/net'
2
+ export * from './domain'
3
+ export * from './login'
4
+
5
+ const tcbService = CloudApiService.getInstance('tcb')
6
+
7
+ // 初始化云开发服务
8
+ // 当用户没开通云开发服务时,需要调用此接口初始化云开发服务
9
+ export async function initTcb(skey: string) {
10
+ const res: any = await tcbService.request('InitTcb', {
11
+ Skey: skey
12
+ })
13
+ return res
14
+ }
15
+
16
+ // 创建新环境
17
+ export async function createEnv({ alias, paymentMode }) {
18
+ const { env } = await getMangerService()
19
+
20
+ return env.createEnv({
21
+ paymentMode,
22
+ name: alias
23
+ })
24
+ }
25
+
26
+ // 获取环境信息
27
+ export async function getEnvInfo(envId: string) {
28
+ const { EnvList } = await tcbService.request('DescribeEnvs', {
29
+ EnvId: envId
30
+ })
31
+
32
+ return EnvList?.length ? EnvList[0] : {}
33
+ }
34
+
35
+ // 列出所有环境
36
+ export async function listEnvs(options: { source?: string[] } = {}): Promise<any[]> {
37
+ const { source } = options
38
+ const res: any = await tcbService.request('DescribeEnvs', {
39
+ IsVisible: false,
40
+ Channels: ['dcloud']
41
+ })
42
+ let { EnvList = [] } = res
43
+ // 过滤为指定 source 环境
44
+ if (source && Array.isArray(source)) {
45
+ EnvList = EnvList.filter((item) => source.includes(item.Source))
46
+ }
47
+ return EnvList
48
+ }
49
+
50
+ // 修改环境信息
51
+ export async function updateEnvInfo({ envId, alias }) {
52
+ await tcbService.request('ModifyEnv', {
53
+ EnvId: envId,
54
+ Alias: alias
55
+ })
56
+ }
57
+
58
+ // 获取 Qcloud 环境数量上限
59
+ export async function getEnvLimit(source = 'qcloud') {
60
+ return tcbService.request('DescribeEnvLimit', {
61
+ Source: source
62
+ })
63
+ }
package/src/env/login.ts CHANGED
@@ -1,80 +1,80 @@
1
- import crypto from 'crypto'
2
- import { CloudApiService } from '../utils/net'
3
- import { CloudBaseError } from '../error'
4
-
5
- const publicRsaKey = `
6
- -----BEGIN PUBLIC KEY-----
7
- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0ZLB0ZpWWFsHPnDDw++Nc2wI3
8
- nl2uyOrIJ5FUfxt4GAmt1Faf5pgMxAnL9exEUrrUDUX8Ri1R0KyfnHQQwCvKt8T8
9
- bgILIJe9UB8e9dvFqgqH2oA8Vqwi0YqDcvFLFJk2BJbm/0QYtZ563FumW8LEXAgu
10
- UeHi/0OZN9vQ33jWMQIDAQAB
11
- -----END PUBLIC KEY-----
12
- `
13
- function rsaEncrypt(data: string): string {
14
- const buffer = Buffer.from(data)
15
- const encrypted = crypto.publicEncrypt(
16
- {
17
- key: publicRsaKey,
18
- padding: crypto.constants.RSA_PKCS1_PADDING
19
- },
20
- buffer
21
- )
22
- return encrypted.toString('base64')
23
- }
24
-
25
- const tcbService = CloudApiService.getInstance('tcb')
26
-
27
- // 拉取登录配置列表
28
- export async function getLoginConfigList({ envId }) {
29
- const { ConfigList = [] }: any = await tcbService.request('DescribeLoginConfigs', {
30
- EnvId: envId
31
- })
32
-
33
- return ConfigList
34
- }
35
-
36
- // 创建登录方式
37
- export async function createLoginConfig({ envId, platform, appId, appSecret }) {
38
- const validPlatform = ['WECHAT-OPEN', 'WECHAT-PUBLIC', 'ANONYMOUS']
39
- if (!validPlatform.includes(platform)) {
40
- throw new CloudBaseError(
41
- `Invalid platform value: ${platform}. Now only support 'WECHAT-OPEN', 'WECHAT-PUBLIC', 'ANONYMOUS`
42
- )
43
- }
44
- const params: any = {
45
- EnvId: envId,
46
- // 平台 “ANONYMOUS" "WECHAT-OPEN" "WECHAT-PUBLIC"
47
- Platform: platform,
48
- PlatformId: appId,
49
- PlatformSecret: rsaEncrypt(appSecret),
50
- Status: 'ENABLE'
51
- }
52
-
53
- await tcbService.request('CreateLoginConfig', params)
54
- }
55
-
56
- // 更新登录方式
57
- export async function updateLoginConfig({
58
- configId,
59
- envId,
60
- status = 'ENABLE',
61
- appId = '',
62
- appSecret = ''
63
- }) {
64
- const validStatus = ['ENABLE', 'DISABLE']
65
- if (!validStatus.includes(status)) {
66
- throw new CloudBaseError(
67
- `Invalid status value: ${status}. Only support 'ENABLE', 'DISABLE'`
68
- )
69
- }
70
- const params: any = {
71
- EnvId: envId,
72
- ConfigId: configId,
73
- Status: status
74
- }
75
-
76
- appId && (params.PlatformId = appId)
77
- appSecret && (params.PlatformSecret = rsaEncrypt(appSecret))
78
-
79
- await tcbService.request('UpdateLoginConfig', params)
80
- }
1
+ import crypto from 'crypto'
2
+ import { CloudApiService } from '../utils/net'
3
+ import { CloudBaseError } from '../error'
4
+
5
+ const publicRsaKey = `
6
+ -----BEGIN PUBLIC KEY-----
7
+ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0ZLB0ZpWWFsHPnDDw++Nc2wI3
8
+ nl2uyOrIJ5FUfxt4GAmt1Faf5pgMxAnL9exEUrrUDUX8Ri1R0KyfnHQQwCvKt8T8
9
+ bgILIJe9UB8e9dvFqgqH2oA8Vqwi0YqDcvFLFJk2BJbm/0QYtZ563FumW8LEXAgu
10
+ UeHi/0OZN9vQ33jWMQIDAQAB
11
+ -----END PUBLIC KEY-----
12
+ `
13
+ function rsaEncrypt(data: string): string {
14
+ const buffer = Buffer.from(data)
15
+ const encrypted = crypto.publicEncrypt(
16
+ {
17
+ key: publicRsaKey,
18
+ padding: crypto.constants.RSA_PKCS1_PADDING
19
+ },
20
+ buffer
21
+ )
22
+ return encrypted.toString('base64')
23
+ }
24
+
25
+ const tcbService = CloudApiService.getInstance('tcb')
26
+
27
+ // 拉取登录配置列表
28
+ export async function getLoginConfigList({ envId }) {
29
+ const { ConfigList = [] }: any = await tcbService.request('DescribeLoginConfigs', {
30
+ EnvId: envId
31
+ })
32
+
33
+ return ConfigList
34
+ }
35
+
36
+ // 创建登录方式
37
+ export async function createLoginConfig({ envId, platform, appId, appSecret }) {
38
+ const validPlatform = ['WECHAT-OPEN', 'WECHAT-PUBLIC', 'ANONYMOUS']
39
+ if (!validPlatform.includes(platform)) {
40
+ throw new CloudBaseError(
41
+ `Invalid platform value: ${platform}. Now only support 'WECHAT-OPEN', 'WECHAT-PUBLIC', 'ANONYMOUS`
42
+ )
43
+ }
44
+ const params: any = {
45
+ EnvId: envId,
46
+ // 平台 “ANONYMOUS" "WECHAT-OPEN" "WECHAT-PUBLIC"
47
+ Platform: platform,
48
+ PlatformId: appId,
49
+ PlatformSecret: rsaEncrypt(appSecret),
50
+ Status: 'ENABLE'
51
+ }
52
+
53
+ await tcbService.request('CreateLoginConfig', params)
54
+ }
55
+
56
+ // 更新登录方式
57
+ export async function updateLoginConfig({
58
+ configId,
59
+ envId,
60
+ status = 'ENABLE',
61
+ appId = '',
62
+ appSecret = ''
63
+ }) {
64
+ const validStatus = ['ENABLE', 'DISABLE']
65
+ if (!validStatus.includes(status)) {
66
+ throw new CloudBaseError(
67
+ `Invalid status value: ${status}. Only support 'ENABLE', 'DISABLE'`
68
+ )
69
+ }
70
+ const params: any = {
71
+ EnvId: envId,
72
+ ConfigId: configId,
73
+ Status: status
74
+ }
75
+
76
+ appId && (params.PlatformId = appId)
77
+ appSecret && (params.PlatformSecret = rsaEncrypt(appSecret))
78
+
79
+ await tcbService.request('UpdateLoginConfig', params)
80
+ }
package/src/error.ts CHANGED
@@ -1,36 +1,36 @@
1
- interface Options {
2
- exit?: number
3
- original?: Error | undefined
4
- code?: string | number
5
- requestId?: string
6
- action?: string
7
- meta?: Record<string, any>
8
- }
9
-
10
- export class CloudBaseError extends Error {
11
- readonly exit: number
12
- readonly message: string
13
- readonly name = 'CloudBaseError'
14
- readonly original: Error | undefined
15
- readonly code: string | number
16
- readonly requestId: string
17
- readonly action: string
18
- readonly meta: any
19
-
20
- constructor(message: string, options: Options = {}) {
21
- super()
22
- this.message = message
23
- const {
24
- code = '',
25
- action = '',
26
- original = null,
27
- requestId = '',
28
- meta = {}
29
- } = options
30
- this.original = original
31
- this.code = code
32
- this.requestId = requestId
33
- this.action = action
34
- this.meta = meta
35
- }
36
- }
1
+ interface Options {
2
+ exit?: number
3
+ original?: Error | undefined
4
+ code?: string | number
5
+ requestId?: string
6
+ action?: string
7
+ meta?: Record<string, any>
8
+ }
9
+
10
+ export class CloudBaseError extends Error {
11
+ readonly exit: number
12
+ readonly message: string
13
+ readonly name = 'CloudBaseError'
14
+ readonly original: Error | undefined
15
+ readonly code: string | number
16
+ readonly requestId: string
17
+ readonly action: string
18
+ readonly meta: any
19
+
20
+ constructor(message: string, options: Options = {}) {
21
+ super()
22
+ this.message = message
23
+ const {
24
+ code = '',
25
+ action = '',
26
+ original = null,
27
+ requestId = '',
28
+ meta = {}
29
+ } = options
30
+ this.original = original
31
+ this.code = code
32
+ this.requestId = requestId
33
+ this.action = action
34
+ this.meta = meta
35
+ }
36
+ }
@@ -1,43 +1,43 @@
1
- import { CloudBaseError } from '../error'
2
- import { IUpdateFunctionAliasConfig, IGetFunctionAlias, IGetFunctionAliasRes } from '../types'
3
- import { getFunctionService } from './base'
4
-
5
- // 设置函数流量配置信息(ALIAS 配置)
6
- export async function setFunctionAliasConfig(options: IUpdateFunctionAliasConfig) {
7
- const { envId, functionName, name, functionVersion, description, routingConfig } = options
8
-
9
- const scfService = await getFunctionService(envId)
10
-
11
- try {
12
- await scfService.updateFunctionAliasConfig({
13
- functionName,
14
- name,
15
- functionVersion,
16
- description,
17
- routingConfig
18
- })
19
- } catch (e) {
20
- throw new CloudBaseError(`[${functionName}] 设置函数流量配置失败: ${e.message}`, {
21
- code: e.code
22
- })
23
- }
24
- }
25
-
26
- // 查询函数别名配置信息
27
- export async function getFunctionAliasConfig(options: IGetFunctionAlias): Promise<IGetFunctionAliasRes> {
28
- const { envId, functionName, name } = options
29
-
30
- const scfService = await getFunctionService(envId)
31
-
32
- try {
33
- return scfService.getFunctionAlias({
34
- functionName,
35
- name
36
- })
37
- } catch (e) {
38
- throw new CloudBaseError(`[${functionName}] 查询函数别名配置失败: ${e.message}`, {
39
- code: e.code
40
- })
41
- }
42
- }
43
-
1
+ import { CloudBaseError } from '../error'
2
+ import { IUpdateFunctionAliasConfig, IGetFunctionAlias, IGetFunctionAliasRes } from '../types'
3
+ import { getFunctionService } from './base'
4
+
5
+ // 设置函数流量配置信息(ALIAS 配置)
6
+ export async function setFunctionAliasConfig(options: IUpdateFunctionAliasConfig) {
7
+ const { envId, functionName, name, functionVersion, description, routingConfig } = options
8
+
9
+ const scfService = await getFunctionService(envId)
10
+
11
+ try {
12
+ await scfService.updateFunctionAliasConfig({
13
+ functionName,
14
+ name,
15
+ functionVersion,
16
+ description,
17
+ routingConfig
18
+ })
19
+ } catch (e) {
20
+ throw new CloudBaseError(`[${functionName}] 设置函数流量配置失败: ${e.message}`, {
21
+ code: e.code
22
+ })
23
+ }
24
+ }
25
+
26
+ // 查询函数别名配置信息
27
+ export async function getFunctionAliasConfig(options: IGetFunctionAlias): Promise<IGetFunctionAliasRes> {
28
+ const { envId, functionName, name } = options
29
+
30
+ const scfService = await getFunctionService(envId)
31
+
32
+ try {
33
+ return scfService.getFunctionAlias({
34
+ functionName,
35
+ name
36
+ })
37
+ } catch (e) {
38
+ throw new CloudBaseError(`[${functionName}] 查询函数别名配置失败: ${e.message}`, {
39
+ code: e.code
40
+ })
41
+ }
42
+ }
43
+