nginx-testing
Version:
Support for integration/acceptance testing of nginx configuration.
43 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTempDir = void 0;
const OS = require("node:os");
const path = require("node:path");
const process = require("node:process");
const FS = require("./fs");
function createTempDir(name) {
const nodeModules = findPkgNodeModules(process.cwd());
const tempDir = nodeModules
? path.join(nodeModules, '.cache')
: OS.tmpdir();
if (nodeModules) {
FS.mkdirSync(tempDir, { recursive: true });
}
return FS.mkdtempSync(path.join(tempDir, `${name}-`));
}
exports.createTempDir = createTempDir;
function findPkgNodeModules(cwd) {
let dir = path.resolve(cwd);
const rootDir = path.parse(dir).root;
while (dir !== rootDir) {
const nodeModules = path.join(dir, 'node_modules');
if (isWritableDir(nodeModules)) {
return nodeModules;
}
dir = path.dirname(dir);
}
return null;
}
function isWritableDir(path) {
try {
if (!FS.statSync(path).isDirectory()) {
return false;
}
FS.accessSync(path, FS.constants.W_OK);
return true;
}
catch (_a) {
return false;
}
}
//# sourceMappingURL=tempDir.js.map