@worldapi/cli
Version:
A productivity focused CLI and terminal for WorldAPI.
33 lines (32 loc) • 962 B
JavaScript
function create_default(paths) {
let obj = {};
function parsePath(str) {
let folders = str.split("/");
const file = folders.pop();
const sanitized = folders.filter((item) => item !== "" && item !== ".");
let entry = obj;
sanitized.forEach((item) => {
if (!Object.keys(entry).includes("folders")) {
Object.assign(entry, { folders: {} });
}
if (!Object.keys(entry["folders"]).includes(item)) {
const _o = entry["folders"];
Object.assign(entry, { folders: { [item]: {}, ..._o } });
}
entry = entry["folders"][item];
});
if (!Object.keys(entry).includes("files")) {
Object.assign(entry, { files: [file] });
} else {
const _f = entry["files"];
if (_f.includes(file))
return;
Object.assign(entry, { files: [file, ..._f] });
}
}
paths.forEach(async (item) => await parsePath(item));
return obj;
}
export {
create_default as default
};