import {mkdtemp, realpath} from 'fs/promises'; import {tmpdir} from 'os'; import path = require('path'); import fs = require('fs'); export const withTempFile = (fn: (filepath: string) => A) => withTempDir(dir => fn(path.join(dir, 'file'))); export const withTempDir = async (fn: (path: string) => A) => { const dir = await mkdtemp((await realpath(tmpdir())) + path.sep); try { return await fn(dir); } finally { fs.rmdir(dir, () => {}); } };