async function createChildTree(parent, item, root) {
	if (!root.isConnected) return;
	const { name, url, isDirectory } = item;
	const exists = parent.children.findIndex(({ value }) => value === url);
	if (exists > -1) {
		return;
	}

	const file = await Tree.create(url, name, isDirectory);
	if (!root.isConnected) return;

	const existingTree = getTree(Object.values(filesTree), file.url);

	if (existingTree) {
		file.children = existingTree.children;
		parent.children.push(file);
		return;
	}

	parent.children.push(file);
	if (isDirectory) {
		const ignore = !!settings.value.excludeFolders.find((folder) =>
			minimatch(Url.join(file.path, ""), folder, { matchBase: true }),
		);
		if (ignore) return;

		getAllFiles(file, root);
		return;
	}

	emit("push-file", file);
}
Create a child tree
@param {Tree} parent
@param {File} item
@param {Tree} root