Дерево файловой системы из неизменяемых узлов: любая правка возвращает новое дерево, старое остаётся прежним.
Нужна курсам, где сравнивают этот подход с изменяемыми деревьями из @hexlet/trees. На таком сравнении видно, что неизменяемость даёт (безопасное разделение данных) и чего стоит (пересборка пути до корня на каждое изменение).
npm install @hexlet/immutable-fs-treesimport {
mkfile, mkdir, isDirectory, isFile, map,
} from '@hexlet/immutable-fs-trees';
isFile(mkfile('config')); // true
isDirectory(mkdir('etc')); // true
const tree = mkdir('etc', [mkfile('config'), mkfile('hosts')]);
const callbackFn = (node) => {
const { name } = node;
const newName = name.toUpperCase();
return { ...node, name: newName };
};
map(callbackFn, tree);
// {
// name: 'ETC',
// children: [
// { name: 'CONFIG', meta: {}, type: 'file' },
// { name: 'HOSTS', meta: {}, type: 'file' }
// ],
// meta: {},
// type: 'directory',
// }For more information, see the Full Documentation
This repository is created and maintained by the team and the community of Hexlet, an educational project. Read more about Hexlet.
