cloud-function-cli 1.0.0 → 1.0.1

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.
package/README.md CHANGED
@@ -186,6 +186,27 @@ cf rollback user/login 2 --env dev
186
186
  - `<version>`: 目标版本号
187
187
  - `-e, --env <env>`: 环境选择(dev/prod,默认 dev)
188
188
 
189
+ ### `cf list [group]`
190
+
191
+ 列出指定环境下的分组或某个分组下的所有 API。
192
+
193
+ ```bash
194
+ # 列出所有 group(默认 dev)
195
+ cf list
196
+
197
+ # 列出所有 group(生产环境)
198
+ cf list --env prod
199
+
200
+ # 列出指定 group 下的所有 API(默认 dev)
201
+ cf list user
202
+
203
+ # 列出指定 group 下的所有 API(生产环境)
204
+ cf list user --env prod
205
+ ```
206
+
207
+ 参数:
208
+ - `-e, --env <env>`: 环境选择(dev/prod,默认 dev)
209
+
189
210
  ## ⚙️ 配置
190
211
 
191
212
  登录后,配置文件会自动创建在用户目录下的 `.cloud-function/config.json`:
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.list = void 0;
4
+ const apiClient_1 = require("../services/apiClient");
5
+ const config_1 = require("../utils/config");
6
+ const logger_1 = require("../utils/logger");
7
+ const resolveEnvironment = (options) => {
8
+ const cfg = config_1.config.get();
9
+ const environment = options.env || cfg.environment || 'dev';
10
+ if (environment !== 'dev' && environment !== 'prod') {
11
+ throw new Error('Invalid environment, must be dev or prod');
12
+ }
13
+ return environment;
14
+ };
15
+ const list = async (group, options) => {
16
+ let environment;
17
+ try {
18
+ environment = resolveEnvironment(options);
19
+ }
20
+ catch (error) {
21
+ logger_1.logger.error(error.message);
22
+ return;
23
+ }
24
+ if (!group) {
25
+ try {
26
+ const res = await apiClient_1.apiClient.get('/api/management/groups', { environment });
27
+ const groups = Array.isArray(res.data) ? res.data : [];
28
+ if (groups.length === 0) {
29
+ logger_1.logger.warn(`No groups found (${environment})`);
30
+ return;
31
+ }
32
+ logger_1.logger.info(`Groups (${environment}):`);
33
+ groups
34
+ .slice()
35
+ .sort((a, b) => String(a).localeCompare(String(b)))
36
+ .forEach((g) => logger_1.logger.info(` ${g}`));
37
+ }
38
+ catch (error) {
39
+ logger_1.logger.error(`Failed to list groups: ${error.response?.data?.error || error.message}`);
40
+ }
41
+ return;
42
+ }
43
+ const normalizedGroup = String(group).trim();
44
+ if (!normalizedGroup) {
45
+ logger_1.logger.error('Group name is empty');
46
+ return;
47
+ }
48
+ try {
49
+ const res = await apiClient_1.apiClient.get(`/api/management/list/${encodeURIComponent(normalizedGroup)}`, { environment });
50
+ const apis = Array.isArray(res.data) ? res.data : [];
51
+ const apiNames = apis.map((x) => x?.api).filter(Boolean);
52
+ if (apiNames.length === 0) {
53
+ logger_1.logger.warn(`No APIs found in group ${normalizedGroup} (${environment})`);
54
+ return;
55
+ }
56
+ logger_1.logger.info(`APIs in ${normalizedGroup} (${environment}):`);
57
+ apiNames
58
+ .slice()
59
+ .sort((a, b) => String(a).localeCompare(String(b)))
60
+ .forEach((name) => logger_1.logger.info(` ${name}`));
61
+ }
62
+ catch (error) {
63
+ logger_1.logger.error(`Failed to list APIs: ${error.response?.data?.error || error.message}`);
64
+ }
65
+ };
66
+ exports.list = list;
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ const save_1 = require("./cli/save");
8
8
  const get_1 = require("./cli/get");
9
9
  const history_1 = require("./cli/history");
10
10
  const rollback_1 = require("./cli/rollback");
11
+ const list_1 = require("./cli/list");
11
12
  const program = new commander_1.Command();
12
13
  program
13
14
  .name('cf')
@@ -41,4 +42,9 @@ program
41
42
  .description('Rollback to a specific version')
42
43
  .option('-e, --env <env>', 'Environment (dev/prod)')
43
44
  .action(rollback_1.rollback);
45
+ program
46
+ .command('list [group]')
47
+ .description('List groups or APIs in a group')
48
+ .option('-e, --env <env>', 'Environment (dev/prod)')
49
+ .action(list_1.list);
44
50
  program.parse(process.argv);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloud-function-cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "CLI for Cloud Function System - Create, deploy, and manage serverless functions",
5
5
  "main": "dist/index.js",
6
6
  "bin": {