dir-is-case-sensitive
Version:
Returns true, if the specified directory is case sensitive
45 lines • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("graceful-fs");
const pathTemp = require("path-temp");
exports.default = async (dir, silent = true) => {
const tempFile = pathTemp(dir).toLowerCase();
return new Promise((resolve, reject) => {
fs.writeFile(tempFile, '', 'UTF8', (err) => {
if (err) {
if (silent) {
resolve(undefined);
}
else {
reject(err);
}
return;
}
fs.stat(tempFile.toUpperCase(), (err) => {
// The temp file is removed
fs.unlink(tempFile, (err) => {
// Errors are ignored
});
if (!err) {
// If the file in different casing is FOUND,
// then the directory is case insensitive
resolve(false);
return;
}
if (err.code === 'ENOENT') {
// If the file in different casing is NOT FOUND,
// then the directory is case sensitive
resolve(true);
return;
}
if (silent) {
resolve(undefined);
}
else {
reject(err);
}
});
});
});
};
//# sourceMappingURL=index.js.map