@visulima/fs
Version:
Human friendly file system utilities for Node.js
63 lines (56 loc) • 2.04 kB
JavaScript
import { createRequire as __cjs_createRequire } from "node:module";
const __cjs_require = __cjs_createRequire(import.meta.url);
const __cjs_getProcess = typeof globalThis !== "undefined" && typeof globalThis.process !== "undefined" ? globalThis.process : process;
const __cjs_getBuiltinModule = (module) => {
// Check if we're in Node.js and version supports getBuiltinModule
if (typeof __cjs_getProcess !== "undefined" && __cjs_getProcess.versions && __cjs_getProcess.versions.node) {
const [major, minor] = __cjs_getProcess.versions.node.split(".").map(Number);
// Node.js 20.16.0+ and 22.3.0+
if (major > 22 || (major === 22 && minor >= 3) || (major === 20 && minor >= 16)) {
return __cjs_getProcess.getBuiltinModule(module);
}
}
// Fallback to createRequire
return __cjs_require(module);
};
const y = __cjs_getBuiltinModule("fs");
const h = __cjs_getBuiltinModule("os");
const u = __cjs_getBuiltinModule("path");
var l = Object.defineProperty;
var s = (i, t) => l(i, "name", { value: t, configurable: true });
const a = s((i) => {
let t = "";
for (let e = 0; e < i.length; e += 1) {
const r = i[e], o = r.toUpperCase();
t += r === o ? r.toLowerCase() : o;
}
return t;
}, "invertCase");
const c = /* @__PURE__ */ new Map();
const p = s((i, t) => {
const e = u.join(i, `.is-fs-case-sensitive-test-${process.pid}`);
try {
return t.writeFileSync(e, ""), !t.existsSync(a(e));
} finally {
try {
t.unlinkSync(e);
} catch {
}
}
}, "checkDirectoryCaseWithWrite");
const m = s((i, t, e) => {
try {
return p(i, e);
} catch (r) {
if (t === void 0) return p(h.tmpdir(), e);
throw r;
}
}, "checkDirectoryCaseWithFallback");
const S = s((i, t = y, e = true) => {
const r = i ?? process.cwd();
if (e && c.has(r)) return c.get(r);
let o;
const n = a(r);
return n !== r && t.existsSync(r) ? o = !t.existsSync(n) : o = m(r, i, t), e && c.set(r, o), o;
}, "isFsCaseSensitive");
export { S as isFsCaseSensitive };