@magic-num/fileclient
Version:
114 lines (95 loc) • 2.71 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _fs = _interopRequireDefault(require("fs"));
var _path = _interopRequireDefault(require("path"));
var Tree =
/*#__PURE__*/
function () {
function Tree() {
(0, _classCallCheck2.default)(this, Tree);
}
(0, _createClass2.default)(Tree, null, [{
key: "walk",
/**
* 返回tree和testcases
* @param {*} rootDir
*/
value: function walk(rootDir) {
var _this = this;
var items = Tree.findURI(rootDir);
var tree = {};
var testcases = [];
items.forEach(function (item) {
var children = _this.findTestcases(item.path);
var node = tree[item.name] = {};
children.forEach(function (c) {
var raw = _fs.default.readFileSync(c.path);
var json = JSON.parse(raw);
var data = {
id: json.id || c.name,
json: json,
path: item.path,
name: item.name,
parentPath: item.path,
parentName: item.name
};
node[data.id] = data;
testcases.push(data);
});
});
return {
tree: tree,
testcases: testcases
};
}
/**
* 获取所有的api目录
* @param {*} root
*/
}, {
key: "findURI",
value: function findURI(root) {
var files = _fs.default.readdirSync(root);
var items = files.map(function (file) {
return {
name: file,
path: _path.default.join(root, file)
};
}).filter(function (item) {
var s = _fs.default.statSync(item.path);
return s.isDirectory();
});
return items;
}
/**
* 返回指定目录下的所有json文件
* @param {*} folder
*/
}, {
key: "findTestcases",
value: function findTestcases(folder) {
var files = _fs.default.readdirSync(folder);
var items = files.filter(function (f) {
return !/__index__\.json$/i.test(f) && /\.json$/i.test(f);
}).map(function (file) {
return {
name: file,
path: _path.default.join(folder, file)
};
}).filter(function (item) {
var s = _fs.default.statSync(item.path);
return s.isFile();
});
return items;
}
}]);
return Tree;
}();
var _default = Tree;
exports.default = _default;