@kya-os/create-xmcpi-app
Version:
Bootstrap XMCP applications with identity features
55 lines • 1.53 kB
JavaScript
import fs from "fs";
import path from "path";
export function isFolderEmpty(root, name) {
const validFiles = [
".DS_Store",
".git",
".gitattributes",
".gitignore",
".gitlab-ci.yml",
".hg",
".hgcheck",
".hgignore",
".idea",
".npmignore",
".travis.yml",
"LICENSE",
"Makefile",
"README.md",
"Thumbs.db",
"docs",
"mkdocs.yml",
"npm-debug.log",
"yarn-debug.log",
"yarn-error.log",
];
const conflicts = fs
.readdirSync(root)
.filter((file) => !validFiles.includes(file))
// Support IntelliJ IDEA-based editors
.filter((file) => !/\.iml$/.test(file));
if (conflicts.length > 0) {
console.log(`The directory ${name} contains conflicting files:\n`);
console.log();
for (const file of conflicts) {
try {
const stats = fs.lstatSync(path.join(root, file));
if (stats.isDirectory()) {
console.log(` ${file}/`);
}
else {
console.log(` ${file}`);
}
}
catch {
console.log(` ${file}`);
}
}
console.log();
console.log("Either try using a new directory name, or remove the conflicting files.");
console.log();
return false;
}
return true;
}
//# sourceMappingURL=is-folder-empty.js.map