node-postman-generator
Version:
📦 CLI tool that automatically converts Express.js routes to Postman collections - handles path/query/body params, and generates ready-to-import JSON with route config.
43 lines (37 loc) • 1.5 kB
JavaScript
const { Command } = require('commander');
const fs = require('fs');
const path = require('path');
const PostmanGenerator = require('../src/index.js');
// 读取配置文件
const configPath = path.resolve(__dirname, '../config/node-postman-generator.json');
const defaultConfig = fs.existsSync(configPath)
? JSON.parse(fs.readFileSync(configPath, 'utf8'))
: {};
// 初始化 CLI 命令
const program = new Command();
program
.version('2.0.0')
.description('📦 Express 路由转 Postman Collection 工具')
.option('-i, --input <path>', '指定 Express 路由文件夹路径', defaultConfig.routesPath)
.option('-o, --output <file>', '指定 Postman Collection 生成文件', defaultConfig.outputFile)
.option('-b, --base-url <url>', '指定 API 的基础 URL', defaultConfig.baseUrl)
.option('-path, --path <url>', '指定 其他文件', "")
.option('-v, --version <url>', '指定生成文件版本', "postman2.1")
.action(async (options) => {
// 读取用户配置文件
const userConfigPath = options.path;
const userConfig = fs.existsSync(userConfigPath) ? require(userConfigPath) : {};
const generator = new PostmanGenerator({
...defaultConfig,
routesPath: options.input,
outputFile: options.output,
baseUrl: options.baseUrl,
path: options.path,
collectionVersion: options.version,
...userConfig
});
await generator.generate();
});
// 解析 CLI 参数
program.parse(process.argv);