UNPKG

@magic-num/fileclient

Version:
114 lines (95 loc) 2.71 kB
"use strict"; 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;