react-toggle-file-tree
Version:
Provides easy file tree implementation with React.
61 lines (54 loc) • 1.72 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var index = require('./index-591af0dc.cjs.prod.js');
require('@babel/runtime/helpers/objectSpread2');
var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper');
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
var index__default = /*#__PURE__*/_interopDefault(index);
/**
* @params {any[]} list
* @description 1차원 배열 값을 받아 파일 트리 구조를 만듭니다.
* 이 때 list안의 객체의 filePath 값은 필수입니다.
*/
function createFileTree(list) {
var expectedFileTree = {
files: []
};
var _iterator = _createForOfIteratorHelper(list),
_step;
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
var file = _step.value;
var filePathParts = file.localPath.split('/').filter(Boolean);
var current = expectedFileTree;
var _iterator2 = _createForOfIteratorHelper(filePathParts),
_step2;
try {
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
var part = _step2.value;
if (!current[part]) {
current[part] = {
files: []
};
}
current = current[part];
}
} catch (err) {
_iterator2.e(err);
} finally {
_iterator2.f();
}
current.files.push(file);
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
return expectedFileTree;
}
Object.defineProperty(exports, 'ToggleFileTree', {
enumerable: true,
get: function () { return index__default["default"]; }
});
exports.createFileTree = createFileTree;
;