export async function mkdtemp()

in src/util.ts [7:21]


export async function mkdtemp(closure: (dir: string) => Promise<void>) {
  const workdir = await fs.mkdtemp(path.join(os.tmpdir(), 'temp-'));
  try {
    await closure(workdir);

    if (!process.env.RETAIN_TMP) {
      await fs.remove(workdir);
    } else {
      console.error(`NOTE: Temp directory retained (RETAIN_TMP=1): ${workdir}`);
    }
  } catch (e) {
    console.error(`NOTE: Temp directory retained due to an error: ${workdir}`);
    throw e;
  }
}