import {mkdtemp, realpath} from 'fs/promises';
import {tmpdir} from 'os';
import * as path from 'path';
import * as fs from '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, () => {});
}
};