@medflyt/test-db-service
Version:
Developer tool to instantly provision test PostgreSQL databases from a template
47 lines • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withTempDir = exports.rimrafIgnoreErrors = exports.createTempDir = void 0;
const fs = require("fs");
const promises_1 = require("fs/promises");
const os = require("os");
const path = require("path");
const rimraf = require("rimraf");
async function createTempDir(APP_NAME) {
await new Promise((resolve, reject) => {
fs.mkdir(path.join(os.tmpdir(), APP_NAME), (err) => {
if (err !== null && err.code !== "EEXIST") {
reject(err);
return;
}
resolve();
});
});
const directory = await promises_1.mkdtemp(path.join(os.tmpdir(), APP_NAME) + path.sep + "tmp-");
return {
directory,
close: async () => {
await rimrafIgnoreErrors(directory);
}
};
}
exports.createTempDir = createTempDir;
function rimrafIgnoreErrors(filePath) {
return new Promise((resolve) => {
rimraf(filePath, () => {
resolve();
});
});
}
exports.rimrafIgnoreErrors = rimrafIgnoreErrors;
async function withTempDir(appName, action) {
const tempDir = await createTempDir(appName);
try {
const result = await action(tempDir.directory);
return result;
}
finally {
await tempDir.close();
}
}
exports.withTempDir = withTempDir;
//# sourceMappingURL=tempDir.js.map