const { resolve, basename } = require('path');const ora = require('ora');const chalk = require('chalk');const request = require('../../utils/request');const { removeEmpty, path2CamelCase } = require('../../utils');const output2File = require('../../utils/output2File');const quicktypeJSON = require('../../utils/quicktypeJSON');const spinner = ora('transforming...');const outputInterface = (data, name, output) => {quicktypeJSON('TypeScript', name, JSON.stringify(data)).then(({ lines }) => {output2File(resolve(process.cwd(), output), lines.join('\n')).then(() => {spinner.stop();// eslint-disable-next-line no-consoleconsole.log(chalk.green('successfully 🎉 🎉 🎉'));});}).catch(err => console.error(err));};const fromRequest = options => {const babyData = options.body ? require(options.body) : null;request(removeEmpty({method: options.httpMethod,url: `${options.url}${options.path}`,data: babyData,}),).then(({ data }) =>outputInterface(data, path2CamelCase(options.path), options.output),).catch(err => console.error(err));};const fromLocalJson = options => {const dataJson = require(options.input);const name = basename(options.input).split('.')[0].replace(/^(\w)/g, (all, letter) => letter.toUpperCase());outputInterface(dataJson, name, options.output);};const generateInterface = options => {spinner.start();// 如果有 -i 则通过本地json生成interfaceif (options.input) {fromLocalJson(options);return;}fromRequest(options);};module.exports = generateInterface;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。