UNPKG

@medflyt/test-db-service

Version:

Developer tool to instantly provision test PostgreSQL databases from a template

47 lines 1.42 kB
"use strict"; 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