novu
Version:
Novu CLI. Run Novu Studio and sync workflows with Novu Cloud
59 lines (58 loc) • 1.84 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isFolderEmpty = isFolderEmpty;
const picocolors_1 = require("picocolors");
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
function isFolderEmpty(root, name) {
const validFiles = [
'.DS_Store',
'.git',
'.gitattributes',
'.gitignore',
'.gitlab-ci.yml',
'.hg',
'.hgcheck',
'.hgignore',
'.idea',
'.npmignore',
'.travis.yml',
'LICENSE',
'Thumbs.db',
'docs',
'mkdocs.yml',
'npm-debug.log',
'yarn-debug.log',
'yarn-error.log',
'yarnrc.yml',
'.yarn',
];
const conflicts = fs_1.default.readdirSync(root).filter((file) => !validFiles.includes(file) &&
!/\.iml$/.test(file));
if (conflicts.length > 0) {
console.log(`The directory ${(0, picocolors_1.green)(name)} contains files that could conflict:`);
console.log();
for (const file of conflicts) {
try {
const stats = fs_1.default.lstatSync(path_1.default.join(root, file));
if (stats.isDirectory()) {
console.log(` ${(0, picocolors_1.blue)(file)}/`);
}
else {
console.log(` ${file}`);
}
}
catch (_a) {
console.log(` ${file}`);
}
}
console.log();
console.log('Either try using a new directory name, or remove the files listed above.');
console.log();
return false;
}
return true;
}