@cloudbase/cli 2.0.3 → 2.0.4-alpha.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 (199) 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/bin/tcb.js +0 -0
  10. package/changelog.md +6 -6
  11. package/jest.config.js +17 -17
  12. package/lib/commands/account/login.js +18 -18
  13. package/lib/commands/storage/storage.js +1 -1
  14. package/lib/env/login.js +7 -7
  15. package/package.json +2 -2
  16. package/post-install.js +61 -61
  17. package/runtime/nodejs/bootstrap.js +255 -255
  18. package/runtime/nodejs/runtime.js +183 -183
  19. package/src/auth/index.ts +1 -1
  20. package/src/auth/login.ts +91 -91
  21. package/src/auth/logout.ts +7 -7
  22. package/src/commands/account/index.ts +2 -2
  23. package/src/commands/account/login.ts +192 -192
  24. package/src/commands/account/logout.ts +24 -24
  25. package/src/commands/env/base.ts +90 -90
  26. package/src/commands/env/create.ts +92 -92
  27. package/src/commands/env/domain.ts +186 -186
  28. package/src/commands/env/index.ts +4 -4
  29. package/src/commands/env/login.ts +235 -235
  30. package/src/commands/framework/index.ts +124 -124
  31. package/src/commands/functions/alias/getRoute.ts +76 -76
  32. package/src/commands/functions/alias/index.ts +2 -2
  33. package/src/commands/functions/alias/setRoute.ts +82 -82
  34. package/src/commands/functions/code-download.ts +100 -100
  35. package/src/commands/functions/code-update.ts +62 -62
  36. package/src/commands/functions/concurrency/delete.ts +45 -45
  37. package/src/commands/functions/concurrency/index.ts +2 -2
  38. package/src/commands/functions/concurrency/list.ts +58 -58
  39. package/src/commands/functions/concurrency/set.ts +47 -47
  40. package/src/commands/functions/config-update.ts +76 -76
  41. package/src/commands/functions/copy.ts +62 -62
  42. package/src/commands/functions/delete.ts +79 -79
  43. package/src/commands/functions/deploy.ts +293 -293
  44. package/src/commands/functions/detail.ts +138 -138
  45. package/src/commands/functions/index.ts +16 -16
  46. package/src/commands/functions/invoke.ts +121 -121
  47. package/src/commands/functions/layer/bind.ts +182 -182
  48. package/src/commands/functions/layer/common.ts +8 -8
  49. package/src/commands/functions/layer/create.ts +49 -49
  50. package/src/commands/functions/layer/delete.ts +73 -73
  51. package/src/commands/functions/layer/download.ts +92 -92
  52. package/src/commands/functions/layer/index.ts +7 -7
  53. package/src/commands/functions/layer/list.ts +94 -94
  54. package/src/commands/functions/layer/sort.ts +76 -76
  55. package/src/commands/functions/list.ts +68 -68
  56. package/src/commands/functions/log.ts +148 -148
  57. package/src/commands/functions/run.ts +249 -249
  58. package/src/commands/functions/trigger-create.ts +79 -79
  59. package/src/commands/functions/trigger-delete.ts +105 -105
  60. package/src/commands/functions/version/index.ts +1 -1
  61. package/src/commands/functions/version/list.ts +73 -73
  62. package/src/commands/functions/version/publish.ts +43 -43
  63. package/src/commands/gateway/create.ts +109 -109
  64. package/src/commands/gateway/delete.ts +81 -81
  65. package/src/commands/gateway/domain.ts +159 -159
  66. package/src/commands/gateway/index.ts +5 -5
  67. package/src/commands/gateway/list.ts +76 -76
  68. package/src/commands/gateway/switch.ts +107 -107
  69. package/src/commands/helpers/index.ts +2 -2
  70. package/src/commands/helpers/init.ts +431 -431
  71. package/src/commands/helpers/new.ts +117 -117
  72. package/src/commands/helpers/open.ts +67 -67
  73. package/src/commands/hosting/hosting.ts +360 -360
  74. package/src/commands/index.ts +13 -13
  75. package/src/commands/lowcode/app.ts +34 -34
  76. package/src/commands/lowcode/comps.ts +322 -322
  77. package/src/commands/lowcode/index.ts +1 -1
  78. package/src/commands/lowcode/utils.ts +24 -24
  79. package/src/commands/run/image/index.ts +4 -4
  80. package/src/commands/run/standalonegateway/common.ts +7 -7
  81. package/src/commands/run/standalonegateway/create.ts +85 -85
  82. package/src/commands/run/standalonegateway/destroy.ts +59 -59
  83. package/src/commands/run/standalonegateway/index.ts +4 -4
  84. package/src/commands/run/standalonegateway/list.ts +53 -53
  85. package/src/commands/run/standalonegateway/package.ts +62 -62
  86. package/src/commands/run/standalonegateway/turn.ts +63 -63
  87. package/src/commands/run/version/index.ts +4 -4
  88. package/src/commands/smart.ts +132 -132
  89. package/src/commands/storage/storage.ts +464 -464
  90. package/src/commands/third/thirdAttach.ts +49 -49
  91. package/src/completion/index.ts +13 -13
  92. package/src/decorators/captureError.ts +25 -25
  93. package/src/decorators/constants.ts +12 -12
  94. package/src/decorators/deprecate.ts +25 -25
  95. package/src/decorators/guard.ts +42 -42
  96. package/src/decorators/index.ts +7 -7
  97. package/src/decorators/injectParams.ts +54 -54
  98. package/src/decorators/params/common.ts +28 -28
  99. package/src/decorators/params/index.ts +35 -35
  100. package/src/env/domain.ts +33 -33
  101. package/src/env/index.ts +63 -63
  102. package/src/env/login.ts +80 -80
  103. package/src/error.ts +36 -36
  104. package/src/function/alias.ts +43 -43
  105. package/src/function/base.ts +253 -253
  106. package/src/function/code.ts +55 -55
  107. package/src/function/concurrency.ts +57 -57
  108. package/src/function/create.ts +78 -78
  109. package/src/function/delete.ts +42 -42
  110. package/src/function/index.ts +10 -10
  111. package/src/function/layer/attach.ts +68 -68
  112. package/src/function/layer/create.ts +63 -63
  113. package/src/function/layer/delete.ts +21 -21
  114. package/src/function/layer/download.ts +54 -54
  115. package/src/function/layer/index.ts +7 -7
  116. package/src/function/layer/list.ts +32 -32
  117. package/src/function/layer/sort.ts +24 -24
  118. package/src/function/trigger.ts +97 -97
  119. package/src/function/update.ts +35 -35
  120. package/src/function/version.ts +38 -38
  121. package/src/function/vpc.ts +22 -22
  122. package/src/gateway/index.ts +137 -137
  123. package/src/hosting.ts +212 -212
  124. package/src/index.ts +13 -13
  125. package/src/logger.ts +17 -17
  126. package/src/run/create.ts +23 -23
  127. package/src/run/delete.ts +15 -15
  128. package/src/run/image/build.ts +36 -36
  129. package/src/run/image/delete.ts +13 -13
  130. package/src/run/image/index.ts +3 -3
  131. package/src/run/image/info.ts +26 -26
  132. package/src/run/list.ts +29 -29
  133. package/src/run/repo.ts +24 -24
  134. package/src/run/standalonegateway/create.ts +24 -24
  135. package/src/run/standalonegateway/destroy.ts +19 -19
  136. package/src/run/standalonegateway/index.ts +4 -4
  137. package/src/run/standalonegateway/list.ts +74 -74
  138. package/src/run/standalonegateway/package/list.ts +24 -24
  139. package/src/run/standalonegateway/turn/index.ts +1 -1
  140. package/src/run/standalonegateway/turn/off.ts +19 -19
  141. package/src/run/standalonegateway/turn/on.ts +19 -19
  142. package/src/run/version/create.ts +68 -68
  143. package/src/run/version/delete.ts +15 -15
  144. package/src/run/version/index.ts +5 -5
  145. package/src/run/version/list.ts +16 -16
  146. package/src/run/version/modify.ts +16 -16
  147. package/src/run/version/repo.ts +27 -27
  148. package/src/run/version/update.ts +58 -58
  149. package/src/storage.ts +114 -114
  150. package/src/third/index.ts +12 -12
  151. package/src/utils/auth.ts +15 -15
  152. package/src/utils/cli-table.ts +23 -23
  153. package/src/utils/config.ts +39 -39
  154. package/src/utils/env.ts +244 -244
  155. package/src/utils/fs/del.ts +5 -5
  156. package/src/utils/fs/index.ts +71 -71
  157. package/src/utils/function-packer.ts +97 -97
  158. package/src/utils/log.ts +81 -81
  159. package/src/utils/net/cloud-api-request.ts +62 -62
  160. package/src/utils/net/credential.ts +53 -53
  161. package/src/utils/net/index.ts +4 -4
  162. package/src/utils/net/manager-service.ts +36 -36
  163. package/src/utils/net/proxy.ts +6 -6
  164. package/src/utils/notice.ts +28 -28
  165. package/src/utils/output/highlight.ts +5 -5
  166. package/src/utils/output/index.ts +2 -2
  167. package/src/utils/output/link.ts +10 -10
  168. package/src/utils/output/loading.ts +82 -82
  169. package/src/utils/parallel.ts +82 -82
  170. package/src/utils/platform/index.ts +2 -2
  171. package/src/utils/platform/mac.ts +21 -21
  172. package/src/utils/platform/os.ts +64 -64
  173. package/src/utils/platform/port.ts +10 -10
  174. package/src/utils/progress-bar.ts +38 -38
  175. package/src/utils/prompt/select.ts +59 -59
  176. package/src/utils/reporter/agree.ts +20 -20
  177. package/src/utils/reporter/download.ts +26 -26
  178. package/src/utils/reporter/index.ts +3 -3
  179. package/src/utils/reporter/usage.ts +20 -20
  180. package/src/utils/store/auth.ts +49 -49
  181. package/src/utils/store/common.ts +8 -8
  182. package/src/utils/store/db.ts +68 -68
  183. package/src/utils/store/index.ts +4 -4
  184. package/src/utils/store/usage.ts +12 -12
  185. package/src/utils/template.ts +170 -170
  186. package/src/utils/tools/encoding.ts +8 -8
  187. package/src/utils/tools/index.ts +4 -4
  188. package/src/utils/tools/object.ts +33 -33
  189. package/src/utils/tools/time.ts +38 -38
  190. package/src/utils/tools/uid.ts +19 -19
  191. package/templates/html/loginFail.html +90 -90
  192. package/templates/html/loginSuccess.html +86 -86
  193. package/templates/server/node/_gitignore +54 -54
  194. package/templates/server/node/cloudbaserc.json +10 -10
  195. package/templates/server/node/index.js +5 -5
  196. package/templates/server/node/package.json +9 -9
  197. package/tsconfig.json +19 -19
  198. package/tsconfig.test.json +13 -13
  199. package/.vscode/settings.json +0 -3
