UNPKG

@yuanjinlin/gen-api

Version:

轻量化简易一键生成在线文档api接口,告别人力的copy

108 lines (96 loc) 3.09 kB
#!/usr/bin/env node const path = require("path"); const GenApi = require("../src/index"); const { getFileData, createfolderFile } = require("../src/utils/index"); let configPath = ""; const fs = require("fs"); let docsWebs = []; docsWebs = fs .readdirSync(path.join(__dirname, "../src", "core")) .map((file) => { return file.replace(".js", "") }); // 获取配置文件的数据 const [configData, axiosData] = getFileData( "../config/api.config.js", "../config/axios.js" ); switch (process.argv[2]) { // 初始化配置文件 case "init": if (fs.existsSync(path.join(process.cwd(), "api.config.js"))) { console.log("配置文件已存在"); process.exit(); } // 创建配置文件 const initPath = path.join(process.cwd(), "api.config.js"); fs.writeFileSync(initPath, configData, "utf8"); console.log("初始化配置文件成功" + initPath); // 创建axios文件 if (process.argv[3] == "--axios") { if (!process.argv[4]) { console.log("请传入你的路径!"); process.exit(); } createfolderFile(process.argv[4], axiosData); console.log("创建axios文件成功"); } process.exit(); // 自定义配置文件路径 case "--p": if (!process.argv[3]) { console.log("请传入你的路径!"); process.exit(); } configPath = process.argv[3]; if (!fs.existsSync(path.join(process.cwd(), configPath))) { console.log( "找不到配置文件,请使用命令 gen-api --c <path> 创建你的配置文件路径! " ); process.exit(); } break; // 创建自定义配置文件 case "--c": if (!process.argv[3]) { console.log("请传入你的路径!"); process.exit(); } configPath = process.argv[3]; // 创建配置文件 if (fs.existsSync(path.join(process.cwd(), process.argv[3]))) { console.log("配置文件已存在"); process.exit(); } const cPath = path.join(process.cwd(), configPath); fs.writeFileSync(cPath, configData, "utf8"); console.log("配置文件创建成功" + cPath); process.exit(); case "-v": console.log(require("../package.json").version); process.exit(); } if (fs.existsSync(path.join(process.cwd(), "api.config.js"))) { configPath = "api.config.js"; } else if (process.argv[3]) { configPath = process.argv[3]; } else { console.log("找不到配置文件,请使用 gen-api init 命令初始化配置文件"); process.exit(); } // 读取配置文件 const configs = require(path.join(process.cwd(), configPath)); configs.genApiName = configs.genApiName || 'yapi' if (!docsWebs.includes(configs.genApiName)) { console.log(`不支持该${configs.genApiName}在线API网站`); process.exit(); } if (Array.isArray(configs.projects) && !configs.projects.length) { console.log("projects必填!"); process.exit(); } // 创建需要生成在线文档的api GenApi.createGenApi(configs);