-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathimport.js
More file actions
57 lines (53 loc) · 1.53 KB
/
import.js
File metadata and controls
57 lines (53 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
const path = require('path');
const fs = require('fs-extra');
const utils = require('../utils.js');
const shell = require('shelljs');
const axios = require('axios');
const cwd = process.cwd()
const url = require('url')
module.exports = {
setOptions: function (yargs) {
yargs.option('config', {
describe: '配置文件路径,默认为当前目录下 yapi-import.json',
default: path.resolve(cwd, 'yapi-import.json')
})
yargs.option('proxy', {
describe: '代理配置'
})
},
run: async function (argv) {
try{
let config = require(argv.config)
let proxy = argv.proxy && JSON.parse(argv.proxy)
let content;
if(config.file.indexOf('http') !== 0){
content = require(path.resolve(cwd, config.file))
}else{
content = await axios(config.file)
content = content.data;
}
if(typeof content === 'object' && content){
content = JSON.stringify(content)
}
if(!content){
return console.error('json 数据不能为空')
}
let params = {
type: config.type,
token: config.token,
json: content,
merge: config.merge
}
let apiUrl = url.resolve(config.server, '/api/open/import_data')
let result = await axios.post(apiUrl, params, proxy && {proxy: proxy})
if(result.data.errcode){
console.error(result.data.errmsg)
}else{
console.log(result.data.errmsg)
}
}catch(err){
console.error(err.message)
}
},
desc: '导入接口数据'
}