@@ -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
+ }
@@ -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)
package/src/env/domain.ts CHANGED
@@ -1,33 +1,33 @@
1
- import { CloudApiService } from '../utils/net'
2
-
3
- const tcbService = CloudApiService.getInstance('tcb')
4
-
5
- // 拉取安全域名列表
6
- export async function getEnvAuthDomains({ envId }) {
7
- const { Domains = [] }: any = await tcbService.request(
8
- 'DescribeAuthDomains',
9
- {
10
- EnvId: envId
11
- }
12
- )
13
-
14
- return Domains
15
- }
16
-
17
- // 添加环境安全域名
18
- export async function createEnvDomain({ envId, domains }) {
19
- await tcbService.request('CreateAuthDomain', {
20
- EnvId: envId,
21
- Domains: domains
22
- })
23
- }
24
-
25
- // 删除环境安全域名
26
- export async function deleteEnvDomain({ envId, domainIds }) {
27
- const { Deleted }: any = await tcbService.request('DeleteAuthDomain', {
28
- EnvId: envId,
29
- DomainIds: domainIds
30
- })
31
-
32
- return Deleted
33
- }
1
+ import { CloudApiService } from '../utils/net'
2
+
3
+ const tcbService = CloudApiService.getInstance('tcb')
4
+
5
+ // 拉取安全域名列表
6
+ export async function getEnvAuthDomains({ envId }) {
7
+ const { Domains = [] }: any = await tcbService.request(
8
+ 'DescribeAuthDomains',
9
+ {
10
+ EnvId: envId
11
+ }
12
+ )
13
+
14
+ return Domains
15
+ }
16
+
17
+ // 添加环境安全域名
18
+ export async function createEnvDomain({ envId, domains }) {
19
+ await tcbService.request('CreateAuthDomain', {
20
+ EnvId: envId,
21
+ Domains: domains
22
+ })
23
+ }
24
+
25
+ // 删除环境安全域名
26
+ export async function deleteEnvDomain({ envId, domainIds }) {
27
+ const { Deleted }: any = await tcbService.request('DeleteAuthDomain', {
28
+ EnvId: envId,
29
+ DomainIds: domainIds
30
+ })
31
+
32
+ return Deleted
33
+ }