mock-convert
Version:
convert interface data to mock data
49 lines (47 loc) • 1.52 kB
JavaScript
const fetchData = require('./service');
const parseData = require('./parse');
const persistData = require('./persist');
const debug = require('debug')('mockGen');
module.exports = function generator(config) {
const { projectJsonUrl, parseOpt, outOpt, translateOpt, basePath } = config;
debug('config: %O', config);
debug('fetch data, url: %s', projectJsonUrl);
if (!projectJsonUrl) {
throw new Error('set url in config file first');
}
if (Array.isArray(projectJsonUrl)) {
const parseDatas = [];
for (let i = 0; i < projectJsonUrl.length; i++) {
fetchData(projectJsonUrl[i], (err, jsonData) => {
if (!err) {
parseData(jsonData, basePath, parseOpt, (err0, data) => {
if (!err0) {
parseDatas.push(data);
if (parseDatas.length === projectJsonUrl.length) {
persistData(parseDatas, outOpt, translateOpt);
}
} else {
debug('parse data failed, err: %O', err0);
}
});
} else {
debug('fetch failed, err: %O', err);
}
});
}
} else {
fetchData(projectJsonUrl, (err, jsonData) => {
if (!err) {
parseData(jsonData, basePath, parseOpt, (err0, data) => {
if (!err0) {
persistData(data, outOpt, translateOpt);
} else {
debug('parse data failed, err: %O', err0);
}
});
} else {
debug('fetch failed, err: %O', err);
}
});
}
};