react-toggle-file-tree
Version:
Provides easy file tree implementation with React.
49 lines (46 loc) • 1.37 kB
JavaScript
export { default as ToggleFileTree } from './index-7c804cdb.esm.js';
import '@babel/runtime/helpers/objectSpread2';
import _createForOfIteratorHelper from '@babel/runtime/helpers/esm/createForOfIteratorHelper';
/**
* @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;
}
export { createFileTree };