UNPKG

appcanmas

Version:

95 lines (89 loc) 4.11 kB
// 创建接口 var textfile = require('textfile') var path = require('path') var fs = require('fs') var ejs = require('ejs'); var DOMParser = require('xmldom').DOMParser; var interfaceName = '' function createInterface(workspace, data, callback){ let self = this data.interfaceSet.c = 'false' data.interfaceIn.c = 'false' interfaceName = path.join(data.filePath, 'if_' + data.interfaceIn.name) ejs.renderFile(path.join(__dirname, 'interfaces', data.type, 'root', 'if.js.ejs'), data.interfaceSet, function (err, html) { if (!err) { fs.exists(interfaceName, function (exists) { if (!exists) { fs.mkdir(interfaceName, function (err) { if (!err) { fs.writeFile(path.join(interfaceName, 'if.js'), html, err => { if (!err) { interfacexml(data, callback) } else { cbFun(callback, data.interfaceIn.name + '接口创建失败') } }); } else { cbFun(callback, data.interfaceIn.name + '接口创建失败') } }) } else { cbFun(callback, data.interfaceIn.name + '接口已经存在') } }); } else { cbFun(callback, data.interfaceIn.name + '接口创建失败') } }) } function cbFun(cb, err){ if (typeof cb === 'function') { if (err && err.indexOf('接口创建失败')>0) { fs.exists(path.join(interfaceName,'if.js'), function (exists) { if (exists) { fs.unlink(path.join(interfaceName,'if.js'), function (errr) { fs.rmdir(interfaceName, function (errr) { cb(err) }) }) } else { fs.exists(interfaceName, function (exists) { if (exists) { fs.rmdir(interfaceName, function (errr) { cb(err) }) } else { cb(err) } }); } }); }else cb(err) } } function interfacexml(data, callback){ ejs.renderFile(path.join(__dirname, 'interfaces', data.type, 'root', 'interface.xml.ejs'), data.interfaceIn, function (err, html) { if (!err) { textfile.read(path.join(data.filePath, 'interface.xml'), 'XML', xml => { if (typeof xml === 'object') { let interface = xml.getElementsByTagName("interface").toString() var doc = new DOMParser().parseFromString( '<?xml version="1.0" encoding="UTF-16"?>\n<meap>\n <interfaces>\n ' +interface+ html + '\n </interfaces>\n</meap>\n</xml>', 'text/xml'); textfile.write(path.join(interfaceName, '../interface.xml'), doc, 'XML', (err) => { if (!err) { cbFun(callback, err) } else { cbFun(callback, data.interfaceIn.name + '接口创建失败') } }) } else { cbFun(callback, data.interfaceIn.name + '接口创建失败') } }) } else { cbFun(callback, data.interfaceIn.name + '接口创建失败') } }) } module.exports = createInterface